// Copyright 2026 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 cloud. */
    namespace cloud {

        /** Namespace dialogflow. */
        namespace dialogflow {

            /** Namespace v2. */
            namespace v2 {

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

                    /**
                     * Constructs a new Agents 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 Agents 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): Agents;

                    /**
                     * Calls GetAgent.
                     * @param request GetAgentRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Agent
                     */
                    public getAgent(request: google.cloud.dialogflow.v2.IGetAgentRequest, callback: google.cloud.dialogflow.v2.Agents.GetAgentCallback): void;

                    /**
                     * Calls GetAgent.
                     * @param request GetAgentRequest message or plain object
                     * @returns Promise
                     */
                    public getAgent(request: google.cloud.dialogflow.v2.IGetAgentRequest): Promise<google.cloud.dialogflow.v2.Agent>;

                    /**
                     * Calls SetAgent.
                     * @param request SetAgentRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Agent
                     */
                    public setAgent(request: google.cloud.dialogflow.v2.ISetAgentRequest, callback: google.cloud.dialogflow.v2.Agents.SetAgentCallback): void;

                    /**
                     * Calls SetAgent.
                     * @param request SetAgentRequest message or plain object
                     * @returns Promise
                     */
                    public setAgent(request: google.cloud.dialogflow.v2.ISetAgentRequest): Promise<google.cloud.dialogflow.v2.Agent>;

                    /**
                     * Calls DeleteAgent.
                     * @param request DeleteAgentRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Empty
                     */
                    public deleteAgent(request: google.cloud.dialogflow.v2.IDeleteAgentRequest, callback: google.cloud.dialogflow.v2.Agents.DeleteAgentCallback): void;

                    /**
                     * Calls DeleteAgent.
                     * @param request DeleteAgentRequest message or plain object
                     * @returns Promise
                     */
                    public deleteAgent(request: google.cloud.dialogflow.v2.IDeleteAgentRequest): Promise<google.protobuf.Empty>;

                    /**
                     * Calls SearchAgents.
                     * @param request SearchAgentsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and SearchAgentsResponse
                     */
                    public searchAgents(request: google.cloud.dialogflow.v2.ISearchAgentsRequest, callback: google.cloud.dialogflow.v2.Agents.SearchAgentsCallback): void;

                    /**
                     * Calls SearchAgents.
                     * @param request SearchAgentsRequest message or plain object
                     * @returns Promise
                     */
                    public searchAgents(request: google.cloud.dialogflow.v2.ISearchAgentsRequest): Promise<google.cloud.dialogflow.v2.SearchAgentsResponse>;

                    /**
                     * Calls TrainAgent.
                     * @param request TrainAgentRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public trainAgent(request: google.cloud.dialogflow.v2.ITrainAgentRequest, callback: google.cloud.dialogflow.v2.Agents.TrainAgentCallback): void;

                    /**
                     * Calls TrainAgent.
                     * @param request TrainAgentRequest message or plain object
                     * @returns Promise
                     */
                    public trainAgent(request: google.cloud.dialogflow.v2.ITrainAgentRequest): Promise<google.longrunning.Operation>;

                    /**
                     * Calls ExportAgent.
                     * @param request ExportAgentRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public exportAgent(request: google.cloud.dialogflow.v2.IExportAgentRequest, callback: google.cloud.dialogflow.v2.Agents.ExportAgentCallback): void;

                    /**
                     * Calls ExportAgent.
                     * @param request ExportAgentRequest message or plain object
                     * @returns Promise
                     */
                    public exportAgent(request: google.cloud.dialogflow.v2.IExportAgentRequest): Promise<google.longrunning.Operation>;

                    /**
                     * Calls ImportAgent.
                     * @param request ImportAgentRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public importAgent(request: google.cloud.dialogflow.v2.IImportAgentRequest, callback: google.cloud.dialogflow.v2.Agents.ImportAgentCallback): void;

                    /**
                     * Calls ImportAgent.
                     * @param request ImportAgentRequest message or plain object
                     * @returns Promise
                     */
                    public importAgent(request: google.cloud.dialogflow.v2.IImportAgentRequest): Promise<google.longrunning.Operation>;

                    /**
                     * Calls RestoreAgent.
                     * @param request RestoreAgentRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public restoreAgent(request: google.cloud.dialogflow.v2.IRestoreAgentRequest, callback: google.cloud.dialogflow.v2.Agents.RestoreAgentCallback): void;

                    /**
                     * Calls RestoreAgent.
                     * @param request RestoreAgentRequest message or plain object
                     * @returns Promise
                     */
                    public restoreAgent(request: google.cloud.dialogflow.v2.IRestoreAgentRequest): Promise<google.longrunning.Operation>;

                    /**
                     * Calls GetValidationResult.
                     * @param request GetValidationResultRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ValidationResult
                     */
                    public getValidationResult(request: google.cloud.dialogflow.v2.IGetValidationResultRequest, callback: google.cloud.dialogflow.v2.Agents.GetValidationResultCallback): void;

                    /**
                     * Calls GetValidationResult.
                     * @param request GetValidationResultRequest message or plain object
                     * @returns Promise
                     */
                    public getValidationResult(request: google.cloud.dialogflow.v2.IGetValidationResultRequest): Promise<google.cloud.dialogflow.v2.ValidationResult>;
                }

                namespace Agents {

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2.Agents|getAgent}.
                     * @param error Error, if any
                     * @param [response] Agent
                     */
                    type GetAgentCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2.Agent) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2.Agents|setAgent}.
                     * @param error Error, if any
                     * @param [response] Agent
                     */
                    type SetAgentCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2.Agent) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2.Agents|deleteAgent}.
                     * @param error Error, if any
                     * @param [response] Empty
                     */
                    type DeleteAgentCallback = (error: (Error|null), response?: google.protobuf.Empty) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2.Agents|searchAgents}.
                     * @param error Error, if any
                     * @param [response] SearchAgentsResponse
                     */
                    type SearchAgentsCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2.SearchAgentsResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2.Agents|trainAgent}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type TrainAgentCallback = (error: (Error|null), response?: google.longrunning.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2.Agents|exportAgent}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type ExportAgentCallback = (error: (Error|null), response?: google.longrunning.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2.Agents|importAgent}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type ImportAgentCallback = (error: (Error|null), response?: google.longrunning.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2.Agents|restoreAgent}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type RestoreAgentCallback = (error: (Error|null), response?: google.longrunning.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2.Agents|getValidationResult}.
                     * @param error Error, if any
                     * @param [response] ValidationResult
                     */
                    type GetValidationResultCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2.ValidationResult) => void;
                }

                /** Properties of an Agent. */
                interface IAgent {

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

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

                    /** Agent defaultLanguageCode */
                    defaultLanguageCode?: (string|null);

                    /** Agent supportedLanguageCodes */
                    supportedLanguageCodes?: (string[]|null);

                    /** Agent timeZone */
                    timeZone?: (string|null);

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

                    /** Agent avatarUri */
                    avatarUri?: (string|null);

                    /** Agent enableLogging */
                    enableLogging?: (boolean|null);

                    /** Agent matchMode */
                    matchMode?: (google.cloud.dialogflow.v2.Agent.MatchMode|keyof typeof google.cloud.dialogflow.v2.Agent.MatchMode|null);

                    /** Agent classificationThreshold */
                    classificationThreshold?: (number|null);

                    /** Agent apiVersion */
                    apiVersion?: (google.cloud.dialogflow.v2.Agent.ApiVersion|keyof typeof google.cloud.dialogflow.v2.Agent.ApiVersion|null);

                    /** Agent tier */
                    tier?: (google.cloud.dialogflow.v2.Agent.Tier|keyof typeof google.cloud.dialogflow.v2.Agent.Tier|null);
                }

                /** Represents an Agent. */
                class Agent implements IAgent {

                    /**
                     * Constructs a new Agent.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IAgent);

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

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

                    /** Agent defaultLanguageCode. */
                    public defaultLanguageCode: string;

                    /** Agent supportedLanguageCodes. */
                    public supportedLanguageCodes: string[];

                    /** Agent timeZone. */
                    public timeZone: string;

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

                    /** Agent avatarUri. */
                    public avatarUri: string;

                    /** Agent enableLogging. */
                    public enableLogging: boolean;

                    /** Agent matchMode. */
                    public matchMode: (google.cloud.dialogflow.v2.Agent.MatchMode|keyof typeof google.cloud.dialogflow.v2.Agent.MatchMode);

                    /** Agent classificationThreshold. */
                    public classificationThreshold: number;

                    /** Agent apiVersion. */
                    public apiVersion: (google.cloud.dialogflow.v2.Agent.ApiVersion|keyof typeof google.cloud.dialogflow.v2.Agent.ApiVersion);

                    /** Agent tier. */
                    public tier: (google.cloud.dialogflow.v2.Agent.Tier|keyof typeof google.cloud.dialogflow.v2.Agent.Tier);

                    /**
                     * Creates a new Agent instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Agent instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IAgent): google.cloud.dialogflow.v2.Agent;

                    /**
                     * Encodes the specified Agent message. Does not implicitly {@link google.cloud.dialogflow.v2.Agent.verify|verify} messages.
                     * @param message Agent message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IAgent, writer?: $protobuf.Writer): $protobuf.Writer;

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

                    /**
                     * Decodes an Agent message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Agent
                     * @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.cloud.dialogflow.v2.Agent;

                    /**
                     * Decodes an Agent message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Agent
                     * @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.cloud.dialogflow.v2.Agent;

                    /**
                     * Verifies an Agent 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 Agent message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Agent
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.Agent;

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

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

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

                namespace Agent {

                    /** MatchMode enum. */
                    enum MatchMode {
                        MATCH_MODE_UNSPECIFIED = 0,
                        MATCH_MODE_HYBRID = 1,
                        MATCH_MODE_ML_ONLY = 2
                    }

                    /** ApiVersion enum. */
                    enum ApiVersion {
                        API_VERSION_UNSPECIFIED = 0,
                        API_VERSION_V1 = 1,
                        API_VERSION_V2 = 2,
                        API_VERSION_V2_BETA_1 = 3
                    }

                    /** Tier enum. */
                    enum Tier {
                        TIER_UNSPECIFIED = 0,
                        TIER_STANDARD = 1,
                        TIER_ENTERPRISE = 2,
                        TIER_ENTERPRISE_PLUS = 3
                    }
                }

                /** Properties of a GetAgentRequest. */
                interface IGetAgentRequest {

                    /** GetAgentRequest parent */
                    parent?: (string|null);
                }

                /** Represents a GetAgentRequest. */
                class GetAgentRequest implements IGetAgentRequest {

                    /**
                     * Constructs a new GetAgentRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IGetAgentRequest);

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

                    /**
                     * Creates a new GetAgentRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetAgentRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IGetAgentRequest): google.cloud.dialogflow.v2.GetAgentRequest;

                    /**
                     * Encodes the specified GetAgentRequest message. Does not implicitly {@link google.cloud.dialogflow.v2.GetAgentRequest.verify|verify} messages.
                     * @param message GetAgentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IGetAgentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

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

                    /**
                     * Decodes a GetAgentRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetAgentRequest
                     * @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.cloud.dialogflow.v2.GetAgentRequest;

                    /**
                     * Decodes a GetAgentRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetAgentRequest
                     * @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.cloud.dialogflow.v2.GetAgentRequest;

                    /**
                     * Verifies a GetAgentRequest 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 GetAgentRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetAgentRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.GetAgentRequest;

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

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

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

                /** Properties of a SetAgentRequest. */
                interface ISetAgentRequest {

                    /** SetAgentRequest agent */
                    agent?: (google.cloud.dialogflow.v2.IAgent|null);

                    /** SetAgentRequest updateMask */
                    updateMask?: (google.protobuf.IFieldMask|null);
                }

                /** Represents a SetAgentRequest. */
                class SetAgentRequest implements ISetAgentRequest {

                    /**
                     * Constructs a new SetAgentRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.ISetAgentRequest);

                    /** SetAgentRequest agent. */
                    public agent?: (google.cloud.dialogflow.v2.IAgent|null);

                    /** SetAgentRequest updateMask. */
                    public updateMask?: (google.protobuf.IFieldMask|null);

                    /**
                     * Creates a new SetAgentRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetAgentRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.ISetAgentRequest): google.cloud.dialogflow.v2.SetAgentRequest;

                    /**
                     * Encodes the specified SetAgentRequest message. Does not implicitly {@link google.cloud.dialogflow.v2.SetAgentRequest.verify|verify} messages.
                     * @param message SetAgentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.ISetAgentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

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

                    /**
                     * Decodes a SetAgentRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetAgentRequest
                     * @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.cloud.dialogflow.v2.SetAgentRequest;

                    /**
                     * Decodes a SetAgentRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetAgentRequest
                     * @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.cloud.dialogflow.v2.SetAgentRequest;

                    /**
                     * Verifies a SetAgentRequest 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 SetAgentRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetAgentRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.SetAgentRequest;

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

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

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

                /** Properties of a DeleteAgentRequest. */
                interface IDeleteAgentRequest {

                    /** DeleteAgentRequest parent */
                    parent?: (string|null);
                }

                /** Represents a DeleteAgentRequest. */
                class DeleteAgentRequest implements IDeleteAgentRequest {

                    /**
                     * Constructs a new DeleteAgentRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IDeleteAgentRequest);

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

                    /**
                     * Creates a new DeleteAgentRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteAgentRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IDeleteAgentRequest): google.cloud.dialogflow.v2.DeleteAgentRequest;

                    /**
                     * Encodes the specified DeleteAgentRequest message. Does not implicitly {@link google.cloud.dialogflow.v2.DeleteAgentRequest.verify|verify} messages.
                     * @param message DeleteAgentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IDeleteAgentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

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

                    /**
                     * Decodes a DeleteAgentRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteAgentRequest
                     * @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.cloud.dialogflow.v2.DeleteAgentRequest;

                    /**
                     * Decodes a DeleteAgentRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteAgentRequest
                     * @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.cloud.dialogflow.v2.DeleteAgentRequest;

                    /**
                     * Verifies a DeleteAgentRequest 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 DeleteAgentRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteAgentRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.DeleteAgentRequest;

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

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

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

                /** Properties of a SearchAgentsRequest. */
                interface ISearchAgentsRequest {

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

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

                    /** SearchAgentsRequest pageToken */
                    pageToken?: (string|null);
                }

                /** Represents a SearchAgentsRequest. */
                class SearchAgentsRequest implements ISearchAgentsRequest {

                    /**
                     * Constructs a new SearchAgentsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.ISearchAgentsRequest);

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

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

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

                    /**
                     * Creates a new SearchAgentsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SearchAgentsRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.ISearchAgentsRequest): google.cloud.dialogflow.v2.SearchAgentsRequest;

                    /**
                     * Encodes the specified SearchAgentsRequest message. Does not implicitly {@link google.cloud.dialogflow.v2.SearchAgentsRequest.verify|verify} messages.
                     * @param message SearchAgentsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.ISearchAgentsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

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

                    /**
                     * Decodes a SearchAgentsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SearchAgentsRequest
                     * @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.cloud.dialogflow.v2.SearchAgentsRequest;

                    /**
                     * Decodes a SearchAgentsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SearchAgentsRequest
                     * @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.cloud.dialogflow.v2.SearchAgentsRequest;

                    /**
                     * Verifies a SearchAgentsRequest 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 SearchAgentsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SearchAgentsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.SearchAgentsRequest;

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

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

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

                /** Properties of a SearchAgentsResponse. */
                interface ISearchAgentsResponse {

                    /** SearchAgentsResponse agents */
                    agents?: (google.cloud.dialogflow.v2.IAgent[]|null);

                    /** SearchAgentsResponse nextPageToken */
                    nextPageToken?: (string|null);
                }

                /** Represents a SearchAgentsResponse. */
                class SearchAgentsResponse implements ISearchAgentsResponse {

                    /**
                     * Constructs a new SearchAgentsResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.ISearchAgentsResponse);

                    /** SearchAgentsResponse agents. */
                    public agents: google.cloud.dialogflow.v2.IAgent[];

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

                    /**
                     * Creates a new SearchAgentsResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SearchAgentsResponse instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.ISearchAgentsResponse): google.cloud.dialogflow.v2.SearchAgentsResponse;

                    /**
                     * Encodes the specified SearchAgentsResponse message. Does not implicitly {@link google.cloud.dialogflow.v2.SearchAgentsResponse.verify|verify} messages.
                     * @param message SearchAgentsResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.ISearchAgentsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

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

                    /**
                     * Decodes a SearchAgentsResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SearchAgentsResponse
                     * @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.cloud.dialogflow.v2.SearchAgentsResponse;

                    /**
                     * Decodes a SearchAgentsResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SearchAgentsResponse
                     * @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.cloud.dialogflow.v2.SearchAgentsResponse;

                    /**
                     * Verifies a SearchAgentsResponse 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 SearchAgentsResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SearchAgentsResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.SearchAgentsResponse;

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

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

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

                /** Properties of a TrainAgentRequest. */
                interface ITrainAgentRequest {

                    /** TrainAgentRequest parent */
                    parent?: (string|null);
                }

                /** Represents a TrainAgentRequest. */
                class TrainAgentRequest implements ITrainAgentRequest {

                    /**
                     * Constructs a new TrainAgentRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.ITrainAgentRequest);

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

                    /**
                     * Creates a new TrainAgentRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TrainAgentRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.ITrainAgentRequest): google.cloud.dialogflow.v2.TrainAgentRequest;

                    /**
                     * Encodes the specified TrainAgentRequest message. Does not implicitly {@link google.cloud.dialogflow.v2.TrainAgentRequest.verify|verify} messages.
                     * @param message TrainAgentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.ITrainAgentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

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

                    /**
                     * Decodes a TrainAgentRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TrainAgentRequest
                     * @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.cloud.dialogflow.v2.TrainAgentRequest;

                    /**
                     * Decodes a TrainAgentRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TrainAgentRequest
                     * @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.cloud.dialogflow.v2.TrainAgentRequest;

                    /**
                     * Verifies a TrainAgentRequest 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 TrainAgentRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TrainAgentRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.TrainAgentRequest;

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

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

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

                /** Properties of an ExportAgentRequest. */
                interface IExportAgentRequest {

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

                    /** ExportAgentRequest agentUri */
                    agentUri?: (string|null);
                }

                /** Represents an ExportAgentRequest. */
                class ExportAgentRequest implements IExportAgentRequest {

                    /**
                     * Constructs a new ExportAgentRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IExportAgentRequest);

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

                    /** ExportAgentRequest agentUri. */
                    public agentUri: string;

                    /**
                     * Creates a new ExportAgentRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ExportAgentRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IExportAgentRequest): google.cloud.dialogflow.v2.ExportAgentRequest;

                    /**
                     * Encodes the specified ExportAgentRequest message. Does not implicitly {@link google.cloud.dialogflow.v2.ExportAgentRequest.verify|verify} messages.
                     * @param message ExportAgentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IExportAgentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

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

                    /**
                     * Decodes an ExportAgentRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ExportAgentRequest
                     * @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.cloud.dialogflow.v2.ExportAgentRequest;

                    /**
                     * Decodes an ExportAgentRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ExportAgentRequest
                     * @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.cloud.dialogflow.v2.ExportAgentRequest;

                    /**
                     * Verifies an ExportAgentRequest 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 ExportAgentRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ExportAgentRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.ExportAgentRequest;

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

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

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

                /** Properties of an ExportAgentResponse. */
                interface IExportAgentResponse {

                    /** ExportAgentResponse agentUri */
                    agentUri?: (string|null);

                    /** ExportAgentResponse agentContent */
                    agentContent?: (Uint8Array|Buffer|string|null);
                }

                /** Represents an ExportAgentResponse. */
                class ExportAgentResponse implements IExportAgentResponse {

                    /**
                     * Constructs a new ExportAgentResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IExportAgentResponse);

                    /** ExportAgentResponse agentUri. */
                    public agentUri?: (string|null);

                    /** ExportAgentResponse agentContent. */
                    public agentContent?: (Uint8Array|Buffer|string|null);

                    /** ExportAgentResponse agent. */
                    public agent?: ("agentUri"|"agentContent");

                    /**
                     * Creates a new ExportAgentResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ExportAgentResponse instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IExportAgentResponse): google.cloud.dialogflow.v2.ExportAgentResponse;

                    /**
                     * Encodes the specified ExportAgentResponse message. Does not implicitly {@link google.cloud.dialogflow.v2.ExportAgentResponse.verify|verify} messages.
                     * @param message ExportAgentResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IExportAgentResponse, writer?: $protobuf.Writer): $protobuf.Writer;

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

                    /**
                     * Decodes an ExportAgentResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ExportAgentResponse
                     * @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.cloud.dialogflow.v2.ExportAgentResponse;

                    /**
                     * Decodes an ExportAgentResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ExportAgentResponse
                     * @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.cloud.dialogflow.v2.ExportAgentResponse;

                    /**
                     * Verifies an ExportAgentResponse 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 ExportAgentResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ExportAgentResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.ExportAgentResponse;

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

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

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

                /** Properties of an ImportAgentRequest. */
                interface IImportAgentRequest {

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

                    /** ImportAgentRequest agentUri */
                    agentUri?: (string|null);

                    /** ImportAgentRequest agentContent */
                    agentContent?: (Uint8Array|Buffer|string|null);
                }

                /** Represents an ImportAgentRequest. */
                class ImportAgentRequest implements IImportAgentRequest {

                    /**
                     * Constructs a new ImportAgentRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IImportAgentRequest);

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

                    /** ImportAgentRequest agentUri. */
                    public agentUri?: (string|null);

                    /** ImportAgentRequest agentContent. */
                    public agentContent?: (Uint8Array|Buffer|string|null);

                    /** ImportAgentRequest agent. */
                    public agent?: ("agentUri"|"agentContent");

                    /**
                     * Creates a new ImportAgentRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ImportAgentRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IImportAgentRequest): google.cloud.dialogflow.v2.ImportAgentRequest;

                    /**
                     * Encodes the specified ImportAgentRequest message. Does not implicitly {@link google.cloud.dialogflow.v2.ImportAgentRequest.verify|verify} messages.
                     * @param message ImportAgentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IImportAgentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

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

                    /**
                     * Decodes an ImportAgentRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ImportAgentRequest
                     * @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.cloud.dialogflow.v2.ImportAgentRequest;

                    /**
                     * Decodes an ImportAgentRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ImportAgentRequest
                     * @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.cloud.dialogflow.v2.ImportAgentRequest;

                    /**
                     * Verifies an ImportAgentRequest 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 ImportAgentRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ImportAgentRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.ImportAgentRequest;

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

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

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

                /** Properties of a RestoreAgentRequest. */
                interface IRestoreAgentRequest {

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

                    /** RestoreAgentRequest agentUri */
                    agentUri?: (string|null);

                    /** RestoreAgentRequest agentContent */
                    agentContent?: (Uint8Array|Buffer|string|null);
                }

                /** Represents a RestoreAgentRequest. */
                class RestoreAgentRequest implements IRestoreAgentRequest {

                    /**
                     * Constructs a new RestoreAgentRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IRestoreAgentRequest);

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

                    /** RestoreAgentRequest agentUri. */
                    public agentUri?: (string|null);

                    /** RestoreAgentRequest agentContent. */
                    public agentContent?: (Uint8Array|Buffer|string|null);

                    /** RestoreAgentRequest agent. */
                    public agent?: ("agentUri"|"agentContent");

                    /**
                     * Creates a new RestoreAgentRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RestoreAgentRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IRestoreAgentRequest): google.cloud.dialogflow.v2.RestoreAgentRequest;

                    /**
                     * Encodes the specified RestoreAgentRequest message. Does not implicitly {@link google.cloud.dialogflow.v2.RestoreAgentRequest.verify|verify} messages.
                     * @param message RestoreAgentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IRestoreAgentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

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

                    /**
                     * Decodes a RestoreAgentRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RestoreAgentRequest
                     * @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.cloud.dialogflow.v2.RestoreAgentRequest;

                    /**
                     * Decodes a RestoreAgentRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RestoreAgentRequest
                     * @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.cloud.dialogflow.v2.RestoreAgentRequest;

                    /**
                     * Verifies a RestoreAgentRequest 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 RestoreAgentRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RestoreAgentRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.RestoreAgentRequest;

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

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

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

                /** Properties of a GetValidationResultRequest. */
                interface IGetValidationResultRequest {

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

                    /** GetValidationResultRequest languageCode */
                    languageCode?: (string|null);
                }

                /** Represents a GetValidationResultRequest. */
                class GetValidationResultRequest implements IGetValidationResultRequest {

                    /**
                     * Constructs a new GetValidationResultRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IGetValidationResultRequest);

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

                    /** GetValidationResultRequest languageCode. */
                    public languageCode: string;

                    /**
                     * Creates a new GetValidationResultRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetValidationResultRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IGetValidationResultRequest): google.cloud.dialogflow.v2.GetValidationResultRequest;

                    /**
                     * Encodes the specified GetValidationResultRequest message. Does not implicitly {@link google.cloud.dialogflow.v2.GetValidationResultRequest.verify|verify} messages.
                     * @param message GetValidationResultRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IGetValidationResultRequest, writer?: $protobuf.Writer): $protobuf.Writer;

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

                    /**
                     * Decodes a GetValidationResultRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetValidationResultRequest
                     * @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.cloud.dialogflow.v2.GetValidationResultRequest;

                    /**
                     * Decodes a GetValidationResultRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetValidationResultRequest
                     * @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.cloud.dialogflow.v2.GetValidationResultRequest;

                    /**
                     * Verifies a GetValidationResultRequest 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 GetValidationResultRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetValidationResultRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.GetValidationResultRequest;

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

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

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

                /** Properties of a ValidationError. */
                interface IValidationError {

                    /** ValidationError severity */
                    severity?: (google.cloud.dialogflow.v2.ValidationError.Severity|keyof typeof google.cloud.dialogflow.v2.ValidationError.Severity|null);

                    /** ValidationError entries */
                    entries?: (string[]|null);

                    /** ValidationError errorMessage */
                    errorMessage?: (string|null);
                }

                /** Represents a ValidationError. */
                class ValidationError implements IValidationError {

                    /**
                     * Constructs a new ValidationError.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IValidationError);

                    /** ValidationError severity. */
                    public severity: (google.cloud.dialogflow.v2.ValidationError.Severity|keyof typeof google.cloud.dialogflow.v2.ValidationError.Severity);

                    /** ValidationError entries. */
                    public entries: string[];

                    /** ValidationError errorMessage. */
                    public errorMessage: string;

                    /**
                     * Creates a new ValidationError instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ValidationError instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IValidationError): google.cloud.dialogflow.v2.ValidationError;

                    /**
                     * Encodes the specified ValidationError message. Does not implicitly {@link google.cloud.dialogflow.v2.ValidationError.verify|verify} messages.
                     * @param message ValidationError message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IValidationError, writer?: $protobuf.Writer): $protobuf.Writer;

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

                    /**
                     * Decodes a ValidationError message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ValidationError
                     * @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.cloud.dialogflow.v2.ValidationError;

                    /**
                     * Decodes a ValidationError message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ValidationError
                     * @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.cloud.dialogflow.v2.ValidationError;

                    /**
                     * Verifies a ValidationError 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 ValidationError message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ValidationError
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.ValidationError;

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

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

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

                namespace ValidationError {

                    /** Severity enum. */
                    enum Severity {
                        SEVERITY_UNSPECIFIED = 0,
                        INFO = 1,
                        WARNING = 2,
                        ERROR = 3,
                        CRITICAL = 4
                    }
                }

                /** Properties of a ValidationResult. */
                interface IValidationResult {

                    /** ValidationResult validationErrors */
                    validationErrors?: (google.cloud.dialogflow.v2.IValidationError[]|null);
                }

                /** Represents a ValidationResult. */
                class ValidationResult implements IValidationResult {

                    /**
                     * Constructs a new ValidationResult.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IValidationResult);

                    /** ValidationResult validationErrors. */
                    public validationErrors: google.cloud.dialogflow.v2.IValidationError[];

                    /**
                     * Creates a new ValidationResult instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ValidationResult instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IValidationResult): google.cloud.dialogflow.v2.ValidationResult;

                    /**
                     * Encodes the specified ValidationResult message. Does not implicitly {@link google.cloud.dialogflow.v2.ValidationResult.verify|verify} messages.
                     * @param message ValidationResult message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IValidationResult, writer?: $protobuf.Writer): $protobuf.Writer;

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

                    /**
                     * Decodes a ValidationResult message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ValidationResult
                     * @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.cloud.dialogflow.v2.ValidationResult;

                    /**
                     * Decodes a ValidationResult message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ValidationResult
                     * @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.cloud.dialogflow.v2.ValidationResult;

                    /**
                     * Verifies a ValidationResult 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 ValidationResult message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ValidationResult
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.ValidationResult;

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

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

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

                /** Properties of an AgentCoachingInstruction. */
                interface IAgentCoachingInstruction {

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

                    /** AgentCoachingInstruction displayDetails */
                    displayDetails?: (string|null);

                    /** AgentCoachingInstruction condition */
                    condition?: (string|null);

                    /** AgentCoachingInstruction agentAction */
                    agentAction?: (string|null);

                    /** AgentCoachingInstruction systemAction */
                    systemAction?: (string|null);

                    /** AgentCoachingInstruction duplicateCheckResult */
                    duplicateCheckResult?: (google.cloud.dialogflow.v2.AgentCoachingInstruction.IDuplicateCheckResult|null);

                    /** AgentCoachingInstruction triggeringEvent */
                    triggeringEvent?: (google.cloud.dialogflow.v2.AgentCoachingInstruction.TriggerEvent|keyof typeof google.cloud.dialogflow.v2.AgentCoachingInstruction.TriggerEvent|null);
                }

                /** Represents an AgentCoachingInstruction. */
                class AgentCoachingInstruction implements IAgentCoachingInstruction {

                    /**
                     * Constructs a new AgentCoachingInstruction.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IAgentCoachingInstruction);

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

                    /** AgentCoachingInstruction displayDetails. */
                    public displayDetails: string;

                    /** AgentCoachingInstruction condition. */
                    public condition: string;

                    /** AgentCoachingInstruction agentAction. */
                    public agentAction: string;

                    /** AgentCoachingInstruction systemAction. */
                    public systemAction: string;

                    /** AgentCoachingInstruction duplicateCheckResult. */
                    public duplicateCheckResult?: (google.cloud.dialogflow.v2.AgentCoachingInstruction.IDuplicateCheckResult|null);

                    /** AgentCoachingInstruction triggeringEvent. */
                    public triggeringEvent: (google.cloud.dialogflow.v2.AgentCoachingInstruction.TriggerEvent|keyof typeof google.cloud.dialogflow.v2.AgentCoachingInstruction.TriggerEvent);

                    /**
                     * Creates a new AgentCoachingInstruction instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AgentCoachingInstruction instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IAgentCoachingInstruction): google.cloud.dialogflow.v2.AgentCoachingInstruction;

                    /**
                     * Encodes the specified AgentCoachingInstruction message. Does not implicitly {@link google.cloud.dialogflow.v2.AgentCoachingInstruction.verify|verify} messages.
                     * @param message AgentCoachingInstruction message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IAgentCoachingInstruction, writer?: $protobuf.Writer): $protobuf.Writer;

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

                    /**
                     * Decodes an AgentCoachingInstruction message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AgentCoachingInstruction
                     * @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.cloud.dialogflow.v2.AgentCoachingInstruction;

                    /**
                     * Decodes an AgentCoachingInstruction message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AgentCoachingInstruction
                     * @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.cloud.dialogflow.v2.AgentCoachingInstruction;

                    /**
                     * Verifies an AgentCoachingInstruction 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 AgentCoachingInstruction message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AgentCoachingInstruction
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.AgentCoachingInstruction;

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

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

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

                namespace AgentCoachingInstruction {

                    /** Properties of a DuplicateCheckResult. */
                    interface IDuplicateCheckResult {

                        /** DuplicateCheckResult duplicateSuggestions */
                        duplicateSuggestions?: (google.cloud.dialogflow.v2.AgentCoachingInstruction.DuplicateCheckResult.IDuplicateSuggestion[]|null);
                    }

                    /** Represents a DuplicateCheckResult. */
                    class DuplicateCheckResult implements IDuplicateCheckResult {

                        /**
                         * Constructs a new DuplicateCheckResult.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2.AgentCoachingInstruction.IDuplicateCheckResult);

                        /** DuplicateCheckResult duplicateSuggestions. */
                        public duplicateSuggestions: google.cloud.dialogflow.v2.AgentCoachingInstruction.DuplicateCheckResult.IDuplicateSuggestion[];

                        /**
                         * Creates a new DuplicateCheckResult instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns DuplicateCheckResult instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2.AgentCoachingInstruction.IDuplicateCheckResult): google.cloud.dialogflow.v2.AgentCoachingInstruction.DuplicateCheckResult;

                        /**
                         * Encodes the specified DuplicateCheckResult message. Does not implicitly {@link google.cloud.dialogflow.v2.AgentCoachingInstruction.DuplicateCheckResult.verify|verify} messages.
                         * @param message DuplicateCheckResult message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2.AgentCoachingInstruction.IDuplicateCheckResult, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified DuplicateCheckResult message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.AgentCoachingInstruction.DuplicateCheckResult.verify|verify} messages.
                         * @param message DuplicateCheckResult message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2.AgentCoachingInstruction.IDuplicateCheckResult, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a DuplicateCheckResult message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns DuplicateCheckResult
                         * @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.cloud.dialogflow.v2.AgentCoachingInstruction.DuplicateCheckResult;

                        /**
                         * Decodes a DuplicateCheckResult message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns DuplicateCheckResult
                         * @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.cloud.dialogflow.v2.AgentCoachingInstruction.DuplicateCheckResult;

                        /**
                         * Verifies a DuplicateCheckResult 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 DuplicateCheckResult message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns DuplicateCheckResult
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.AgentCoachingInstruction.DuplicateCheckResult;

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

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

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

                    namespace DuplicateCheckResult {

                        /** Properties of a DuplicateSuggestion. */
                        interface IDuplicateSuggestion {

                            /** DuplicateSuggestion answerRecord */
                            answerRecord?: (string|null);

                            /** DuplicateSuggestion suggestionIndex */
                            suggestionIndex?: (number|null);

                            /** DuplicateSuggestion similarityScore */
                            similarityScore?: (number|null);
                        }

                        /** Represents a DuplicateSuggestion. */
                        class DuplicateSuggestion implements IDuplicateSuggestion {

                            /**
                             * Constructs a new DuplicateSuggestion.
                             * @param [properties] Properties to set
                             */
                            constructor(properties?: google.cloud.dialogflow.v2.AgentCoachingInstruction.DuplicateCheckResult.IDuplicateSuggestion);

                            /** DuplicateSuggestion answerRecord. */
                            public answerRecord: string;

                            /** DuplicateSuggestion suggestionIndex. */
                            public suggestionIndex: number;

                            /** DuplicateSuggestion similarityScore. */
                            public similarityScore: number;

                            /**
                             * Creates a new DuplicateSuggestion instance using the specified properties.
                             * @param [properties] Properties to set
                             * @returns DuplicateSuggestion instance
                             */
                            public static create(properties?: google.cloud.dialogflow.v2.AgentCoachingInstruction.DuplicateCheckResult.IDuplicateSuggestion): google.cloud.dialogflow.v2.AgentCoachingInstruction.DuplicateCheckResult.DuplicateSuggestion;

                            /**
                             * Encodes the specified DuplicateSuggestion message. Does not implicitly {@link google.cloud.dialogflow.v2.AgentCoachingInstruction.DuplicateCheckResult.DuplicateSuggestion.verify|verify} messages.
                             * @param message DuplicateSuggestion message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encode(message: google.cloud.dialogflow.v2.AgentCoachingInstruction.DuplicateCheckResult.IDuplicateSuggestion, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Encodes the specified DuplicateSuggestion message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.AgentCoachingInstruction.DuplicateCheckResult.DuplicateSuggestion.verify|verify} messages.
                             * @param message DuplicateSuggestion message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encodeDelimited(message: google.cloud.dialogflow.v2.AgentCoachingInstruction.DuplicateCheckResult.IDuplicateSuggestion, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Decodes a DuplicateSuggestion message from the specified reader or buffer.
                             * @param reader Reader or buffer to decode from
                             * @param [length] Message length if known beforehand
                             * @returns DuplicateSuggestion
                             * @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.cloud.dialogflow.v2.AgentCoachingInstruction.DuplicateCheckResult.DuplicateSuggestion;

                            /**
                             * Decodes a DuplicateSuggestion message from the specified reader or buffer, length delimited.
                             * @param reader Reader or buffer to decode from
                             * @returns DuplicateSuggestion
                             * @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.cloud.dialogflow.v2.AgentCoachingInstruction.DuplicateCheckResult.DuplicateSuggestion;

                            /**
                             * Verifies a DuplicateSuggestion 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 DuplicateSuggestion message from a plain object. Also converts values to their respective internal types.
                             * @param object Plain object
                             * @returns DuplicateSuggestion
                             */
                            public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.AgentCoachingInstruction.DuplicateCheckResult.DuplicateSuggestion;

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

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

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

                    /** TriggerEvent enum. */
                    enum TriggerEvent {
                        TRIGGER_EVENT_UNSPECIFIED = 0,
                        END_OF_UTTERANCE = 1,
                        MANUAL_CALL = 2,
                        CUSTOMER_MESSAGE = 3,
                        AGENT_MESSAGE = 4,
                        TOOL_CALL_COMPLETION = 5
                    }
                }

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

                    /**
                     * Constructs a new AnswerRecords 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 AnswerRecords 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): AnswerRecords;

                    /**
                     * Calls ListAnswerRecords.
                     * @param request ListAnswerRecordsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ListAnswerRecordsResponse
                     */
                    public listAnswerRecords(request: google.cloud.dialogflow.v2.IListAnswerRecordsRequest, callback: google.cloud.dialogflow.v2.AnswerRecords.ListAnswerRecordsCallback): void;

                    /**
                     * Calls ListAnswerRecords.
                     * @param request ListAnswerRecordsRequest message or plain object
                     * @returns Promise
                     */
                    public listAnswerRecords(request: google.cloud.dialogflow.v2.IListAnswerRecordsRequest): Promise<google.cloud.dialogflow.v2.ListAnswerRecordsResponse>;

                    /**
                     * Calls UpdateAnswerRecord.
                     * @param request UpdateAnswerRecordRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and AnswerRecord
                     */
                    public updateAnswerRecord(request: google.cloud.dialogflow.v2.IUpdateAnswerRecordRequest, callback: google.cloud.dialogflow.v2.AnswerRecords.UpdateAnswerRecordCallback): void;

                    /**
                     * Calls UpdateAnswerRecord.
                     * @param request UpdateAnswerRecordRequest message or plain object
                     * @returns Promise
                     */
                    public updateAnswerRecord(request: google.cloud.dialogflow.v2.IUpdateAnswerRecordRequest): Promise<google.cloud.dialogflow.v2.AnswerRecord>;
                }

                namespace AnswerRecords {

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2.AnswerRecords|listAnswerRecords}.
                     * @param error Error, if any
                     * @param [response] ListAnswerRecordsResponse
                     */
                    type ListAnswerRecordsCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2.ListAnswerRecordsResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2.AnswerRecords|updateAnswerRecord}.
                     * @param error Error, if any
                     * @param [response] AnswerRecord
                     */
                    type UpdateAnswerRecordCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2.AnswerRecord) => void;
                }

                /** Properties of an AnswerRecord. */
                interface IAnswerRecord {

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

                    /** AnswerRecord answerFeedback */
                    answerFeedback?: (google.cloud.dialogflow.v2.IAnswerFeedback|null);

                    /** AnswerRecord agentAssistantRecord */
                    agentAssistantRecord?: (google.cloud.dialogflow.v2.IAgentAssistantRecord|null);
                }

                /** Represents an AnswerRecord. */
                class AnswerRecord implements IAnswerRecord {

                    /**
                     * Constructs a new AnswerRecord.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IAnswerRecord);

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

                    /** AnswerRecord answerFeedback. */
                    public answerFeedback?: (google.cloud.dialogflow.v2.IAnswerFeedback|null);

                    /** AnswerRecord agentAssistantRecord. */
                    public agentAssistantRecord?: (google.cloud.dialogflow.v2.IAgentAssistantRecord|null);

                    /** AnswerRecord record. */
                    public record?: "agentAssistantRecord";

                    /**
                     * Creates a new AnswerRecord instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AnswerRecord instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IAnswerRecord): google.cloud.dialogflow.v2.AnswerRecord;

                    /**
                     * Encodes the specified AnswerRecord message. Does not implicitly {@link google.cloud.dialogflow.v2.AnswerRecord.verify|verify} messages.
                     * @param message AnswerRecord message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IAnswerRecord, writer?: $protobuf.Writer): $protobuf.Writer;

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

                    /**
                     * Decodes an AnswerRecord message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AnswerRecord
                     * @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.cloud.dialogflow.v2.AnswerRecord;

                    /**
                     * Decodes an AnswerRecord message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AnswerRecord
                     * @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.cloud.dialogflow.v2.AnswerRecord;

                    /**
                     * Verifies an AnswerRecord 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 AnswerRecord message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AnswerRecord
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.AnswerRecord;

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

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

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

                /** Properties of a ListAnswerRecordsRequest. */
                interface IListAnswerRecordsRequest {

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

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

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

                    /** ListAnswerRecordsRequest pageToken */
                    pageToken?: (string|null);
                }

                /** Represents a ListAnswerRecordsRequest. */
                class ListAnswerRecordsRequest implements IListAnswerRecordsRequest {

                    /**
                     * Constructs a new ListAnswerRecordsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IListAnswerRecordsRequest);

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

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

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

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

                    /**
                     * Creates a new ListAnswerRecordsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListAnswerRecordsRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IListAnswerRecordsRequest): google.cloud.dialogflow.v2.ListAnswerRecordsRequest;

                    /**
                     * Encodes the specified ListAnswerRecordsRequest message. Does not implicitly {@link google.cloud.dialogflow.v2.ListAnswerRecordsRequest.verify|verify} messages.
                     * @param message ListAnswerRecordsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IListAnswerRecordsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

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

                    /**
                     * Decodes a ListAnswerRecordsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListAnswerRecordsRequest
                     * @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.cloud.dialogflow.v2.ListAnswerRecordsRequest;

                    /**
                     * Decodes a ListAnswerRecordsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListAnswerRecordsRequest
                     * @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.cloud.dialogflow.v2.ListAnswerRecordsRequest;

                    /**
                     * Verifies a ListAnswerRecordsRequest 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 ListAnswerRecordsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListAnswerRecordsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.ListAnswerRecordsRequest;

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

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

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

                /** Properties of a ListAnswerRecordsResponse. */
                interface IListAnswerRecordsResponse {

                    /** ListAnswerRecordsResponse answerRecords */
                    answerRecords?: (google.cloud.dialogflow.v2.IAnswerRecord[]|null);

                    /** ListAnswerRecordsResponse nextPageToken */
                    nextPageToken?: (string|null);
                }

                /** Represents a ListAnswerRecordsResponse. */
                class ListAnswerRecordsResponse implements IListAnswerRecordsResponse {

                    /**
                     * Constructs a new ListAnswerRecordsResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IListAnswerRecordsResponse);

                    /** ListAnswerRecordsResponse answerRecords. */
                    public answerRecords: google.cloud.dialogflow.v2.IAnswerRecord[];

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

                    /**
                     * Creates a new ListAnswerRecordsResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListAnswerRecordsResponse instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IListAnswerRecordsResponse): google.cloud.dialogflow.v2.ListAnswerRecordsResponse;

                    /**
                     * Encodes the specified ListAnswerRecordsResponse message. Does not implicitly {@link google.cloud.dialogflow.v2.ListAnswerRecordsResponse.verify|verify} messages.
                     * @param message ListAnswerRecordsResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IListAnswerRecordsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

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

                    /**
                     * Decodes a ListAnswerRecordsResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListAnswerRecordsResponse
                     * @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.cloud.dialogflow.v2.ListAnswerRecordsResponse;

                    /**
                     * Decodes a ListAnswerRecordsResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListAnswerRecordsResponse
                     * @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.cloud.dialogflow.v2.ListAnswerRecordsResponse;

                    /**
                     * Verifies a ListAnswerRecordsResponse 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 ListAnswerRecordsResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListAnswerRecordsResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.ListAnswerRecordsResponse;

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

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

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

                /** Properties of an UpdateAnswerRecordRequest. */
                interface IUpdateAnswerRecordRequest {

                    /** UpdateAnswerRecordRequest answerRecord */
                    answerRecord?: (google.cloud.dialogflow.v2.IAnswerRecord|null);

                    /** UpdateAnswerRecordRequest updateMask */
                    updateMask?: (google.protobuf.IFieldMask|null);
                }

                /** Represents an UpdateAnswerRecordRequest. */
                class UpdateAnswerRecordRequest implements IUpdateAnswerRecordRequest {

                    /**
                     * Constructs a new UpdateAnswerRecordRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IUpdateAnswerRecordRequest);

                    /** UpdateAnswerRecordRequest answerRecord. */
                    public answerRecord?: (google.cloud.dialogflow.v2.IAnswerRecord|null);

                    /** UpdateAnswerRecordRequest updateMask. */
                    public updateMask?: (google.protobuf.IFieldMask|null);

                    /**
                     * Creates a new UpdateAnswerRecordRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UpdateAnswerRecordRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IUpdateAnswerRecordRequest): google.cloud.dialogflow.v2.UpdateAnswerRecordRequest;

                    /**
                     * Encodes the specified UpdateAnswerRecordRequest message. Does not implicitly {@link google.cloud.dialogflow.v2.UpdateAnswerRecordRequest.verify|verify} messages.
                     * @param message UpdateAnswerRecordRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IUpdateAnswerRecordRequest, writer?: $protobuf.Writer): $protobuf.Writer;

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

                    /**
                     * Decodes an UpdateAnswerRecordRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns UpdateAnswerRecordRequest
                     * @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.cloud.dialogflow.v2.UpdateAnswerRecordRequest;

                    /**
                     * Decodes an UpdateAnswerRecordRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns UpdateAnswerRecordRequest
                     * @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.cloud.dialogflow.v2.UpdateAnswerRecordRequest;

                    /**
                     * Verifies an UpdateAnswerRecordRequest 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 UpdateAnswerRecordRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UpdateAnswerRecordRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.UpdateAnswerRecordRequest;

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

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

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

                /** Properties of an AnswerFeedback. */
                interface IAnswerFeedback {

                    /** AnswerFeedback correctnessLevel */
                    correctnessLevel?: (google.cloud.dialogflow.v2.AnswerFeedback.CorrectnessLevel|keyof typeof google.cloud.dialogflow.v2.AnswerFeedback.CorrectnessLevel|null);

                    /** AnswerFeedback agentAssistantDetailFeedback */
                    agentAssistantDetailFeedback?: (google.cloud.dialogflow.v2.IAgentAssistantFeedback|null);

                    /** AnswerFeedback clicked */
                    clicked?: (boolean|null);

                    /** AnswerFeedback clickTime */
                    clickTime?: (google.protobuf.ITimestamp|null);

                    /** AnswerFeedback displayed */
                    displayed?: (boolean|null);

                    /** AnswerFeedback displayTime */
                    displayTime?: (google.protobuf.ITimestamp|null);
                }

                /** Represents an AnswerFeedback. */
                class AnswerFeedback implements IAnswerFeedback {

                    /**
                     * Constructs a new AnswerFeedback.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IAnswerFeedback);

                    /** AnswerFeedback correctnessLevel. */
                    public correctnessLevel: (google.cloud.dialogflow.v2.AnswerFeedback.CorrectnessLevel|keyof typeof google.cloud.dialogflow.v2.AnswerFeedback.CorrectnessLevel);

                    /** AnswerFeedback agentAssistantDetailFeedback. */
                    public agentAssistantDetailFeedback?: (google.cloud.dialogflow.v2.IAgentAssistantFeedback|null);

                    /** AnswerFeedback clicked. */
                    public clicked: boolean;

                    /** AnswerFeedback clickTime. */
                    public clickTime?: (google.protobuf.ITimestamp|null);

                    /** AnswerFeedback displayed. */
                    public displayed: boolean;

                    /** AnswerFeedback displayTime. */
                    public displayTime?: (google.protobuf.ITimestamp|null);

                    /** AnswerFeedback detailFeedback. */
                    public detailFeedback?: "agentAssistantDetailFeedback";

                    /**
                     * Creates a new AnswerFeedback instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AnswerFeedback instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IAnswerFeedback): google.cloud.dialogflow.v2.AnswerFeedback;

                    /**
                     * Encodes the specified AnswerFeedback message. Does not implicitly {@link google.cloud.dialogflow.v2.AnswerFeedback.verify|verify} messages.
                     * @param message AnswerFeedback message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IAnswerFeedback, writer?: $protobuf.Writer): $protobuf.Writer;

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

                    /**
                     * Decodes an AnswerFeedback message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AnswerFeedback
                     * @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.cloud.dialogflow.v2.AnswerFeedback;

                    /**
                     * Decodes an AnswerFeedback message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AnswerFeedback
                     * @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.cloud.dialogflow.v2.AnswerFeedback;

                    /**
                     * Verifies an AnswerFeedback 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 AnswerFeedback message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AnswerFeedback
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.AnswerFeedback;

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

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

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

                namespace AnswerFeedback {

                    /** CorrectnessLevel enum. */
                    enum CorrectnessLevel {
                        CORRECTNESS_LEVEL_UNSPECIFIED = 0,
                        NOT_CORRECT = 1,
                        PARTIALLY_CORRECT = 2,
                        FULLY_CORRECT = 3
                    }
                }

                /** Properties of an AgentAssistantFeedback. */
                interface IAgentAssistantFeedback {

                    /** AgentAssistantFeedback answerRelevance */
                    answerRelevance?: (google.cloud.dialogflow.v2.AgentAssistantFeedback.AnswerRelevance|keyof typeof google.cloud.dialogflow.v2.AgentAssistantFeedback.AnswerRelevance|null);

                    /** AgentAssistantFeedback documentCorrectness */
                    documentCorrectness?: (google.cloud.dialogflow.v2.AgentAssistantFeedback.DocumentCorrectness|keyof typeof google.cloud.dialogflow.v2.AgentAssistantFeedback.DocumentCorrectness|null);

                    /** AgentAssistantFeedback documentEfficiency */
                    documentEfficiency?: (google.cloud.dialogflow.v2.AgentAssistantFeedback.DocumentEfficiency|keyof typeof google.cloud.dialogflow.v2.AgentAssistantFeedback.DocumentEfficiency|null);

                    /** AgentAssistantFeedback summarizationFeedback */
                    summarizationFeedback?: (google.cloud.dialogflow.v2.AgentAssistantFeedback.ISummarizationFeedback|null);

                    /** AgentAssistantFeedback knowledgeSearchFeedback */
                    knowledgeSearchFeedback?: (google.cloud.dialogflow.v2.AgentAssistantFeedback.IKnowledgeSearchFeedback|null);

                    /** AgentAssistantFeedback knowledgeAssistFeedback */
                    knowledgeAssistFeedback?: (google.cloud.dialogflow.v2.AgentAssistantFeedback.IKnowledgeAssistFeedback|null);
                }

                /** Represents an AgentAssistantFeedback. */
                class AgentAssistantFeedback implements IAgentAssistantFeedback {

                    /**
                     * Constructs a new AgentAssistantFeedback.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IAgentAssistantFeedback);

                    /** AgentAssistantFeedback answerRelevance. */
                    public answerRelevance: (google.cloud.dialogflow.v2.AgentAssistantFeedback.AnswerRelevance|keyof typeof google.cloud.dialogflow.v2.AgentAssistantFeedback.AnswerRelevance);

                    /** AgentAssistantFeedback documentCorrectness. */
                    public documentCorrectness: (google.cloud.dialogflow.v2.AgentAssistantFeedback.DocumentCorrectness|keyof typeof google.cloud.dialogflow.v2.AgentAssistantFeedback.DocumentCorrectness);

                    /** AgentAssistantFeedback documentEfficiency. */
                    public documentEfficiency: (google.cloud.dialogflow.v2.AgentAssistantFeedback.DocumentEfficiency|keyof typeof google.cloud.dialogflow.v2.AgentAssistantFeedback.DocumentEfficiency);

                    /** AgentAssistantFeedback summarizationFeedback. */
                    public summarizationFeedback?: (google.cloud.dialogflow.v2.AgentAssistantFeedback.ISummarizationFeedback|null);

                    /** AgentAssistantFeedback knowledgeSearchFeedback. */
                    public knowledgeSearchFeedback?: (google.cloud.dialogflow.v2.AgentAssistantFeedback.IKnowledgeSearchFeedback|null);

                    /** AgentAssistantFeedback knowledgeAssistFeedback. */
                    public knowledgeAssistFeedback?: (google.cloud.dialogflow.v2.AgentAssistantFeedback.IKnowledgeAssistFeedback|null);

                    /**
                     * Creates a new AgentAssistantFeedback instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AgentAssistantFeedback instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IAgentAssistantFeedback): google.cloud.dialogflow.v2.AgentAssistantFeedback;

                    /**
                     * Encodes the specified AgentAssistantFeedback message. Does not implicitly {@link google.cloud.dialogflow.v2.AgentAssistantFeedback.verify|verify} messages.
                     * @param message AgentAssistantFeedback message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IAgentAssistantFeedback, writer?: $protobuf.Writer): $protobuf.Writer;

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

                    /**
                     * Decodes an AgentAssistantFeedback message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AgentAssistantFeedback
                     * @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.cloud.dialogflow.v2.AgentAssistantFeedback;

                    /**
                     * Decodes an AgentAssistantFeedback message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AgentAssistantFeedback
                     * @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.cloud.dialogflow.v2.AgentAssistantFeedback;

                    /**
                     * Verifies an AgentAssistantFeedback 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 AgentAssistantFeedback message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AgentAssistantFeedback
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.AgentAssistantFeedback;

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

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

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

                namespace AgentAssistantFeedback {

                    /** AnswerRelevance enum. */
                    enum AnswerRelevance {
                        ANSWER_RELEVANCE_UNSPECIFIED = 0,
                        IRRELEVANT = 1,
                        RELEVANT = 2
                    }

                    /** DocumentCorrectness enum. */
                    enum DocumentCorrectness {
                        DOCUMENT_CORRECTNESS_UNSPECIFIED = 0,
                        INCORRECT = 1,
                        CORRECT = 2
                    }

                    /** DocumentEfficiency enum. */
                    enum DocumentEfficiency {
                        DOCUMENT_EFFICIENCY_UNSPECIFIED = 0,
                        INEFFICIENT = 1,
                        EFFICIENT = 2
                    }

                    /** Properties of a SummarizationFeedback. */
                    interface ISummarizationFeedback {

                        /** SummarizationFeedback startTime */
                        startTime?: (google.protobuf.ITimestamp|null);

                        /** SummarizationFeedback submitTime */
                        submitTime?: (google.protobuf.ITimestamp|null);

                        /** SummarizationFeedback summaryText */
                        summaryText?: (string|null);

                        /** SummarizationFeedback textSections */
                        textSections?: ({ [k: string]: string }|null);
                    }

                    /** Represents a SummarizationFeedback. */
                    class SummarizationFeedback implements ISummarizationFeedback {

                        /**
                         * Constructs a new SummarizationFeedback.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2.AgentAssistantFeedback.ISummarizationFeedback);

                        /** SummarizationFeedback startTime. */
                        public startTime?: (google.protobuf.ITimestamp|null);

                        /** SummarizationFeedback submitTime. */
                        public submitTime?: (google.protobuf.ITimestamp|null);

                        /** SummarizationFeedback summaryText. */
                        public summaryText: string;

                        /** SummarizationFeedback textSections. */
                        public textSections: { [k: string]: string };

                        /**
                         * Creates a new SummarizationFeedback instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns SummarizationFeedback instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2.AgentAssistantFeedback.ISummarizationFeedback): google.cloud.dialogflow.v2.AgentAssistantFeedback.SummarizationFeedback;

                        /**
                         * Encodes the specified SummarizationFeedback message. Does not implicitly {@link google.cloud.dialogflow.v2.AgentAssistantFeedback.SummarizationFeedback.verify|verify} messages.
                         * @param message SummarizationFeedback message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2.AgentAssistantFeedback.ISummarizationFeedback, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified SummarizationFeedback message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.AgentAssistantFeedback.SummarizationFeedback.verify|verify} messages.
                         * @param message SummarizationFeedback message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2.AgentAssistantFeedback.ISummarizationFeedback, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a SummarizationFeedback message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns SummarizationFeedback
                         * @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.cloud.dialogflow.v2.AgentAssistantFeedback.SummarizationFeedback;

                        /**
                         * Decodes a SummarizationFeedback message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns SummarizationFeedback
                         * @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.cloud.dialogflow.v2.AgentAssistantFeedback.SummarizationFeedback;

                        /**
                         * Verifies a SummarizationFeedback 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 SummarizationFeedback message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns SummarizationFeedback
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.AgentAssistantFeedback.SummarizationFeedback;

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

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

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

                    /** Properties of a KnowledgeSearchFeedback. */
                    interface IKnowledgeSearchFeedback {

                        /** KnowledgeSearchFeedback answerCopied */
                        answerCopied?: (boolean|null);

                        /** KnowledgeSearchFeedback clickedUris */
                        clickedUris?: (string[]|null);
                    }

                    /** Represents a KnowledgeSearchFeedback. */
                    class KnowledgeSearchFeedback implements IKnowledgeSearchFeedback {

                        /**
                         * Constructs a new KnowledgeSearchFeedback.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2.AgentAssistantFeedback.IKnowledgeSearchFeedback);

                        /** KnowledgeSearchFeedback answerCopied. */
                        public answerCopied: boolean;

                        /** KnowledgeSearchFeedback clickedUris. */
                        public clickedUris: string[];

                        /**
                         * Creates a new KnowledgeSearchFeedback instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns KnowledgeSearchFeedback instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2.AgentAssistantFeedback.IKnowledgeSearchFeedback): google.cloud.dialogflow.v2.AgentAssistantFeedback.KnowledgeSearchFeedback;

                        /**
                         * Encodes the specified KnowledgeSearchFeedback message. Does not implicitly {@link google.cloud.dialogflow.v2.AgentAssistantFeedback.KnowledgeSearchFeedback.verify|verify} messages.
                         * @param message KnowledgeSearchFeedback message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2.AgentAssistantFeedback.IKnowledgeSearchFeedback, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified KnowledgeSearchFeedback message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.AgentAssistantFeedback.KnowledgeSearchFeedback.verify|verify} messages.
                         * @param message KnowledgeSearchFeedback message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2.AgentAssistantFeedback.IKnowledgeSearchFeedback, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a KnowledgeSearchFeedback message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns KnowledgeSearchFeedback
                         * @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.cloud.dialogflow.v2.AgentAssistantFeedback.KnowledgeSearchFeedback;

                        /**
                         * Decodes a KnowledgeSearchFeedback message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns KnowledgeSearchFeedback
                         * @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.cloud.dialogflow.v2.AgentAssistantFeedback.KnowledgeSearchFeedback;

                        /**
                         * Verifies a KnowledgeSearchFeedback 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 KnowledgeSearchFeedback message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns KnowledgeSearchFeedback
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.AgentAssistantFeedback.KnowledgeSearchFeedback;

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

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

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

                    /** Properties of a KnowledgeAssistFeedback. */
                    interface IKnowledgeAssistFeedback {

                        /** KnowledgeAssistFeedback answerCopied */
                        answerCopied?: (boolean|null);

                        /** KnowledgeAssistFeedback clickedUris */
                        clickedUris?: (string[]|null);
                    }

                    /** Represents a KnowledgeAssistFeedback. */
                    class KnowledgeAssistFeedback implements IKnowledgeAssistFeedback {

                        /**
                         * Constructs a new KnowledgeAssistFeedback.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2.AgentAssistantFeedback.IKnowledgeAssistFeedback);

                        /** KnowledgeAssistFeedback answerCopied. */
                        public answerCopied: boolean;

                        /** KnowledgeAssistFeedback clickedUris. */
                        public clickedUris: string[];

                        /**
                         * Creates a new KnowledgeAssistFeedback instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns KnowledgeAssistFeedback instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2.AgentAssistantFeedback.IKnowledgeAssistFeedback): google.cloud.dialogflow.v2.AgentAssistantFeedback.KnowledgeAssistFeedback;

                        /**
                         * Encodes the specified KnowledgeAssistFeedback message. Does not implicitly {@link google.cloud.dialogflow.v2.AgentAssistantFeedback.KnowledgeAssistFeedback.verify|verify} messages.
                         * @param message KnowledgeAssistFeedback message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2.AgentAssistantFeedback.IKnowledgeAssistFeedback, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified KnowledgeAssistFeedback message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.AgentAssistantFeedback.KnowledgeAssistFeedback.verify|verify} messages.
                         * @param message KnowledgeAssistFeedback message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2.AgentAssistantFeedback.IKnowledgeAssistFeedback, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a KnowledgeAssistFeedback message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns KnowledgeAssistFeedback
                         * @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.cloud.dialogflow.v2.AgentAssistantFeedback.KnowledgeAssistFeedback;

                        /**
                         * Decodes a KnowledgeAssistFeedback message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns KnowledgeAssistFeedback
                         * @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.cloud.dialogflow.v2.AgentAssistantFeedback.KnowledgeAssistFeedback;

                        /**
                         * Verifies a KnowledgeAssistFeedback 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 KnowledgeAssistFeedback message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns KnowledgeAssistFeedback
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.AgentAssistantFeedback.KnowledgeAssistFeedback;

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

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

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

                /** Properties of an AgentAssistantRecord. */
                interface IAgentAssistantRecord {

                    /** AgentAssistantRecord articleSuggestionAnswer */
                    articleSuggestionAnswer?: (google.cloud.dialogflow.v2.IArticleAnswer|null);

                    /** AgentAssistantRecord faqAnswer */
                    faqAnswer?: (google.cloud.dialogflow.v2.IFaqAnswer|null);

                    /** AgentAssistantRecord dialogflowAssistAnswer */
                    dialogflowAssistAnswer?: (google.cloud.dialogflow.v2.IDialogflowAssistAnswer|null);

                    /** AgentAssistantRecord generatorSuggestion */
                    generatorSuggestion?: (google.cloud.dialogflow.v2.IGeneratorSuggestion|null);
                }

                /** Represents an AgentAssistantRecord. */
                class AgentAssistantRecord implements IAgentAssistantRecord {

                    /**
                     * Constructs a new AgentAssistantRecord.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IAgentAssistantRecord);

                    /** AgentAssistantRecord articleSuggestionAnswer. */
                    public articleSuggestionAnswer?: (google.cloud.dialogflow.v2.IArticleAnswer|null);

                    /** AgentAssistantRecord faqAnswer. */
                    public faqAnswer?: (google.cloud.dialogflow.v2.IFaqAnswer|null);

                    /** AgentAssistantRecord dialogflowAssistAnswer. */
                    public dialogflowAssistAnswer?: (google.cloud.dialogflow.v2.IDialogflowAssistAnswer|null);

                    /** AgentAssistantRecord generatorSuggestion. */
                    public generatorSuggestion?: (google.cloud.dialogflow.v2.IGeneratorSuggestion|null);

                    /** AgentAssistantRecord answer. */
                    public answer?: ("articleSuggestionAnswer"|"faqAnswer"|"dialogflowAssistAnswer"|"generatorSuggestion");

                    /**
                     * Creates a new AgentAssistantRecord instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AgentAssistantRecord instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IAgentAssistantRecord): google.cloud.dialogflow.v2.AgentAssistantRecord;

                    /**
                     * Encodes the specified AgentAssistantRecord message. Does not implicitly {@link google.cloud.dialogflow.v2.AgentAssistantRecord.verify|verify} messages.
                     * @param message AgentAssistantRecord message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IAgentAssistantRecord, writer?: $protobuf.Writer): $protobuf.Writer;

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

                    /**
                     * Decodes an AgentAssistantRecord message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AgentAssistantRecord
                     * @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.cloud.dialogflow.v2.AgentAssistantRecord;

                    /**
                     * Decodes an AgentAssistantRecord message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AgentAssistantRecord
                     * @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.cloud.dialogflow.v2.AgentAssistantRecord;

                    /**
                     * Verifies an AgentAssistantRecord 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 AgentAssistantRecord message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AgentAssistantRecord
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.AgentAssistantRecord;

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

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

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

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

                    /**
                     * Constructs a new Generators 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 Generators 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): Generators;

                    /**
                     * Calls CreateGenerator.
                     * @param request CreateGeneratorRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Generator
                     */
                    public createGenerator(request: google.cloud.dialogflow.v2.ICreateGeneratorRequest, callback: google.cloud.dialogflow.v2.Generators.CreateGeneratorCallback): void;

                    /**
                     * Calls CreateGenerator.
                     * @param request CreateGeneratorRequest message or plain object
                     * @returns Promise
                     */
                    public createGenerator(request: google.cloud.dialogflow.v2.ICreateGeneratorRequest): Promise<google.cloud.dialogflow.v2.Generator>;

                    /**
                     * Calls GetGenerator.
                     * @param request GetGeneratorRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Generator
                     */
                    public getGenerator(request: google.cloud.dialogflow.v2.IGetGeneratorRequest, callback: google.cloud.dialogflow.v2.Generators.GetGeneratorCallback): void;

                    /**
                     * Calls GetGenerator.
                     * @param request GetGeneratorRequest message or plain object
                     * @returns Promise
                     */
                    public getGenerator(request: google.cloud.dialogflow.v2.IGetGeneratorRequest): Promise<google.cloud.dialogflow.v2.Generator>;

                    /**
                     * Calls ListGenerators.
                     * @param request ListGeneratorsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ListGeneratorsResponse
                     */
                    public listGenerators(request: google.cloud.dialogflow.v2.IListGeneratorsRequest, callback: google.cloud.dialogflow.v2.Generators.ListGeneratorsCallback): void;

                    /**
                     * Calls ListGenerators.
                     * @param request ListGeneratorsRequest message or plain object
                     * @returns Promise
                     */
                    public listGenerators(request: google.cloud.dialogflow.v2.IListGeneratorsRequest): Promise<google.cloud.dialogflow.v2.ListGeneratorsResponse>;

                    /**
                     * Calls DeleteGenerator.
                     * @param request DeleteGeneratorRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Empty
                     */
                    public deleteGenerator(request: google.cloud.dialogflow.v2.IDeleteGeneratorRequest, callback: google.cloud.dialogflow.v2.Generators.DeleteGeneratorCallback): void;

                    /**
                     * Calls DeleteGenerator.
                     * @param request DeleteGeneratorRequest message or plain object
                     * @returns Promise
                     */
                    public deleteGenerator(request: google.cloud.dialogflow.v2.IDeleteGeneratorRequest): Promise<google.protobuf.Empty>;

                    /**
                     * Calls UpdateGenerator.
                     * @param request UpdateGeneratorRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Generator
                     */
                    public updateGenerator(request: google.cloud.dialogflow.v2.IUpdateGeneratorRequest, callback: google.cloud.dialogflow.v2.Generators.UpdateGeneratorCallback): void;

                    /**
                     * Calls UpdateGenerator.
                     * @param request UpdateGeneratorRequest message or plain object
                     * @returns Promise
                     */
                    public updateGenerator(request: google.cloud.dialogflow.v2.IUpdateGeneratorRequest): Promise<google.cloud.dialogflow.v2.Generator>;
                }

                namespace Generators {

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2.Generators|createGenerator}.
                     * @param error Error, if any
                     * @param [response] Generator
                     */
                    type CreateGeneratorCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2.Generator) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2.Generators|getGenerator}.
                     * @param error Error, if any
                     * @param [response] Generator
                     */
                    type GetGeneratorCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2.Generator) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2.Generators|listGenerators}.
                     * @param error Error, if any
                     * @param [response] ListGeneratorsResponse
                     */
                    type ListGeneratorsCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2.ListGeneratorsResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2.Generators|deleteGenerator}.
                     * @param error Error, if any
                     * @param [response] Empty
                     */
                    type DeleteGeneratorCallback = (error: (Error|null), response?: google.protobuf.Empty) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2.Generators|updateGenerator}.
                     * @param error Error, if any
                     * @param [response] Generator
                     */
                    type UpdateGeneratorCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2.Generator) => void;
                }

                /** Properties of a CreateGeneratorRequest. */
                interface ICreateGeneratorRequest {

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

                    /** CreateGeneratorRequest generator */
                    generator?: (google.cloud.dialogflow.v2.IGenerator|null);

                    /** CreateGeneratorRequest generatorId */
                    generatorId?: (string|null);
                }

                /** Represents a CreateGeneratorRequest. */
                class CreateGeneratorRequest implements ICreateGeneratorRequest {

                    /**
                     * Constructs a new CreateGeneratorRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.ICreateGeneratorRequest);

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

                    /** CreateGeneratorRequest generator. */
                    public generator?: (google.cloud.dialogflow.v2.IGenerator|null);

                    /** CreateGeneratorRequest generatorId. */
                    public generatorId: string;

                    /**
                     * Creates a new CreateGeneratorRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CreateGeneratorRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.ICreateGeneratorRequest): google.cloud.dialogflow.v2.CreateGeneratorRequest;

                    /**
                     * Encodes the specified CreateGeneratorRequest message. Does not implicitly {@link google.cloud.dialogflow.v2.CreateGeneratorRequest.verify|verify} messages.
                     * @param message CreateGeneratorRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.ICreateGeneratorRequest, writer?: $protobuf.Writer): $protobuf.Writer;

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

                    /**
                     * Decodes a CreateGeneratorRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CreateGeneratorRequest
                     * @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.cloud.dialogflow.v2.CreateGeneratorRequest;

                    /**
                     * Decodes a CreateGeneratorRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CreateGeneratorRequest
                     * @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.cloud.dialogflow.v2.CreateGeneratorRequest;

                    /**
                     * Verifies a CreateGeneratorRequest 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 CreateGeneratorRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CreateGeneratorRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.CreateGeneratorRequest;

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

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

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

                /** Properties of a GetGeneratorRequest. */
                interface IGetGeneratorRequest {

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

                /** Represents a GetGeneratorRequest. */
                class GetGeneratorRequest implements IGetGeneratorRequest {

                    /**
                     * Constructs a new GetGeneratorRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IGetGeneratorRequest);

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

                    /**
                     * Creates a new GetGeneratorRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetGeneratorRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IGetGeneratorRequest): google.cloud.dialogflow.v2.GetGeneratorRequest;

                    /**
                     * Encodes the specified GetGeneratorRequest message. Does not implicitly {@link google.cloud.dialogflow.v2.GetGeneratorRequest.verify|verify} messages.
                     * @param message GetGeneratorRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IGetGeneratorRequest, writer?: $protobuf.Writer): $protobuf.Writer;

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

                    /**
                     * Decodes a GetGeneratorRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetGeneratorRequest
                     * @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.cloud.dialogflow.v2.GetGeneratorRequest;

                    /**
                     * Decodes a GetGeneratorRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetGeneratorRequest
                     * @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.cloud.dialogflow.v2.GetGeneratorRequest;

                    /**
                     * Verifies a GetGeneratorRequest 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 GetGeneratorRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetGeneratorRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.GetGeneratorRequest;

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

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

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

                /** Properties of a ListGeneratorsRequest. */
                interface IListGeneratorsRequest {

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

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

                    /** ListGeneratorsRequest pageToken */
                    pageToken?: (string|null);
                }

                /** Represents a ListGeneratorsRequest. */
                class ListGeneratorsRequest implements IListGeneratorsRequest {

                    /**
                     * Constructs a new ListGeneratorsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IListGeneratorsRequest);

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

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

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

                    /**
                     * Creates a new ListGeneratorsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListGeneratorsRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IListGeneratorsRequest): google.cloud.dialogflow.v2.ListGeneratorsRequest;

                    /**
                     * Encodes the specified ListGeneratorsRequest message. Does not implicitly {@link google.cloud.dialogflow.v2.ListGeneratorsRequest.verify|verify} messages.
                     * @param message ListGeneratorsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IListGeneratorsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

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

                    /**
                     * Decodes a ListGeneratorsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListGeneratorsRequest
                     * @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.cloud.dialogflow.v2.ListGeneratorsRequest;

                    /**
                     * Decodes a ListGeneratorsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListGeneratorsRequest
                     * @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.cloud.dialogflow.v2.ListGeneratorsRequest;

                    /**
                     * Verifies a ListGeneratorsRequest 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 ListGeneratorsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListGeneratorsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.ListGeneratorsRequest;

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

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

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

                /** Properties of a ListGeneratorsResponse. */
                interface IListGeneratorsResponse {

                    /** ListGeneratorsResponse generators */
                    generators?: (google.cloud.dialogflow.v2.IGenerator[]|null);

                    /** ListGeneratorsResponse nextPageToken */
                    nextPageToken?: (string|null);
                }

                /** Represents a ListGeneratorsResponse. */
                class ListGeneratorsResponse implements IListGeneratorsResponse {

                    /**
                     * Constructs a new ListGeneratorsResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IListGeneratorsResponse);

                    /** ListGeneratorsResponse generators. */
                    public generators: google.cloud.dialogflow.v2.IGenerator[];

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

                    /**
                     * Creates a new ListGeneratorsResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListGeneratorsResponse instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IListGeneratorsResponse): google.cloud.dialogflow.v2.ListGeneratorsResponse;

                    /**
                     * Encodes the specified ListGeneratorsResponse message. Does not implicitly {@link google.cloud.dialogflow.v2.ListGeneratorsResponse.verify|verify} messages.
                     * @param message ListGeneratorsResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IListGeneratorsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

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

                    /**
                     * Decodes a ListGeneratorsResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListGeneratorsResponse
                     * @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.cloud.dialogflow.v2.ListGeneratorsResponse;

                    /**
                     * Decodes a ListGeneratorsResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListGeneratorsResponse
                     * @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.cloud.dialogflow.v2.ListGeneratorsResponse;

                    /**
                     * Verifies a ListGeneratorsResponse 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 ListGeneratorsResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListGeneratorsResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.ListGeneratorsResponse;

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

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

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

                /** Properties of a DeleteGeneratorRequest. */
                interface IDeleteGeneratorRequest {

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

                /** Represents a DeleteGeneratorRequest. */
                class DeleteGeneratorRequest implements IDeleteGeneratorRequest {

                    /**
                     * Constructs a new DeleteGeneratorRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IDeleteGeneratorRequest);

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

                    /**
                     * Creates a new DeleteGeneratorRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteGeneratorRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IDeleteGeneratorRequest): google.cloud.dialogflow.v2.DeleteGeneratorRequest;

                    /**
                     * Encodes the specified DeleteGeneratorRequest message. Does not implicitly {@link google.cloud.dialogflow.v2.DeleteGeneratorRequest.verify|verify} messages.
                     * @param message DeleteGeneratorRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IDeleteGeneratorRequest, writer?: $protobuf.Writer): $protobuf.Writer;

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

                    /**
                     * Decodes a DeleteGeneratorRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteGeneratorRequest
                     * @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.cloud.dialogflow.v2.DeleteGeneratorRequest;

                    /**
                     * Decodes a DeleteGeneratorRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteGeneratorRequest
                     * @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.cloud.dialogflow.v2.DeleteGeneratorRequest;

                    /**
                     * Verifies a DeleteGeneratorRequest 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 DeleteGeneratorRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteGeneratorRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.DeleteGeneratorRequest;

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

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

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

                /** Properties of an UpdateGeneratorRequest. */
                interface IUpdateGeneratorRequest {

                    /** UpdateGeneratorRequest generator */
                    generator?: (google.cloud.dialogflow.v2.IGenerator|null);

                    /** UpdateGeneratorRequest updateMask */
                    updateMask?: (google.protobuf.IFieldMask|null);
                }

                /** Represents an UpdateGeneratorRequest. */
                class UpdateGeneratorRequest implements IUpdateGeneratorRequest {

                    /**
                     * Constructs a new UpdateGeneratorRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IUpdateGeneratorRequest);

                    /** UpdateGeneratorRequest generator. */
                    public generator?: (google.cloud.dialogflow.v2.IGenerator|null);

                    /** UpdateGeneratorRequest updateMask. */
                    public updateMask?: (google.protobuf.IFieldMask|null);

                    /**
                     * Creates a new UpdateGeneratorRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UpdateGeneratorRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IUpdateGeneratorRequest): google.cloud.dialogflow.v2.UpdateGeneratorRequest;

                    /**
                     * Encodes the specified UpdateGeneratorRequest message. Does not implicitly {@link google.cloud.dialogflow.v2.UpdateGeneratorRequest.verify|verify} messages.
                     * @param message UpdateGeneratorRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IUpdateGeneratorRequest, writer?: $protobuf.Writer): $protobuf.Writer;

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

                    /**
                     * Decodes an UpdateGeneratorRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns UpdateGeneratorRequest
                     * @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.cloud.dialogflow.v2.UpdateGeneratorRequest;

                    /**
                     * Decodes an UpdateGeneratorRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns UpdateGeneratorRequest
                     * @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.cloud.dialogflow.v2.UpdateGeneratorRequest;

                    /**
                     * Verifies an UpdateGeneratorRequest 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 UpdateGeneratorRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UpdateGeneratorRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.UpdateGeneratorRequest;

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

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

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

                /** Properties of a MessageEntry. */
                interface IMessageEntry {

                    /** MessageEntry role */
                    role?: (google.cloud.dialogflow.v2.MessageEntry.Role|keyof typeof google.cloud.dialogflow.v2.MessageEntry.Role|null);

                    /** MessageEntry text */
                    text?: (string|null);

                    /** MessageEntry languageCode */
                    languageCode?: (string|null);

                    /** MessageEntry createTime */
                    createTime?: (google.protobuf.ITimestamp|null);
                }

                /** Represents a MessageEntry. */
                class MessageEntry implements IMessageEntry {

                    /**
                     * Constructs a new MessageEntry.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IMessageEntry);

                    /** MessageEntry role. */
                    public role: (google.cloud.dialogflow.v2.MessageEntry.Role|keyof typeof google.cloud.dialogflow.v2.MessageEntry.Role);

                    /** MessageEntry text. */
                    public text: string;

                    /** MessageEntry languageCode. */
                    public languageCode: string;

                    /** MessageEntry createTime. */
                    public createTime?: (google.protobuf.ITimestamp|null);

                    /**
                     * Creates a new MessageEntry instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns MessageEntry instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IMessageEntry): google.cloud.dialogflow.v2.MessageEntry;

                    /**
                     * Encodes the specified MessageEntry message. Does not implicitly {@link google.cloud.dialogflow.v2.MessageEntry.verify|verify} messages.
                     * @param message MessageEntry message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IMessageEntry, writer?: $protobuf.Writer): $protobuf.Writer;

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

                    /**
                     * Decodes a MessageEntry message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns MessageEntry
                     * @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.cloud.dialogflow.v2.MessageEntry;

                    /**
                     * Decodes a MessageEntry message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns MessageEntry
                     * @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.cloud.dialogflow.v2.MessageEntry;

                    /**
                     * Verifies a MessageEntry 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 MessageEntry message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns MessageEntry
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.MessageEntry;

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

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

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

                namespace MessageEntry {

                    /** Role enum. */
                    enum Role {
                        ROLE_UNSPECIFIED = 0,
                        HUMAN_AGENT = 1,
                        AUTOMATED_AGENT = 2,
                        END_USER = 3
                    }
                }

                /** Properties of a ConversationContext. */
                interface IConversationContext {

                    /** ConversationContext messageEntries */
                    messageEntries?: (google.cloud.dialogflow.v2.IMessageEntry[]|null);
                }

                /** Represents a ConversationContext. */
                class ConversationContext implements IConversationContext {

                    /**
                     * Constructs a new ConversationContext.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IConversationContext);

                    /** ConversationContext messageEntries. */
                    public messageEntries: google.cloud.dialogflow.v2.IMessageEntry[];

                    /**
                     * Creates a new ConversationContext instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ConversationContext instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IConversationContext): google.cloud.dialogflow.v2.ConversationContext;

                    /**
                     * Encodes the specified ConversationContext message. Does not implicitly {@link google.cloud.dialogflow.v2.ConversationContext.verify|verify} messages.
                     * @param message ConversationContext message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IConversationContext, writer?: $protobuf.Writer): $protobuf.Writer;

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

                    /**
                     * Decodes a ConversationContext message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ConversationContext
                     * @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.cloud.dialogflow.v2.ConversationContext;

                    /**
                     * Decodes a ConversationContext message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ConversationContext
                     * @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.cloud.dialogflow.v2.ConversationContext;

                    /**
                     * Verifies a ConversationContext 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 ConversationContext message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ConversationContext
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.ConversationContext;

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

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

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

                /** Properties of a SummarizationSectionList. */
                interface ISummarizationSectionList {

                    /** SummarizationSectionList summarizationSections */
                    summarizationSections?: (google.cloud.dialogflow.v2.ISummarizationSection[]|null);
                }

                /** Represents a SummarizationSectionList. */
                class SummarizationSectionList implements ISummarizationSectionList {

                    /**
                     * Constructs a new SummarizationSectionList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.ISummarizationSectionList);

                    /** SummarizationSectionList summarizationSections. */
                    public summarizationSections: google.cloud.dialogflow.v2.ISummarizationSection[];

                    /**
                     * Creates a new SummarizationSectionList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SummarizationSectionList instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.ISummarizationSectionList): google.cloud.dialogflow.v2.SummarizationSectionList;

                    /**
                     * Encodes the specified SummarizationSectionList message. Does not implicitly {@link google.cloud.dialogflow.v2.SummarizationSectionList.verify|verify} messages.
                     * @param message SummarizationSectionList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.ISummarizationSectionList, writer?: $protobuf.Writer): $protobuf.Writer;

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

                    /**
                     * Decodes a SummarizationSectionList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SummarizationSectionList
                     * @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.cloud.dialogflow.v2.SummarizationSectionList;

                    /**
                     * Decodes a SummarizationSectionList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SummarizationSectionList
                     * @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.cloud.dialogflow.v2.SummarizationSectionList;

                    /**
                     * Verifies a SummarizationSectionList 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 SummarizationSectionList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SummarizationSectionList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.SummarizationSectionList;

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

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

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

                /** Properties of a FewShotExample. */
                interface IFewShotExample {

                    /** FewShotExample conversationContext */
                    conversationContext?: (google.cloud.dialogflow.v2.IConversationContext|null);

                    /** FewShotExample extraInfo */
                    extraInfo?: ({ [k: string]: string }|null);

                    /** FewShotExample summarizationSectionList */
                    summarizationSectionList?: (google.cloud.dialogflow.v2.ISummarizationSectionList|null);

                    /** FewShotExample output */
                    output?: (google.cloud.dialogflow.v2.IGeneratorSuggestion|null);
                }

                /** Represents a FewShotExample. */
                class FewShotExample implements IFewShotExample {

                    /**
                     * Constructs a new FewShotExample.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IFewShotExample);

                    /** FewShotExample conversationContext. */
                    public conversationContext?: (google.cloud.dialogflow.v2.IConversationContext|null);

                    /** FewShotExample extraInfo. */
                    public extraInfo: { [k: string]: string };

                    /** FewShotExample summarizationSectionList. */
                    public summarizationSectionList?: (google.cloud.dialogflow.v2.ISummarizationSectionList|null);

                    /** FewShotExample output. */
                    public output?: (google.cloud.dialogflow.v2.IGeneratorSuggestion|null);

                    /** FewShotExample instructionList. */
                    public instructionList?: "summarizationSectionList";

                    /**
                     * Creates a new FewShotExample instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns FewShotExample instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IFewShotExample): google.cloud.dialogflow.v2.FewShotExample;

                    /**
                     * Encodes the specified FewShotExample message. Does not implicitly {@link google.cloud.dialogflow.v2.FewShotExample.verify|verify} messages.
                     * @param message FewShotExample message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IFewShotExample, writer?: $protobuf.Writer): $protobuf.Writer;

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

                    /**
                     * Decodes a FewShotExample message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns FewShotExample
                     * @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.cloud.dialogflow.v2.FewShotExample;

                    /**
                     * Decodes a FewShotExample message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns FewShotExample
                     * @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.cloud.dialogflow.v2.FewShotExample;

                    /**
                     * Verifies a FewShotExample 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 FewShotExample message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns FewShotExample
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.FewShotExample;

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

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

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

                /** Properties of an InferenceParameter. */
                interface IInferenceParameter {

                    /** InferenceParameter maxOutputTokens */
                    maxOutputTokens?: (number|null);

                    /** InferenceParameter temperature */
                    temperature?: (number|null);

                    /** InferenceParameter topK */
                    topK?: (number|null);

                    /** InferenceParameter topP */
                    topP?: (number|null);
                }

                /** Represents an InferenceParameter. */
                class InferenceParameter implements IInferenceParameter {

                    /**
                     * Constructs a new InferenceParameter.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IInferenceParameter);

                    /** InferenceParameter maxOutputTokens. */
                    public maxOutputTokens?: (number|null);

                    /** InferenceParameter temperature. */
                    public temperature?: (number|null);

                    /** InferenceParameter topK. */
                    public topK?: (number|null);

                    /** InferenceParameter topP. */
                    public topP?: (number|null);

                    /**
                     * Creates a new InferenceParameter instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InferenceParameter instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IInferenceParameter): google.cloud.dialogflow.v2.InferenceParameter;

                    /**
                     * Encodes the specified InferenceParameter message. Does not implicitly {@link google.cloud.dialogflow.v2.InferenceParameter.verify|verify} messages.
                     * @param message InferenceParameter message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IInferenceParameter, writer?: $protobuf.Writer): $protobuf.Writer;

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

                    /**
                     * Decodes an InferenceParameter message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InferenceParameter
                     * @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.cloud.dialogflow.v2.InferenceParameter;

                    /**
                     * Decodes an InferenceParameter message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InferenceParameter
                     * @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.cloud.dialogflow.v2.InferenceParameter;

                    /**
                     * Verifies an InferenceParameter 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 InferenceParameter message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InferenceParameter
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.InferenceParameter;

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

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

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

                /** Properties of an AgentCoachingContext. */
                interface IAgentCoachingContext {

                    /** AgentCoachingContext overarchingGuidance */
                    overarchingGuidance?: (string|null);

                    /** AgentCoachingContext instructions */
                    instructions?: (google.cloud.dialogflow.v2.IAgentCoachingInstruction[]|null);

                    /** AgentCoachingContext version */
                    version?: (string|null);

                    /** AgentCoachingContext outputLanguageCode */
                    outputLanguageCode?: (string|null);
                }

                /** Represents an AgentCoachingContext. */
                class AgentCoachingContext implements IAgentCoachingContext {

                    /**
                     * Constructs a new AgentCoachingContext.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IAgentCoachingContext);

                    /** AgentCoachingContext overarchingGuidance. */
                    public overarchingGuidance: string;

                    /** AgentCoachingContext instructions. */
                    public instructions: google.cloud.dialogflow.v2.IAgentCoachingInstruction[];

                    /** AgentCoachingContext version. */
                    public version: string;

                    /** AgentCoachingContext outputLanguageCode. */
                    public outputLanguageCode: string;

                    /**
                     * Creates a new AgentCoachingContext instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AgentCoachingContext instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IAgentCoachingContext): google.cloud.dialogflow.v2.AgentCoachingContext;

                    /**
                     * Encodes the specified AgentCoachingContext message. Does not implicitly {@link google.cloud.dialogflow.v2.AgentCoachingContext.verify|verify} messages.
                     * @param message AgentCoachingContext message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IAgentCoachingContext, writer?: $protobuf.Writer): $protobuf.Writer;

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

                    /**
                     * Decodes an AgentCoachingContext message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AgentCoachingContext
                     * @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.cloud.dialogflow.v2.AgentCoachingContext;

                    /**
                     * Decodes an AgentCoachingContext message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AgentCoachingContext
                     * @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.cloud.dialogflow.v2.AgentCoachingContext;

                    /**
                     * Verifies an AgentCoachingContext 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 AgentCoachingContext message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AgentCoachingContext
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.AgentCoachingContext;

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

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

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

                /** Properties of a SummarizationSection. */
                interface ISummarizationSection {

                    /** SummarizationSection key */
                    key?: (string|null);

                    /** SummarizationSection definition */
                    definition?: (string|null);

                    /** SummarizationSection type */
                    type?: (google.cloud.dialogflow.v2.SummarizationSection.Type|keyof typeof google.cloud.dialogflow.v2.SummarizationSection.Type|null);
                }

                /** Represents a SummarizationSection. */
                class SummarizationSection implements ISummarizationSection {

                    /**
                     * Constructs a new SummarizationSection.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.ISummarizationSection);

                    /** SummarizationSection key. */
                    public key: string;

                    /** SummarizationSection definition. */
                    public definition: string;

                    /** SummarizationSection type. */
                    public type: (google.cloud.dialogflow.v2.SummarizationSection.Type|keyof typeof google.cloud.dialogflow.v2.SummarizationSection.Type);

                    /**
                     * Creates a new SummarizationSection instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SummarizationSection instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.ISummarizationSection): google.cloud.dialogflow.v2.SummarizationSection;

                    /**
                     * Encodes the specified SummarizationSection message. Does not implicitly {@link google.cloud.dialogflow.v2.SummarizationSection.verify|verify} messages.
                     * @param message SummarizationSection message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.ISummarizationSection, writer?: $protobuf.Writer): $protobuf.Writer;

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

                    /**
                     * Decodes a SummarizationSection message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SummarizationSection
                     * @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.cloud.dialogflow.v2.SummarizationSection;

                    /**
                     * Decodes a SummarizationSection message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SummarizationSection
                     * @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.cloud.dialogflow.v2.SummarizationSection;

                    /**
                     * Verifies a SummarizationSection 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 SummarizationSection message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SummarizationSection
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.SummarizationSection;

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

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

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

                namespace SummarizationSection {

                    /** Type enum. */
                    enum Type {
                        TYPE_UNSPECIFIED = 0,
                        SITUATION = 1,
                        ACTION = 2,
                        RESOLUTION = 3,
                        REASON_FOR_CANCELLATION = 4,
                        CUSTOMER_SATISFACTION = 5,
                        ENTITIES = 6,
                        CUSTOMER_DEFINED = 7,
                        SITUATION_CONCISE = 9,
                        ACTION_CONCISE = 10
                    }
                }

                /** Properties of a SummarizationContext. */
                interface ISummarizationContext {

                    /** SummarizationContext summarizationSections */
                    summarizationSections?: (google.cloud.dialogflow.v2.ISummarizationSection[]|null);

                    /** SummarizationContext fewShotExamples */
                    fewShotExamples?: (google.cloud.dialogflow.v2.IFewShotExample[]|null);

                    /** SummarizationContext version */
                    version?: (string|null);

                    /** SummarizationContext outputLanguageCode */
                    outputLanguageCode?: (string|null);
                }

                /** Represents a SummarizationContext. */
                class SummarizationContext implements ISummarizationContext {

                    /**
                     * Constructs a new SummarizationContext.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.ISummarizationContext);

                    /** SummarizationContext summarizationSections. */
                    public summarizationSections: google.cloud.dialogflow.v2.ISummarizationSection[];

                    /** SummarizationContext fewShotExamples. */
                    public fewShotExamples: google.cloud.dialogflow.v2.IFewShotExample[];

                    /** SummarizationContext version. */
                    public version: string;

                    /** SummarizationContext outputLanguageCode. */
                    public outputLanguageCode: string;

                    /**
                     * Creates a new SummarizationContext instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SummarizationContext instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.ISummarizationContext): google.cloud.dialogflow.v2.SummarizationContext;

                    /**
                     * Encodes the specified SummarizationContext message. Does not implicitly {@link google.cloud.dialogflow.v2.SummarizationContext.verify|verify} messages.
                     * @param message SummarizationContext message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.ISummarizationContext, writer?: $protobuf.Writer): $protobuf.Writer;

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

                    /**
                     * Decodes a SummarizationContext message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SummarizationContext
                     * @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.cloud.dialogflow.v2.SummarizationContext;

                    /**
                     * Decodes a SummarizationContext message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SummarizationContext
                     * @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.cloud.dialogflow.v2.SummarizationContext;

                    /**
                     * Verifies a SummarizationContext 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 SummarizationContext message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SummarizationContext
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.SummarizationContext;

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

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

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

                /** Properties of a FreeFormContext. */
                interface IFreeFormContext {

                    /** FreeFormContext text */
                    text?: (string|null);
                }

                /** Represents a FreeFormContext. */
                class FreeFormContext implements IFreeFormContext {

                    /**
                     * Constructs a new FreeFormContext.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IFreeFormContext);

                    /** FreeFormContext text. */
                    public text: string;

                    /**
                     * Creates a new FreeFormContext instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns FreeFormContext instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IFreeFormContext): google.cloud.dialogflow.v2.FreeFormContext;

                    /**
                     * Encodes the specified FreeFormContext message. Does not implicitly {@link google.cloud.dialogflow.v2.FreeFormContext.verify|verify} messages.
                     * @param message FreeFormContext message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IFreeFormContext, writer?: $protobuf.Writer): $protobuf.Writer;

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

                    /**
                     * Decodes a FreeFormContext message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns FreeFormContext
                     * @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.cloud.dialogflow.v2.FreeFormContext;

                    /**
                     * Decodes a FreeFormContext message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns FreeFormContext
                     * @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.cloud.dialogflow.v2.FreeFormContext;

                    /**
                     * Verifies a FreeFormContext 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 FreeFormContext message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns FreeFormContext
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.FreeFormContext;

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

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

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

                /** Properties of a Generator. */
                interface IGenerator {

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

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

                    /** Generator freeFormContext */
                    freeFormContext?: (google.cloud.dialogflow.v2.IFreeFormContext|null);

                    /** Generator agentCoachingContext */
                    agentCoachingContext?: (google.cloud.dialogflow.v2.IAgentCoachingContext|null);

                    /** Generator summarizationContext */
                    summarizationContext?: (google.cloud.dialogflow.v2.ISummarizationContext|null);

                    /** Generator inferenceParameter */
                    inferenceParameter?: (google.cloud.dialogflow.v2.IInferenceParameter|null);

                    /** Generator triggerEvent */
                    triggerEvent?: (google.cloud.dialogflow.v2.TriggerEvent|keyof typeof google.cloud.dialogflow.v2.TriggerEvent|null);

                    /** Generator publishedModel */
                    publishedModel?: (string|null);

                    /** Generator createTime */
                    createTime?: (google.protobuf.ITimestamp|null);

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

                    /** Generator tools */
                    tools?: (string[]|null);

                    /** Generator suggestionDedupingConfig */
                    suggestionDedupingConfig?: (google.cloud.dialogflow.v2.ISuggestionDedupingConfig|null);

                    /** Generator toolsetTools */
                    toolsetTools?: (google.cloud.dialogflow.v2.IToolsetTool[]|null);

                    /** Generator cesToolSpecs */
                    cesToolSpecs?: (google.cloud.dialogflow.v2.ICesToolSpec[]|null);

                    /** Generator cesAppSpecs */
                    cesAppSpecs?: (google.cloud.dialogflow.v2.ICesAppSpec[]|null);
                }

                /** Represents a Generator. */
                class Generator implements IGenerator {

                    /**
                     * Constructs a new Generator.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IGenerator);

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

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

                    /** Generator freeFormContext. */
                    public freeFormContext?: (google.cloud.dialogflow.v2.IFreeFormContext|null);

                    /** Generator agentCoachingContext. */
                    public agentCoachingContext?: (google.cloud.dialogflow.v2.IAgentCoachingContext|null);

                    /** Generator summarizationContext. */
                    public summarizationContext?: (google.cloud.dialogflow.v2.ISummarizationContext|null);

                    /** Generator inferenceParameter. */
                    public inferenceParameter?: (google.cloud.dialogflow.v2.IInferenceParameter|null);

                    /** Generator triggerEvent. */
                    public triggerEvent: (google.cloud.dialogflow.v2.TriggerEvent|keyof typeof google.cloud.dialogflow.v2.TriggerEvent);

                    /** Generator publishedModel. */
                    public publishedModel?: (string|null);

                    /** Generator createTime. */
                    public createTime?: (google.protobuf.ITimestamp|null);

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

                    /** Generator tools. */
                    public tools: string[];

                    /** Generator suggestionDedupingConfig. */
                    public suggestionDedupingConfig?: (google.cloud.dialogflow.v2.ISuggestionDedupingConfig|null);

                    /** Generator toolsetTools. */
                    public toolsetTools: google.cloud.dialogflow.v2.IToolsetTool[];

                    /** Generator cesToolSpecs. */
                    public cesToolSpecs: google.cloud.dialogflow.v2.ICesToolSpec[];

                    /** Generator cesAppSpecs. */
                    public cesAppSpecs: google.cloud.dialogflow.v2.ICesAppSpec[];

                    /** Generator context. */
                    public context?: ("freeFormContext"|"agentCoachingContext"|"summarizationContext");

                    /** Generator foundationModel. */
                    public foundationModel?: "publishedModel";

                    /**
                     * Creates a new Generator instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Generator instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IGenerator): google.cloud.dialogflow.v2.Generator;

                    /**
                     * Encodes the specified Generator message. Does not implicitly {@link google.cloud.dialogflow.v2.Generator.verify|verify} messages.
                     * @param message Generator message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IGenerator, writer?: $protobuf.Writer): $protobuf.Writer;

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

                    /**
                     * Decodes a Generator message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Generator
                     * @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.cloud.dialogflow.v2.Generator;

                    /**
                     * Decodes a Generator message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Generator
                     * @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.cloud.dialogflow.v2.Generator;

                    /**
                     * Verifies a Generator 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 Generator message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Generator
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.Generator;

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

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

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

                /** Properties of a FreeFormSuggestion. */
                interface IFreeFormSuggestion {

                    /** FreeFormSuggestion response */
                    response?: (string|null);
                }

                /** Represents a FreeFormSuggestion. */
                class FreeFormSuggestion implements IFreeFormSuggestion {

                    /**
                     * Constructs a new FreeFormSuggestion.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IFreeFormSuggestion);

                    /** FreeFormSuggestion response. */
                    public response: string;

                    /**
                     * Creates a new FreeFormSuggestion instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns FreeFormSuggestion instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IFreeFormSuggestion): google.cloud.dialogflow.v2.FreeFormSuggestion;

                    /**
                     * Encodes the specified FreeFormSuggestion message. Does not implicitly {@link google.cloud.dialogflow.v2.FreeFormSuggestion.verify|verify} messages.
                     * @param message FreeFormSuggestion message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IFreeFormSuggestion, writer?: $protobuf.Writer): $protobuf.Writer;

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

                    /**
                     * Decodes a FreeFormSuggestion message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns FreeFormSuggestion
                     * @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.cloud.dialogflow.v2.FreeFormSuggestion;

                    /**
                     * Decodes a FreeFormSuggestion message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns FreeFormSuggestion
                     * @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.cloud.dialogflow.v2.FreeFormSuggestion;

                    /**
                     * Verifies a FreeFormSuggestion 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 FreeFormSuggestion message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns FreeFormSuggestion
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.FreeFormSuggestion;

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

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

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

                /** Properties of a SummarySuggestion. */
                interface ISummarySuggestion {

                    /** SummarySuggestion summarySections */
                    summarySections?: (google.cloud.dialogflow.v2.SummarySuggestion.ISummarySection[]|null);
                }

                /** Represents a SummarySuggestion. */
                class SummarySuggestion implements ISummarySuggestion {

                    /**
                     * Constructs a new SummarySuggestion.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.ISummarySuggestion);

                    /** SummarySuggestion summarySections. */
                    public summarySections: google.cloud.dialogflow.v2.SummarySuggestion.ISummarySection[];

                    /**
                     * Creates a new SummarySuggestion instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SummarySuggestion instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.ISummarySuggestion): google.cloud.dialogflow.v2.SummarySuggestion;

                    /**
                     * Encodes the specified SummarySuggestion message. Does not implicitly {@link google.cloud.dialogflow.v2.SummarySuggestion.verify|verify} messages.
                     * @param message SummarySuggestion message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.ISummarySuggestion, writer?: $protobuf.Writer): $protobuf.Writer;

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

                    /**
                     * Decodes a SummarySuggestion message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SummarySuggestion
                     * @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.cloud.dialogflow.v2.SummarySuggestion;

                    /**
                     * Decodes a SummarySuggestion message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SummarySuggestion
                     * @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.cloud.dialogflow.v2.SummarySuggestion;

                    /**
                     * Verifies a SummarySuggestion 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 SummarySuggestion message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SummarySuggestion
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.SummarySuggestion;

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

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

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

                namespace SummarySuggestion {

                    /** Properties of a SummarySection. */
                    interface ISummarySection {

                        /** SummarySection section */
                        section?: (string|null);

                        /** SummarySection summary */
                        summary?: (string|null);
                    }

                    /** Represents a SummarySection. */
                    class SummarySection implements ISummarySection {

                        /**
                         * Constructs a new SummarySection.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2.SummarySuggestion.ISummarySection);

                        /** SummarySection section. */
                        public section: string;

                        /** SummarySection summary. */
                        public summary: string;

                        /**
                         * Creates a new SummarySection instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns SummarySection instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2.SummarySuggestion.ISummarySection): google.cloud.dialogflow.v2.SummarySuggestion.SummarySection;

                        /**
                         * Encodes the specified SummarySection message. Does not implicitly {@link google.cloud.dialogflow.v2.SummarySuggestion.SummarySection.verify|verify} messages.
                         * @param message SummarySection message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2.SummarySuggestion.ISummarySection, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified SummarySection message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.SummarySuggestion.SummarySection.verify|verify} messages.
                         * @param message SummarySection message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2.SummarySuggestion.ISummarySection, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a SummarySection message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns SummarySection
                         * @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.cloud.dialogflow.v2.SummarySuggestion.SummarySection;

                        /**
                         * Decodes a SummarySection message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns SummarySection
                         * @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.cloud.dialogflow.v2.SummarySuggestion.SummarySection;

                        /**
                         * Verifies a SummarySection 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 SummarySection message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns SummarySection
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.SummarySuggestion.SummarySection;

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

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

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

                /** Properties of an AgentCoachingSuggestion. */
                interface IAgentCoachingSuggestion {

                    /** AgentCoachingSuggestion applicableInstructions */
                    applicableInstructions?: (google.cloud.dialogflow.v2.IAgentCoachingInstruction[]|null);

                    /** AgentCoachingSuggestion agentActionSuggestions */
                    agentActionSuggestions?: (google.cloud.dialogflow.v2.AgentCoachingSuggestion.IAgentActionSuggestion[]|null);

                    /** AgentCoachingSuggestion sampleResponses */
                    sampleResponses?: (google.cloud.dialogflow.v2.AgentCoachingSuggestion.ISampleResponse[]|null);
                }

                /** Represents an AgentCoachingSuggestion. */
                class AgentCoachingSuggestion implements IAgentCoachingSuggestion {

                    /**
                     * Constructs a new AgentCoachingSuggestion.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IAgentCoachingSuggestion);

                    /** AgentCoachingSuggestion applicableInstructions. */
                    public applicableInstructions: google.cloud.dialogflow.v2.IAgentCoachingInstruction[];

                    /** AgentCoachingSuggestion agentActionSuggestions. */
                    public agentActionSuggestions: google.cloud.dialogflow.v2.AgentCoachingSuggestion.IAgentActionSuggestion[];

                    /** AgentCoachingSuggestion sampleResponses. */
                    public sampleResponses: google.cloud.dialogflow.v2.AgentCoachingSuggestion.ISampleResponse[];

                    /**
                     * Creates a new AgentCoachingSuggestion instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AgentCoachingSuggestion instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IAgentCoachingSuggestion): google.cloud.dialogflow.v2.AgentCoachingSuggestion;

                    /**
                     * Encodes the specified AgentCoachingSuggestion message. Does not implicitly {@link google.cloud.dialogflow.v2.AgentCoachingSuggestion.verify|verify} messages.
                     * @param message AgentCoachingSuggestion message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IAgentCoachingSuggestion, writer?: $protobuf.Writer): $protobuf.Writer;

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

                    /**
                     * Decodes an AgentCoachingSuggestion message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AgentCoachingSuggestion
                     * @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.cloud.dialogflow.v2.AgentCoachingSuggestion;

                    /**
                     * Decodes an AgentCoachingSuggestion message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AgentCoachingSuggestion
                     * @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.cloud.dialogflow.v2.AgentCoachingSuggestion;

                    /**
                     * Verifies an AgentCoachingSuggestion 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 AgentCoachingSuggestion message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AgentCoachingSuggestion
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.AgentCoachingSuggestion;

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

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

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

                namespace AgentCoachingSuggestion {

                    /** Properties of a Sources. */
                    interface ISources {

                        /** Sources instructionIndexes */
                        instructionIndexes?: (number[]|null);
                    }

                    /** Represents a Sources. */
                    class Sources implements ISources {

                        /**
                         * Constructs a new Sources.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2.AgentCoachingSuggestion.ISources);

                        /** Sources instructionIndexes. */
                        public instructionIndexes: number[];

                        /**
                         * Creates a new Sources instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns Sources instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2.AgentCoachingSuggestion.ISources): google.cloud.dialogflow.v2.AgentCoachingSuggestion.Sources;

                        /**
                         * Encodes the specified Sources message. Does not implicitly {@link google.cloud.dialogflow.v2.AgentCoachingSuggestion.Sources.verify|verify} messages.
                         * @param message Sources message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2.AgentCoachingSuggestion.ISources, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified Sources message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.AgentCoachingSuggestion.Sources.verify|verify} messages.
                         * @param message Sources message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2.AgentCoachingSuggestion.ISources, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a Sources message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns Sources
                         * @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.cloud.dialogflow.v2.AgentCoachingSuggestion.Sources;

                        /**
                         * Decodes a Sources message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns Sources
                         * @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.cloud.dialogflow.v2.AgentCoachingSuggestion.Sources;

                        /**
                         * Verifies a Sources 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 Sources message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns Sources
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.AgentCoachingSuggestion.Sources;

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

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

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

                    /** Properties of a DuplicateCheckResult. */
                    interface IDuplicateCheckResult {

                        /** DuplicateCheckResult duplicateSuggestions */
                        duplicateSuggestions?: (google.cloud.dialogflow.v2.AgentCoachingSuggestion.DuplicateCheckResult.IDuplicateSuggestion[]|null);
                    }

                    /** Represents a DuplicateCheckResult. */
                    class DuplicateCheckResult implements IDuplicateCheckResult {

                        /**
                         * Constructs a new DuplicateCheckResult.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2.AgentCoachingSuggestion.IDuplicateCheckResult);

                        /** DuplicateCheckResult duplicateSuggestions. */
                        public duplicateSuggestions: google.cloud.dialogflow.v2.AgentCoachingSuggestion.DuplicateCheckResult.IDuplicateSuggestion[];

                        /**
                         * Creates a new DuplicateCheckResult instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns DuplicateCheckResult instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2.AgentCoachingSuggestion.IDuplicateCheckResult): google.cloud.dialogflow.v2.AgentCoachingSuggestion.DuplicateCheckResult;

                        /**
                         * Encodes the specified DuplicateCheckResult message. Does not implicitly {@link google.cloud.dialogflow.v2.AgentCoachingSuggestion.DuplicateCheckResult.verify|verify} messages.
                         * @param message DuplicateCheckResult message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2.AgentCoachingSuggestion.IDuplicateCheckResult, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified DuplicateCheckResult message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.AgentCoachingSuggestion.DuplicateCheckResult.verify|verify} messages.
                         * @param message DuplicateCheckResult message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2.AgentCoachingSuggestion.IDuplicateCheckResult, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a DuplicateCheckResult message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns DuplicateCheckResult
                         * @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.cloud.dialogflow.v2.AgentCoachingSuggestion.DuplicateCheckResult;

                        /**
                         * Decodes a DuplicateCheckResult message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns DuplicateCheckResult
                         * @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.cloud.dialogflow.v2.AgentCoachingSuggestion.DuplicateCheckResult;

                        /**
                         * Verifies a DuplicateCheckResult 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 DuplicateCheckResult message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns DuplicateCheckResult
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.AgentCoachingSuggestion.DuplicateCheckResult;

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

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

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

                    namespace DuplicateCheckResult {

                        /** Properties of a DuplicateSuggestion. */
                        interface IDuplicateSuggestion {

                            /** DuplicateSuggestion answerRecord */
                            answerRecord?: (string|null);

                            /** DuplicateSuggestion sources */
                            sources?: (google.cloud.dialogflow.v2.AgentCoachingSuggestion.ISources|null);

                            /** DuplicateSuggestion suggestionIndex */
                            suggestionIndex?: (number|null);

                            /** DuplicateSuggestion similarityScore */
                            similarityScore?: (number|null);
                        }

                        /** Represents a DuplicateSuggestion. */
                        class DuplicateSuggestion implements IDuplicateSuggestion {

                            /**
                             * Constructs a new DuplicateSuggestion.
                             * @param [properties] Properties to set
                             */
                            constructor(properties?: google.cloud.dialogflow.v2.AgentCoachingSuggestion.DuplicateCheckResult.IDuplicateSuggestion);

                            /** DuplicateSuggestion answerRecord. */
                            public answerRecord: string;

                            /** DuplicateSuggestion sources. */
                            public sources?: (google.cloud.dialogflow.v2.AgentCoachingSuggestion.ISources|null);

                            /** DuplicateSuggestion suggestionIndex. */
                            public suggestionIndex: number;

                            /** DuplicateSuggestion similarityScore. */
                            public similarityScore: number;

                            /**
                             * Creates a new DuplicateSuggestion instance using the specified properties.
                             * @param [properties] Properties to set
                             * @returns DuplicateSuggestion instance
                             */
                            public static create(properties?: google.cloud.dialogflow.v2.AgentCoachingSuggestion.DuplicateCheckResult.IDuplicateSuggestion): google.cloud.dialogflow.v2.AgentCoachingSuggestion.DuplicateCheckResult.DuplicateSuggestion;

                            /**
                             * Encodes the specified DuplicateSuggestion message. Does not implicitly {@link google.cloud.dialogflow.v2.AgentCoachingSuggestion.DuplicateCheckResult.DuplicateSuggestion.verify|verify} messages.
                             * @param message DuplicateSuggestion message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encode(message: google.cloud.dialogflow.v2.AgentCoachingSuggestion.DuplicateCheckResult.IDuplicateSuggestion, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Encodes the specified DuplicateSuggestion message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.AgentCoachingSuggestion.DuplicateCheckResult.DuplicateSuggestion.verify|verify} messages.
                             * @param message DuplicateSuggestion message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encodeDelimited(message: google.cloud.dialogflow.v2.AgentCoachingSuggestion.DuplicateCheckResult.IDuplicateSuggestion, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Decodes a DuplicateSuggestion message from the specified reader or buffer.
                             * @param reader Reader or buffer to decode from
                             * @param [length] Message length if known beforehand
                             * @returns DuplicateSuggestion
                             * @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.cloud.dialogflow.v2.AgentCoachingSuggestion.DuplicateCheckResult.DuplicateSuggestion;

                            /**
                             * Decodes a DuplicateSuggestion message from the specified reader or buffer, length delimited.
                             * @param reader Reader or buffer to decode from
                             * @returns DuplicateSuggestion
                             * @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.cloud.dialogflow.v2.AgentCoachingSuggestion.DuplicateCheckResult.DuplicateSuggestion;

                            /**
                             * Verifies a DuplicateSuggestion 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 DuplicateSuggestion message from a plain object. Also converts values to their respective internal types.
                             * @param object Plain object
                             * @returns DuplicateSuggestion
                             */
                            public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.AgentCoachingSuggestion.DuplicateCheckResult.DuplicateSuggestion;

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

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

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

                    /** Properties of an AgentActionSuggestion. */
                    interface IAgentActionSuggestion {

                        /** AgentActionSuggestion agentAction */
                        agentAction?: (string|null);

                        /** AgentActionSuggestion sources */
                        sources?: (google.cloud.dialogflow.v2.AgentCoachingSuggestion.ISources|null);

                        /** AgentActionSuggestion duplicateCheckResult */
                        duplicateCheckResult?: (google.cloud.dialogflow.v2.AgentCoachingSuggestion.IDuplicateCheckResult|null);
                    }

                    /** Represents an AgentActionSuggestion. */
                    class AgentActionSuggestion implements IAgentActionSuggestion {

                        /**
                         * Constructs a new AgentActionSuggestion.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2.AgentCoachingSuggestion.IAgentActionSuggestion);

                        /** AgentActionSuggestion agentAction. */
                        public agentAction: string;

                        /** AgentActionSuggestion sources. */
                        public sources?: (google.cloud.dialogflow.v2.AgentCoachingSuggestion.ISources|null);

                        /** AgentActionSuggestion duplicateCheckResult. */
                        public duplicateCheckResult?: (google.cloud.dialogflow.v2.AgentCoachingSuggestion.IDuplicateCheckResult|null);

                        /**
                         * Creates a new AgentActionSuggestion instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns AgentActionSuggestion instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2.AgentCoachingSuggestion.IAgentActionSuggestion): google.cloud.dialogflow.v2.AgentCoachingSuggestion.AgentActionSuggestion;

                        /**
                         * Encodes the specified AgentActionSuggestion message. Does not implicitly {@link google.cloud.dialogflow.v2.AgentCoachingSuggestion.AgentActionSuggestion.verify|verify} messages.
                         * @param message AgentActionSuggestion message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2.AgentCoachingSuggestion.IAgentActionSuggestion, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified AgentActionSuggestion message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.AgentCoachingSuggestion.AgentActionSuggestion.verify|verify} messages.
                         * @param message AgentActionSuggestion message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2.AgentCoachingSuggestion.IAgentActionSuggestion, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes an AgentActionSuggestion message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns AgentActionSuggestion
                         * @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.cloud.dialogflow.v2.AgentCoachingSuggestion.AgentActionSuggestion;

                        /**
                         * Decodes an AgentActionSuggestion message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns AgentActionSuggestion
                         * @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.cloud.dialogflow.v2.AgentCoachingSuggestion.AgentActionSuggestion;

                        /**
                         * Verifies an AgentActionSuggestion 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 AgentActionSuggestion message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns AgentActionSuggestion
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.AgentCoachingSuggestion.AgentActionSuggestion;

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

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

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

                    /** Properties of a SampleResponse. */
                    interface ISampleResponse {

                        /** SampleResponse responseText */
                        responseText?: (string|null);

                        /** SampleResponse sources */
                        sources?: (google.cloud.dialogflow.v2.AgentCoachingSuggestion.ISources|null);

                        /** SampleResponse duplicateCheckResult */
                        duplicateCheckResult?: (google.cloud.dialogflow.v2.AgentCoachingSuggestion.IDuplicateCheckResult|null);
                    }

                    /** Represents a SampleResponse. */
                    class SampleResponse implements ISampleResponse {

                        /**
                         * Constructs a new SampleResponse.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2.AgentCoachingSuggestion.ISampleResponse);

                        /** SampleResponse responseText. */
                        public responseText: string;

                        /** SampleResponse sources. */
                        public sources?: (google.cloud.dialogflow.v2.AgentCoachingSuggestion.ISources|null);

                        /** SampleResponse duplicateCheckResult. */
                        public duplicateCheckResult?: (google.cloud.dialogflow.v2.AgentCoachingSuggestion.IDuplicateCheckResult|null);

                        /**
                         * Creates a new SampleResponse instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns SampleResponse instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2.AgentCoachingSuggestion.ISampleResponse): google.cloud.dialogflow.v2.AgentCoachingSuggestion.SampleResponse;

                        /**
                         * Encodes the specified SampleResponse message. Does not implicitly {@link google.cloud.dialogflow.v2.AgentCoachingSuggestion.SampleResponse.verify|verify} messages.
                         * @param message SampleResponse message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2.AgentCoachingSuggestion.ISampleResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified SampleResponse message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.AgentCoachingSuggestion.SampleResponse.verify|verify} messages.
                         * @param message SampleResponse message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2.AgentCoachingSuggestion.ISampleResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a SampleResponse message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns SampleResponse
                         * @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.cloud.dialogflow.v2.AgentCoachingSuggestion.SampleResponse;

                        /**
                         * Decodes a SampleResponse message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns SampleResponse
                         * @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.cloud.dialogflow.v2.AgentCoachingSuggestion.SampleResponse;

                        /**
                         * Verifies a SampleResponse 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 SampleResponse message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns SampleResponse
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.AgentCoachingSuggestion.SampleResponse;

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

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

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

                /** Properties of a GeneratorSuggestion. */
                interface IGeneratorSuggestion {

                    /** GeneratorSuggestion freeFormSuggestion */
                    freeFormSuggestion?: (google.cloud.dialogflow.v2.IFreeFormSuggestion|null);

                    /** GeneratorSuggestion summarySuggestion */
                    summarySuggestion?: (google.cloud.dialogflow.v2.ISummarySuggestion|null);

                    /** GeneratorSuggestion agentCoachingSuggestion */
                    agentCoachingSuggestion?: (google.cloud.dialogflow.v2.IAgentCoachingSuggestion|null);

                    /** GeneratorSuggestion toolCallInfo */
                    toolCallInfo?: (google.cloud.dialogflow.v2.GeneratorSuggestion.IToolCallInfo[]|null);
                }

                /** Represents a GeneratorSuggestion. */
                class GeneratorSuggestion implements IGeneratorSuggestion {

                    /**
                     * Constructs a new GeneratorSuggestion.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IGeneratorSuggestion);

                    /** GeneratorSuggestion freeFormSuggestion. */
                    public freeFormSuggestion?: (google.cloud.dialogflow.v2.IFreeFormSuggestion|null);

                    /** GeneratorSuggestion summarySuggestion. */
                    public summarySuggestion?: (google.cloud.dialogflow.v2.ISummarySuggestion|null);

                    /** GeneratorSuggestion agentCoachingSuggestion. */
                    public agentCoachingSuggestion?: (google.cloud.dialogflow.v2.IAgentCoachingSuggestion|null);

                    /** GeneratorSuggestion toolCallInfo. */
                    public toolCallInfo: google.cloud.dialogflow.v2.GeneratorSuggestion.IToolCallInfo[];

                    /** GeneratorSuggestion suggestion. */
                    public suggestion?: ("freeFormSuggestion"|"summarySuggestion"|"agentCoachingSuggestion");

                    /**
                     * Creates a new GeneratorSuggestion instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GeneratorSuggestion instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IGeneratorSuggestion): google.cloud.dialogflow.v2.GeneratorSuggestion;

                    /**
                     * Encodes the specified GeneratorSuggestion message. Does not implicitly {@link google.cloud.dialogflow.v2.GeneratorSuggestion.verify|verify} messages.
                     * @param message GeneratorSuggestion message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IGeneratorSuggestion, writer?: $protobuf.Writer): $protobuf.Writer;

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

                    /**
                     * Decodes a GeneratorSuggestion message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GeneratorSuggestion
                     * @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.cloud.dialogflow.v2.GeneratorSuggestion;

                    /**
                     * Decodes a GeneratorSuggestion message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GeneratorSuggestion
                     * @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.cloud.dialogflow.v2.GeneratorSuggestion;

                    /**
                     * Verifies a GeneratorSuggestion 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 GeneratorSuggestion message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GeneratorSuggestion
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.GeneratorSuggestion;

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

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

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

                namespace GeneratorSuggestion {

                    /** Properties of a ToolCallInfo. */
                    interface IToolCallInfo {

                        /** ToolCallInfo toolCall */
                        toolCall?: (google.cloud.dialogflow.v2.IToolCall|null);

                        /** ToolCallInfo toolCallResult */
                        toolCallResult?: (google.cloud.dialogflow.v2.IToolCallResult|null);
                    }

                    /** Represents a ToolCallInfo. */
                    class ToolCallInfo implements IToolCallInfo {

                        /**
                         * Constructs a new ToolCallInfo.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2.GeneratorSuggestion.IToolCallInfo);

                        /** ToolCallInfo toolCall. */
                        public toolCall?: (google.cloud.dialogflow.v2.IToolCall|null);

                        /** ToolCallInfo toolCallResult. */
                        public toolCallResult?: (google.cloud.dialogflow.v2.IToolCallResult|null);

                        /**
                         * Creates a new ToolCallInfo instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns ToolCallInfo instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2.GeneratorSuggestion.IToolCallInfo): google.cloud.dialogflow.v2.GeneratorSuggestion.ToolCallInfo;

                        /**
                         * Encodes the specified ToolCallInfo message. Does not implicitly {@link google.cloud.dialogflow.v2.GeneratorSuggestion.ToolCallInfo.verify|verify} messages.
                         * @param message ToolCallInfo message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2.GeneratorSuggestion.IToolCallInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified ToolCallInfo message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.GeneratorSuggestion.ToolCallInfo.verify|verify} messages.
                         * @param message ToolCallInfo message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2.GeneratorSuggestion.IToolCallInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a ToolCallInfo message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns ToolCallInfo
                         * @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.cloud.dialogflow.v2.GeneratorSuggestion.ToolCallInfo;

                        /**
                         * Decodes a ToolCallInfo message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns ToolCallInfo
                         * @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.cloud.dialogflow.v2.GeneratorSuggestion.ToolCallInfo;

                        /**
                         * Verifies a ToolCallInfo 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 ToolCallInfo message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns ToolCallInfo
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.GeneratorSuggestion.ToolCallInfo;

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

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

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

                /** Properties of a SuggestionDedupingConfig. */
                interface ISuggestionDedupingConfig {

                    /** SuggestionDedupingConfig enableDeduping */
                    enableDeduping?: (boolean|null);

                    /** SuggestionDedupingConfig similarityThreshold */
                    similarityThreshold?: (number|null);
                }

                /** Represents a SuggestionDedupingConfig. */
                class SuggestionDedupingConfig implements ISuggestionDedupingConfig {

                    /**
                     * Constructs a new SuggestionDedupingConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.ISuggestionDedupingConfig);

                    /** SuggestionDedupingConfig enableDeduping. */
                    public enableDeduping: boolean;

                    /** SuggestionDedupingConfig similarityThreshold. */
                    public similarityThreshold: number;

                    /**
                     * Creates a new SuggestionDedupingConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SuggestionDedupingConfig instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.ISuggestionDedupingConfig): google.cloud.dialogflow.v2.SuggestionDedupingConfig;

                    /**
                     * Encodes the specified SuggestionDedupingConfig message. Does not implicitly {@link google.cloud.dialogflow.v2.SuggestionDedupingConfig.verify|verify} messages.
                     * @param message SuggestionDedupingConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.ISuggestionDedupingConfig, writer?: $protobuf.Writer): $protobuf.Writer;

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

                    /**
                     * Decodes a SuggestionDedupingConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SuggestionDedupingConfig
                     * @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.cloud.dialogflow.v2.SuggestionDedupingConfig;

                    /**
                     * Decodes a SuggestionDedupingConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SuggestionDedupingConfig
                     * @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.cloud.dialogflow.v2.SuggestionDedupingConfig;

                    /**
                     * Verifies a SuggestionDedupingConfig 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 SuggestionDedupingConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SuggestionDedupingConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.SuggestionDedupingConfig;

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

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

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

                /** Properties of a RaiSettings. */
                interface IRaiSettings {

                    /** RaiSettings raiCategoryConfigs */
                    raiCategoryConfigs?: (google.cloud.dialogflow.v2.RaiSettings.IRaiCategoryConfig[]|null);
                }

                /** Represents a RaiSettings. */
                class RaiSettings implements IRaiSettings {

                    /**
                     * Constructs a new RaiSettings.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IRaiSettings);

                    /** RaiSettings raiCategoryConfigs. */
                    public raiCategoryConfigs: google.cloud.dialogflow.v2.RaiSettings.IRaiCategoryConfig[];

                    /**
                     * Creates a new RaiSettings instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RaiSettings instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IRaiSettings): google.cloud.dialogflow.v2.RaiSettings;

                    /**
                     * Encodes the specified RaiSettings message. Does not implicitly {@link google.cloud.dialogflow.v2.RaiSettings.verify|verify} messages.
                     * @param message RaiSettings message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IRaiSettings, writer?: $protobuf.Writer): $protobuf.Writer;

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

                    /**
                     * Decodes a RaiSettings message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RaiSettings
                     * @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.cloud.dialogflow.v2.RaiSettings;

                    /**
                     * Decodes a RaiSettings message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RaiSettings
                     * @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.cloud.dialogflow.v2.RaiSettings;

                    /**
                     * Verifies a RaiSettings 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 RaiSettings message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RaiSettings
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.RaiSettings;

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

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

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

                namespace RaiSettings {

                    /** Properties of a RaiCategoryConfig. */
                    interface IRaiCategoryConfig {

                        /** RaiCategoryConfig category */
                        category?: (google.cloud.dialogflow.v2.RaiSettings.RaiCategoryConfig.RaiCategory|keyof typeof google.cloud.dialogflow.v2.RaiSettings.RaiCategoryConfig.RaiCategory|null);

                        /** RaiCategoryConfig sensitivityLevel */
                        sensitivityLevel?: (google.cloud.dialogflow.v2.RaiSettings.RaiCategoryConfig.SensitivityLevel|keyof typeof google.cloud.dialogflow.v2.RaiSettings.RaiCategoryConfig.SensitivityLevel|null);
                    }

                    /** Represents a RaiCategoryConfig. */
                    class RaiCategoryConfig implements IRaiCategoryConfig {

                        /**
                         * Constructs a new RaiCategoryConfig.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2.RaiSettings.IRaiCategoryConfig);

                        /** RaiCategoryConfig category. */
                        public category: (google.cloud.dialogflow.v2.RaiSettings.RaiCategoryConfig.RaiCategory|keyof typeof google.cloud.dialogflow.v2.RaiSettings.RaiCategoryConfig.RaiCategory);

                        /** RaiCategoryConfig sensitivityLevel. */
                        public sensitivityLevel: (google.cloud.dialogflow.v2.RaiSettings.RaiCategoryConfig.SensitivityLevel|keyof typeof google.cloud.dialogflow.v2.RaiSettings.RaiCategoryConfig.SensitivityLevel);

                        /**
                         * Creates a new RaiCategoryConfig instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns RaiCategoryConfig instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2.RaiSettings.IRaiCategoryConfig): google.cloud.dialogflow.v2.RaiSettings.RaiCategoryConfig;

                        /**
                         * Encodes the specified RaiCategoryConfig message. Does not implicitly {@link google.cloud.dialogflow.v2.RaiSettings.RaiCategoryConfig.verify|verify} messages.
                         * @param message RaiCategoryConfig message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2.RaiSettings.IRaiCategoryConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified RaiCategoryConfig message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.RaiSettings.RaiCategoryConfig.verify|verify} messages.
                         * @param message RaiCategoryConfig message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2.RaiSettings.IRaiCategoryConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a RaiCategoryConfig message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns RaiCategoryConfig
                         * @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.cloud.dialogflow.v2.RaiSettings.RaiCategoryConfig;

                        /**
                         * Decodes a RaiCategoryConfig message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns RaiCategoryConfig
                         * @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.cloud.dialogflow.v2.RaiSettings.RaiCategoryConfig;

                        /**
                         * Verifies a RaiCategoryConfig 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 RaiCategoryConfig message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns RaiCategoryConfig
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.RaiSettings.RaiCategoryConfig;

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

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

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

                    namespace RaiCategoryConfig {

                        /** RaiCategory enum. */
                        enum RaiCategory {
                            RAI_CATEGORY_UNSPECIFIED = 0,
                            DANGEROUS_CONTENT = 1,
                            SEXUALLY_EXPLICIT = 2,
                            HARASSMENT = 3,
                            HATE_SPEECH = 4
                        }

                        /** SensitivityLevel enum. */
                        enum SensitivityLevel {
                            SENSITIVITY_LEVEL_UNSPECIFIED = 0,
                            BLOCK_MOST = 1,
                            BLOCK_SOME = 2,
                            BLOCK_FEW = 3,
                            BLOCK_NONE = 4
                        }
                    }
                }

                /** TriggerEvent enum. */
                enum TriggerEvent {
                    TRIGGER_EVENT_UNSPECIFIED = 0,
                    END_OF_UTTERANCE = 1,
                    MANUAL_CALL = 2,
                    CUSTOMER_MESSAGE = 3,
                    AGENT_MESSAGE = 4
                }

                /** Properties of a CesAppSpec. */
                interface ICesAppSpec {

                    /** CesAppSpec cesApp */
                    cesApp?: (string|null);

                    /** CesAppSpec confirmationRequirement */
                    confirmationRequirement?: (google.cloud.dialogflow.v2.Tool.ConfirmationRequirement|keyof typeof google.cloud.dialogflow.v2.Tool.ConfirmationRequirement|null);
                }

                /** Represents a CesAppSpec. */
                class CesAppSpec implements ICesAppSpec {

                    /**
                     * Constructs a new CesAppSpec.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.ICesAppSpec);

                    /** CesAppSpec cesApp. */
                    public cesApp: string;

                    /** CesAppSpec confirmationRequirement. */
                    public confirmationRequirement: (google.cloud.dialogflow.v2.Tool.ConfirmationRequirement|keyof typeof google.cloud.dialogflow.v2.Tool.ConfirmationRequirement);

                    /**
                     * Creates a new CesAppSpec instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CesAppSpec instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.ICesAppSpec): google.cloud.dialogflow.v2.CesAppSpec;

                    /**
                     * Encodes the specified CesAppSpec message. Does not implicitly {@link google.cloud.dialogflow.v2.CesAppSpec.verify|verify} messages.
                     * @param message CesAppSpec message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.ICesAppSpec, writer?: $protobuf.Writer): $protobuf.Writer;

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

                    /**
                     * Decodes a CesAppSpec message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CesAppSpec
                     * @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.cloud.dialogflow.v2.CesAppSpec;

                    /**
                     * Decodes a CesAppSpec message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CesAppSpec
                     * @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.cloud.dialogflow.v2.CesAppSpec;

                    /**
                     * Verifies a CesAppSpec 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 CesAppSpec message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CesAppSpec
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.CesAppSpec;

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

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

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

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

                    /**
                     * Constructs a new Tools 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 Tools 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): Tools;

                    /**
                     * Calls CreateTool.
                     * @param request CreateToolRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Tool
                     */
                    public createTool(request: google.cloud.dialogflow.v2.ICreateToolRequest, callback: google.cloud.dialogflow.v2.Tools.CreateToolCallback): void;

                    /**
                     * Calls CreateTool.
                     * @param request CreateToolRequest message or plain object
                     * @returns Promise
                     */
                    public createTool(request: google.cloud.dialogflow.v2.ICreateToolRequest): Promise<google.cloud.dialogflow.v2.Tool>;

                    /**
                     * Calls GetTool.
                     * @param request GetToolRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Tool
                     */
                    public getTool(request: google.cloud.dialogflow.v2.IGetToolRequest, callback: google.cloud.dialogflow.v2.Tools.GetToolCallback): void;

                    /**
                     * Calls GetTool.
                     * @param request GetToolRequest message or plain object
                     * @returns Promise
                     */
                    public getTool(request: google.cloud.dialogflow.v2.IGetToolRequest): Promise<google.cloud.dialogflow.v2.Tool>;

                    /**
                     * Calls ListTools.
                     * @param request ListToolsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ListToolsResponse
                     */
                    public listTools(request: google.cloud.dialogflow.v2.IListToolsRequest, callback: google.cloud.dialogflow.v2.Tools.ListToolsCallback): void;

                    /**
                     * Calls ListTools.
                     * @param request ListToolsRequest message or plain object
                     * @returns Promise
                     */
                    public listTools(request: google.cloud.dialogflow.v2.IListToolsRequest): Promise<google.cloud.dialogflow.v2.ListToolsResponse>;

                    /**
                     * Calls DeleteTool.
                     * @param request DeleteToolRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Empty
                     */
                    public deleteTool(request: google.cloud.dialogflow.v2.IDeleteToolRequest, callback: google.cloud.dialogflow.v2.Tools.DeleteToolCallback): void;

                    /**
                     * Calls DeleteTool.
                     * @param request DeleteToolRequest message or plain object
                     * @returns Promise
                     */
                    public deleteTool(request: google.cloud.dialogflow.v2.IDeleteToolRequest): Promise<google.protobuf.Empty>;

                    /**
                     * Calls UpdateTool.
                     * @param request UpdateToolRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Tool
                     */
                    public updateTool(request: google.cloud.dialogflow.v2.IUpdateToolRequest, callback: google.cloud.dialogflow.v2.Tools.UpdateToolCallback): void;

                    /**
                     * Calls UpdateTool.
                     * @param request UpdateToolRequest message or plain object
                     * @returns Promise
                     */
                    public updateTool(request: google.cloud.dialogflow.v2.IUpdateToolRequest): Promise<google.cloud.dialogflow.v2.Tool>;
                }

                namespace Tools {

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2.Tools|createTool}.
                     * @param error Error, if any
                     * @param [response] Tool
                     */
                    type CreateToolCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2.Tool) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2.Tools|getTool}.
                     * @param error Error, if any
                     * @param [response] Tool
                     */
                    type GetToolCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2.Tool) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2.Tools|listTools}.
                     * @param error Error, if any
                     * @param [response] ListToolsResponse
                     */
                    type ListToolsCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2.ListToolsResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2.Tools|deleteTool}.
                     * @param error Error, if any
                     * @param [response] Empty
                     */
                    type DeleteToolCallback = (error: (Error|null), response?: google.protobuf.Empty) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2.Tools|updateTool}.
                     * @param error Error, if any
                     * @param [response] Tool
                     */
                    type UpdateToolCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2.Tool) => void;
                }

                /** Properties of a CreateToolRequest. */
                interface ICreateToolRequest {

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

                    /** CreateToolRequest tool */
                    tool?: (google.cloud.dialogflow.v2.ITool|null);

                    /** CreateToolRequest toolId */
                    toolId?: (string|null);
                }

                /** Represents a CreateToolRequest. */
                class CreateToolRequest implements ICreateToolRequest {

                    /**
                     * Constructs a new CreateToolRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.ICreateToolRequest);

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

                    /** CreateToolRequest tool. */
                    public tool?: (google.cloud.dialogflow.v2.ITool|null);

                    /** CreateToolRequest toolId. */
                    public toolId: string;

                    /**
                     * Creates a new CreateToolRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CreateToolRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.ICreateToolRequest): google.cloud.dialogflow.v2.CreateToolRequest;

                    /**
                     * Encodes the specified CreateToolRequest message. Does not implicitly {@link google.cloud.dialogflow.v2.CreateToolRequest.verify|verify} messages.
                     * @param message CreateToolRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.ICreateToolRequest, writer?: $protobuf.Writer): $protobuf.Writer;

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

                    /**
                     * Decodes a CreateToolRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CreateToolRequest
                     * @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.cloud.dialogflow.v2.CreateToolRequest;

                    /**
                     * Decodes a CreateToolRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CreateToolRequest
                     * @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.cloud.dialogflow.v2.CreateToolRequest;

                    /**
                     * Verifies a CreateToolRequest 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 CreateToolRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CreateToolRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.CreateToolRequest;

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

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

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

                /** Properties of a GetToolRequest. */
                interface IGetToolRequest {

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

                /** Represents a GetToolRequest. */
                class GetToolRequest implements IGetToolRequest {

                    /**
                     * Constructs a new GetToolRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IGetToolRequest);

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

                    /**
                     * Creates a new GetToolRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetToolRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IGetToolRequest): google.cloud.dialogflow.v2.GetToolRequest;

                    /**
                     * Encodes the specified GetToolRequest message. Does not implicitly {@link google.cloud.dialogflow.v2.GetToolRequest.verify|verify} messages.
                     * @param message GetToolRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IGetToolRequest, writer?: $protobuf.Writer): $protobuf.Writer;

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

                    /**
                     * Decodes a GetToolRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetToolRequest
                     * @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.cloud.dialogflow.v2.GetToolRequest;

                    /**
                     * Decodes a GetToolRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetToolRequest
                     * @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.cloud.dialogflow.v2.GetToolRequest;

                    /**
                     * Verifies a GetToolRequest 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 GetToolRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetToolRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.GetToolRequest;

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

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

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

                /** Properties of a ListToolsRequest. */
                interface IListToolsRequest {

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

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

                    /** ListToolsRequest pageToken */
                    pageToken?: (string|null);
                }

                /** Represents a ListToolsRequest. */
                class ListToolsRequest implements IListToolsRequest {

                    /**
                     * Constructs a new ListToolsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IListToolsRequest);

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

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

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

                    /**
                     * Creates a new ListToolsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListToolsRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IListToolsRequest): google.cloud.dialogflow.v2.ListToolsRequest;

                    /**
                     * Encodes the specified ListToolsRequest message. Does not implicitly {@link google.cloud.dialogflow.v2.ListToolsRequest.verify|verify} messages.
                     * @param message ListToolsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IListToolsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

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

                    /**
                     * Decodes a ListToolsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListToolsRequest
                     * @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.cloud.dialogflow.v2.ListToolsRequest;

                    /**
                     * Decodes a ListToolsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListToolsRequest
                     * @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.cloud.dialogflow.v2.ListToolsRequest;

                    /**
                     * Verifies a ListToolsRequest 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 ListToolsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListToolsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.ListToolsRequest;

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

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

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

                /** Properties of a ListToolsResponse. */
                interface IListToolsResponse {

                    /** ListToolsResponse tools */
                    tools?: (google.cloud.dialogflow.v2.ITool[]|null);

                    /** ListToolsResponse nextPageToken */
                    nextPageToken?: (string|null);
                }

                /** Represents a ListToolsResponse. */
                class ListToolsResponse implements IListToolsResponse {

                    /**
                     * Constructs a new ListToolsResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IListToolsResponse);

                    /** ListToolsResponse tools. */
                    public tools: google.cloud.dialogflow.v2.ITool[];

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

                    /**
                     * Creates a new ListToolsResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListToolsResponse instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IListToolsResponse): google.cloud.dialogflow.v2.ListToolsResponse;

                    /**
                     * Encodes the specified ListToolsResponse message. Does not implicitly {@link google.cloud.dialogflow.v2.ListToolsResponse.verify|verify} messages.
                     * @param message ListToolsResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IListToolsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

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

                    /**
                     * Decodes a ListToolsResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListToolsResponse
                     * @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.cloud.dialogflow.v2.ListToolsResponse;

                    /**
                     * Decodes a ListToolsResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListToolsResponse
                     * @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.cloud.dialogflow.v2.ListToolsResponse;

                    /**
                     * Verifies a ListToolsResponse 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 ListToolsResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListToolsResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.ListToolsResponse;

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

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

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

                /** Properties of a DeleteToolRequest. */
                interface IDeleteToolRequest {

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

                /** Represents a DeleteToolRequest. */
                class DeleteToolRequest implements IDeleteToolRequest {

                    /**
                     * Constructs a new DeleteToolRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IDeleteToolRequest);

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

                    /**
                     * Creates a new DeleteToolRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteToolRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IDeleteToolRequest): google.cloud.dialogflow.v2.DeleteToolRequest;

                    /**
                     * Encodes the specified DeleteToolRequest message. Does not implicitly {@link google.cloud.dialogflow.v2.DeleteToolRequest.verify|verify} messages.
                     * @param message DeleteToolRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IDeleteToolRequest, writer?: $protobuf.Writer): $protobuf.Writer;

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

                    /**
                     * Decodes a DeleteToolRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteToolRequest
                     * @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.cloud.dialogflow.v2.DeleteToolRequest;

                    /**
                     * Decodes a DeleteToolRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteToolRequest
                     * @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.cloud.dialogflow.v2.DeleteToolRequest;

                    /**
                     * Verifies a DeleteToolRequest 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 DeleteToolRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteToolRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.DeleteToolRequest;

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

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

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

                /** Properties of an UpdateToolRequest. */
                interface IUpdateToolRequest {

                    /** UpdateToolRequest tool */
                    tool?: (google.cloud.dialogflow.v2.ITool|null);

                    /** UpdateToolRequest updateMask */
                    updateMask?: (google.protobuf.IFieldMask|null);
                }

                /** Represents an UpdateToolRequest. */
                class UpdateToolRequest implements IUpdateToolRequest {

                    /**
                     * Constructs a new UpdateToolRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IUpdateToolRequest);

                    /** UpdateToolRequest tool. */
                    public tool?: (google.cloud.dialogflow.v2.ITool|null);

                    /** UpdateToolRequest updateMask. */
                    public updateMask?: (google.protobuf.IFieldMask|null);

                    /**
                     * Creates a new UpdateToolRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UpdateToolRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IUpdateToolRequest): google.cloud.dialogflow.v2.UpdateToolRequest;

                    /**
                     * Encodes the specified UpdateToolRequest message. Does not implicitly {@link google.cloud.dialogflow.v2.UpdateToolRequest.verify|verify} messages.
                     * @param message UpdateToolRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IUpdateToolRequest, writer?: $protobuf.Writer): $protobuf.Writer;

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

                    /**
                     * Decodes an UpdateToolRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns UpdateToolRequest
                     * @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.cloud.dialogflow.v2.UpdateToolRequest;

                    /**
                     * Decodes an UpdateToolRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns UpdateToolRequest
                     * @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.cloud.dialogflow.v2.UpdateToolRequest;

                    /**
                     * Verifies an UpdateToolRequest 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 UpdateToolRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UpdateToolRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.UpdateToolRequest;

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

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

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

                /** Properties of a Tool. */
                interface ITool {

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

                    /** Tool toolKey */
                    toolKey?: (string|null);

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

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

                    /** Tool actionConfirmationRequirement */
                    actionConfirmationRequirement?: ({ [k: string]: google.cloud.dialogflow.v2.Tool.ConfirmationRequirement }|null);

                    /** Tool extensionSpec */
                    extensionSpec?: (google.cloud.dialogflow.v2.Tool.IExtensionTool|null);

                    /** Tool functionSpec */
                    functionSpec?: (google.cloud.dialogflow.v2.Tool.IFunctionTool|null);

                    /** Tool connectorSpec */
                    connectorSpec?: (google.cloud.dialogflow.v2.Tool.IConnectorTool|null);

                    /** Tool openApiSpec */
                    openApiSpec?: (google.cloud.dialogflow.v2.Tool.IOpenApiTool|null);

                    /** Tool createTime */
                    createTime?: (google.protobuf.ITimestamp|null);

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

                    /** Tool satisfiesPzs */
                    satisfiesPzs?: (boolean|null);

                    /** Tool satisfiesPzi */
                    satisfiesPzi?: (boolean|null);
                }

                /** Represents a Tool. */
                class Tool implements ITool {

                    /**
                     * Constructs a new Tool.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.ITool);

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

                    /** Tool toolKey. */
                    public toolKey: string;

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

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

                    /** Tool actionConfirmationRequirement. */
                    public actionConfirmationRequirement: { [k: string]: google.cloud.dialogflow.v2.Tool.ConfirmationRequirement };

                    /** Tool extensionSpec. */
                    public extensionSpec?: (google.cloud.dialogflow.v2.Tool.IExtensionTool|null);

                    /** Tool functionSpec. */
                    public functionSpec?: (google.cloud.dialogflow.v2.Tool.IFunctionTool|null);

                    /** Tool connectorSpec. */
                    public connectorSpec?: (google.cloud.dialogflow.v2.Tool.IConnectorTool|null);

                    /** Tool openApiSpec. */
                    public openApiSpec?: (google.cloud.dialogflow.v2.Tool.IOpenApiTool|null);

                    /** Tool createTime. */
                    public createTime?: (google.protobuf.ITimestamp|null);

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

                    /** Tool satisfiesPzs. */
                    public satisfiesPzs?: (boolean|null);

                    /** Tool satisfiesPzi. */
                    public satisfiesPzi?: (boolean|null);

                    /** Tool specification. */
                    public specification?: ("extensionSpec"|"functionSpec"|"connectorSpec"|"openApiSpec");

                    /**
                     * Creates a new Tool instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Tool instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.ITool): google.cloud.dialogflow.v2.Tool;

                    /**
                     * Encodes the specified Tool message. Does not implicitly {@link google.cloud.dialogflow.v2.Tool.verify|verify} messages.
                     * @param message Tool message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.ITool, writer?: $protobuf.Writer): $protobuf.Writer;

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

                    /**
                     * Decodes a Tool message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Tool
                     * @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.cloud.dialogflow.v2.Tool;

                    /**
                     * Decodes a Tool message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Tool
                     * @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.cloud.dialogflow.v2.Tool;

                    /**
                     * Verifies a Tool 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 Tool message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Tool
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.Tool;

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

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

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

                namespace Tool {

                    /** ConfirmationRequirement enum. */
                    enum ConfirmationRequirement {
                        CONFIRMATION_REQUIREMENT_UNSPECIFIED = 0,
                        REQUIRED = 1,
                        NOT_REQUIRED = 2
                    }

                    /** MethodType enum. */
                    enum MethodType {
                        METHOD_TYPE_UNSPECIFIED = 0,
                        GET = 1,
                        POST = 2,
                        PUT = 3,
                        DELETE = 4,
                        PATCH = 5
                    }

                    /** Properties of an ExtensionTool. */
                    interface IExtensionTool {

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

                    /** Represents an ExtensionTool. */
                    class ExtensionTool implements IExtensionTool {

                        /**
                         * Constructs a new ExtensionTool.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2.Tool.IExtensionTool);

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

                        /**
                         * Creates a new ExtensionTool instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns ExtensionTool instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2.Tool.IExtensionTool): google.cloud.dialogflow.v2.Tool.ExtensionTool;

                        /**
                         * Encodes the specified ExtensionTool message. Does not implicitly {@link google.cloud.dialogflow.v2.Tool.ExtensionTool.verify|verify} messages.
                         * @param message ExtensionTool message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2.Tool.IExtensionTool, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified ExtensionTool message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.Tool.ExtensionTool.verify|verify} messages.
                         * @param message ExtensionTool message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2.Tool.IExtensionTool, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes an ExtensionTool message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns ExtensionTool
                         * @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.cloud.dialogflow.v2.Tool.ExtensionTool;

                        /**
                         * Decodes an ExtensionTool message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns ExtensionTool
                         * @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.cloud.dialogflow.v2.Tool.ExtensionTool;

                        /**
                         * Verifies an ExtensionTool 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 ExtensionTool message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns ExtensionTool
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.Tool.ExtensionTool;

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

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

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

                    /** Properties of a FunctionTool. */
                    interface IFunctionTool {

                        /** FunctionTool inputSchema */
                        inputSchema?: (google.protobuf.IStruct|null);

                        /** FunctionTool outputSchema */
                        outputSchema?: (google.protobuf.IStruct|null);

                        /** FunctionTool methodType */
                        methodType?: (google.cloud.dialogflow.v2.Tool.MethodType|keyof typeof google.cloud.dialogflow.v2.Tool.MethodType|null);
                    }

                    /** Represents a FunctionTool. */
                    class FunctionTool implements IFunctionTool {

                        /**
                         * Constructs a new FunctionTool.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2.Tool.IFunctionTool);

                        /** FunctionTool inputSchema. */
                        public inputSchema?: (google.protobuf.IStruct|null);

                        /** FunctionTool outputSchema. */
                        public outputSchema?: (google.protobuf.IStruct|null);

                        /** FunctionTool methodType. */
                        public methodType: (google.cloud.dialogflow.v2.Tool.MethodType|keyof typeof google.cloud.dialogflow.v2.Tool.MethodType);

                        /**
                         * Creates a new FunctionTool instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns FunctionTool instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2.Tool.IFunctionTool): google.cloud.dialogflow.v2.Tool.FunctionTool;

                        /**
                         * Encodes the specified FunctionTool message. Does not implicitly {@link google.cloud.dialogflow.v2.Tool.FunctionTool.verify|verify} messages.
                         * @param message FunctionTool message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2.Tool.IFunctionTool, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified FunctionTool message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.Tool.FunctionTool.verify|verify} messages.
                         * @param message FunctionTool message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2.Tool.IFunctionTool, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a FunctionTool message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns FunctionTool
                         * @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.cloud.dialogflow.v2.Tool.FunctionTool;

                        /**
                         * Decodes a FunctionTool message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns FunctionTool
                         * @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.cloud.dialogflow.v2.Tool.FunctionTool;

                        /**
                         * Verifies a FunctionTool 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 FunctionTool message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns FunctionTool
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.Tool.FunctionTool;

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

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

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

                    /** Properties of an OpenApiTool. */
                    interface IOpenApiTool {

                        /** OpenApiTool textSchema */
                        textSchema?: (string|null);

                        /** OpenApiTool authentication */
                        authentication?: (google.cloud.dialogflow.v2.Tool.IAuthentication|null);

                        /** OpenApiTool tlsConfig */
                        tlsConfig?: (google.cloud.dialogflow.v2.Tool.ITLSConfig|null);

                        /** OpenApiTool serviceDirectoryConfig */
                        serviceDirectoryConfig?: (google.cloud.dialogflow.v2.Tool.IServiceDirectoryConfig|null);
                    }

                    /** Represents an OpenApiTool. */
                    class OpenApiTool implements IOpenApiTool {

                        /**
                         * Constructs a new OpenApiTool.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2.Tool.IOpenApiTool);

                        /** OpenApiTool textSchema. */
                        public textSchema?: (string|null);

                        /** OpenApiTool authentication. */
                        public authentication?: (google.cloud.dialogflow.v2.Tool.IAuthentication|null);

                        /** OpenApiTool tlsConfig. */
                        public tlsConfig?: (google.cloud.dialogflow.v2.Tool.ITLSConfig|null);

                        /** OpenApiTool serviceDirectoryConfig. */
                        public serviceDirectoryConfig?: (google.cloud.dialogflow.v2.Tool.IServiceDirectoryConfig|null);

                        /** OpenApiTool schema. */
                        public schema?: "textSchema";

                        /**
                         * Creates a new OpenApiTool instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns OpenApiTool instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2.Tool.IOpenApiTool): google.cloud.dialogflow.v2.Tool.OpenApiTool;

                        /**
                         * Encodes the specified OpenApiTool message. Does not implicitly {@link google.cloud.dialogflow.v2.Tool.OpenApiTool.verify|verify} messages.
                         * @param message OpenApiTool message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2.Tool.IOpenApiTool, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified OpenApiTool message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.Tool.OpenApiTool.verify|verify} messages.
                         * @param message OpenApiTool message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2.Tool.IOpenApiTool, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes an OpenApiTool message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns OpenApiTool
                         * @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.cloud.dialogflow.v2.Tool.OpenApiTool;

                        /**
                         * Decodes an OpenApiTool message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns OpenApiTool
                         * @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.cloud.dialogflow.v2.Tool.OpenApiTool;

                        /**
                         * Verifies an OpenApiTool 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 OpenApiTool message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns OpenApiTool
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.Tool.OpenApiTool;

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

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

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

                    /** Properties of a ConnectorTool. */
                    interface IConnectorTool {

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

                        /** ConnectorTool actions */
                        actions?: (google.cloud.dialogflow.v2.Tool.ConnectorTool.IAction[]|null);
                    }

                    /** Represents a ConnectorTool. */
                    class ConnectorTool implements IConnectorTool {

                        /**
                         * Constructs a new ConnectorTool.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2.Tool.IConnectorTool);

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

                        /** ConnectorTool actions. */
                        public actions: google.cloud.dialogflow.v2.Tool.ConnectorTool.IAction[];

                        /**
                         * Creates a new ConnectorTool instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns ConnectorTool instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2.Tool.IConnectorTool): google.cloud.dialogflow.v2.Tool.ConnectorTool;

                        /**
                         * Encodes the specified ConnectorTool message. Does not implicitly {@link google.cloud.dialogflow.v2.Tool.ConnectorTool.verify|verify} messages.
                         * @param message ConnectorTool message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2.Tool.IConnectorTool, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified ConnectorTool message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.Tool.ConnectorTool.verify|verify} messages.
                         * @param message ConnectorTool message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2.Tool.IConnectorTool, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a ConnectorTool message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns ConnectorTool
                         * @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.cloud.dialogflow.v2.Tool.ConnectorTool;

                        /**
                         * Decodes a ConnectorTool message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns ConnectorTool
                         * @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.cloud.dialogflow.v2.Tool.ConnectorTool;

                        /**
                         * Verifies a ConnectorTool 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 ConnectorTool message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns ConnectorTool
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.Tool.ConnectorTool;

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

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

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

                    namespace ConnectorTool {

                        /** Properties of an Action. */
                        interface IAction {

                            /** Action connectionActionId */
                            connectionActionId?: (string|null);

                            /** Action entityOperation */
                            entityOperation?: (google.cloud.dialogflow.v2.Tool.ConnectorTool.Action.IEntityOperation|null);

                            /** Action inputFields */
                            inputFields?: (string[]|null);

                            /** Action outputFields */
                            outputFields?: (string[]|null);
                        }

                        /** Represents an Action. */
                        class Action implements IAction {

                            /**
                             * Constructs a new Action.
                             * @param [properties] Properties to set
                             */
                            constructor(properties?: google.cloud.dialogflow.v2.Tool.ConnectorTool.IAction);

                            /** Action connectionActionId. */
                            public connectionActionId?: (string|null);

                            /** Action entityOperation. */
                            public entityOperation?: (google.cloud.dialogflow.v2.Tool.ConnectorTool.Action.IEntityOperation|null);

                            /** Action inputFields. */
                            public inputFields: string[];

                            /** Action outputFields. */
                            public outputFields: string[];

                            /** Action actionSpec. */
                            public actionSpec?: ("connectionActionId"|"entityOperation");

                            /**
                             * Creates a new Action instance using the specified properties.
                             * @param [properties] Properties to set
                             * @returns Action instance
                             */
                            public static create(properties?: google.cloud.dialogflow.v2.Tool.ConnectorTool.IAction): google.cloud.dialogflow.v2.Tool.ConnectorTool.Action;

                            /**
                             * Encodes the specified Action message. Does not implicitly {@link google.cloud.dialogflow.v2.Tool.ConnectorTool.Action.verify|verify} messages.
                             * @param message Action message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encode(message: google.cloud.dialogflow.v2.Tool.ConnectorTool.IAction, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Encodes the specified Action message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.Tool.ConnectorTool.Action.verify|verify} messages.
                             * @param message Action message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encodeDelimited(message: google.cloud.dialogflow.v2.Tool.ConnectorTool.IAction, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Decodes an Action message from the specified reader or buffer.
                             * @param reader Reader or buffer to decode from
                             * @param [length] Message length if known beforehand
                             * @returns Action
                             * @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.cloud.dialogflow.v2.Tool.ConnectorTool.Action;

                            /**
                             * Decodes an Action message from the specified reader or buffer, length delimited.
                             * @param reader Reader or buffer to decode from
                             * @returns Action
                             * @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.cloud.dialogflow.v2.Tool.ConnectorTool.Action;

                            /**
                             * Verifies an Action 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 Action message from a plain object. Also converts values to their respective internal types.
                             * @param object Plain object
                             * @returns Action
                             */
                            public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.Tool.ConnectorTool.Action;

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

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

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

                        namespace Action {

                            /** Properties of an EntityOperation. */
                            interface IEntityOperation {

                                /** EntityOperation entityId */
                                entityId?: (string|null);

                                /** EntityOperation operation */
                                operation?: (google.cloud.dialogflow.v2.Tool.ConnectorTool.Action.EntityOperation.OperationType|keyof typeof google.cloud.dialogflow.v2.Tool.ConnectorTool.Action.EntityOperation.OperationType|null);
                            }

                            /** Represents an EntityOperation. */
                            class EntityOperation implements IEntityOperation {

                                /**
                                 * Constructs a new EntityOperation.
                                 * @param [properties] Properties to set
                                 */
                                constructor(properties?: google.cloud.dialogflow.v2.Tool.ConnectorTool.Action.IEntityOperation);

                                /** EntityOperation entityId. */
                                public entityId: string;

                                /** EntityOperation operation. */
                                public operation: (google.cloud.dialogflow.v2.Tool.ConnectorTool.Action.EntityOperation.OperationType|keyof typeof google.cloud.dialogflow.v2.Tool.ConnectorTool.Action.EntityOperation.OperationType);

                                /**
                                 * Creates a new EntityOperation instance using the specified properties.
                                 * @param [properties] Properties to set
                                 * @returns EntityOperation instance
                                 */
                                public static create(properties?: google.cloud.dialogflow.v2.Tool.ConnectorTool.Action.IEntityOperation): google.cloud.dialogflow.v2.Tool.ConnectorTool.Action.EntityOperation;

                                /**
                                 * Encodes the specified EntityOperation message. Does not implicitly {@link google.cloud.dialogflow.v2.Tool.ConnectorTool.Action.EntityOperation.verify|verify} messages.
                                 * @param message EntityOperation message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encode(message: google.cloud.dialogflow.v2.Tool.ConnectorTool.Action.IEntityOperation, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Encodes the specified EntityOperation message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.Tool.ConnectorTool.Action.EntityOperation.verify|verify} messages.
                                 * @param message EntityOperation message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encodeDelimited(message: google.cloud.dialogflow.v2.Tool.ConnectorTool.Action.IEntityOperation, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Decodes an EntityOperation message from the specified reader or buffer.
                                 * @param reader Reader or buffer to decode from
                                 * @param [length] Message length if known beforehand
                                 * @returns EntityOperation
                                 * @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.cloud.dialogflow.v2.Tool.ConnectorTool.Action.EntityOperation;

                                /**
                                 * Decodes an EntityOperation message from the specified reader or buffer, length delimited.
                                 * @param reader Reader or buffer to decode from
                                 * @returns EntityOperation
                                 * @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.cloud.dialogflow.v2.Tool.ConnectorTool.Action.EntityOperation;

                                /**
                                 * Verifies an EntityOperation 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 EntityOperation message from a plain object. Also converts values to their respective internal types.
                                 * @param object Plain object
                                 * @returns EntityOperation
                                 */
                                public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.Tool.ConnectorTool.Action.EntityOperation;

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

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

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

                            namespace EntityOperation {

                                /** OperationType enum. */
                                enum OperationType {
                                    OPERATION_TYPE_UNSPECIFIED = 0,
                                    LIST = 1,
                                    GET = 2,
                                    CREATE = 3,
                                    UPDATE = 4,
                                    DELETE = 5
                                }
                            }
                        }
                    }

                    /** Properties of an Authentication. */
                    interface IAuthentication {

                        /** Authentication apiKeyConfig */
                        apiKeyConfig?: (google.cloud.dialogflow.v2.Tool.Authentication.IApiKeyConfig|null);

                        /** Authentication oauthConfig */
                        oauthConfig?: (google.cloud.dialogflow.v2.Tool.Authentication.IOAuthConfig|null);

                        /** Authentication serviceAgentAuthConfig */
                        serviceAgentAuthConfig?: (google.cloud.dialogflow.v2.Tool.Authentication.IServiceAgentAuthConfig|null);

                        /** Authentication bearerTokenConfig */
                        bearerTokenConfig?: (google.cloud.dialogflow.v2.Tool.Authentication.IBearerTokenConfig|null);
                    }

                    /** Represents an Authentication. */
                    class Authentication implements IAuthentication {

                        /**
                         * Constructs a new Authentication.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2.Tool.IAuthentication);

                        /** Authentication apiKeyConfig. */
                        public apiKeyConfig?: (google.cloud.dialogflow.v2.Tool.Authentication.IApiKeyConfig|null);

                        /** Authentication oauthConfig. */
                        public oauthConfig?: (google.cloud.dialogflow.v2.Tool.Authentication.IOAuthConfig|null);

                        /** Authentication serviceAgentAuthConfig. */
                        public serviceAgentAuthConfig?: (google.cloud.dialogflow.v2.Tool.Authentication.IServiceAgentAuthConfig|null);

                        /** Authentication bearerTokenConfig. */
                        public bearerTokenConfig?: (google.cloud.dialogflow.v2.Tool.Authentication.IBearerTokenConfig|null);

                        /** Authentication authConfig. */
                        public authConfig?: ("apiKeyConfig"|"oauthConfig"|"serviceAgentAuthConfig"|"bearerTokenConfig");

                        /**
                         * Creates a new Authentication instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns Authentication instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2.Tool.IAuthentication): google.cloud.dialogflow.v2.Tool.Authentication;

                        /**
                         * Encodes the specified Authentication message. Does not implicitly {@link google.cloud.dialogflow.v2.Tool.Authentication.verify|verify} messages.
                         * @param message Authentication message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2.Tool.IAuthentication, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified Authentication message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.Tool.Authentication.verify|verify} messages.
                         * @param message Authentication message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2.Tool.IAuthentication, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes an Authentication message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns Authentication
                         * @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.cloud.dialogflow.v2.Tool.Authentication;

                        /**
                         * Decodes an Authentication message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns Authentication
                         * @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.cloud.dialogflow.v2.Tool.Authentication;

                        /**
                         * Verifies an Authentication 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 Authentication message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns Authentication
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.Tool.Authentication;

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

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

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

                    namespace Authentication {

                        /** Properties of an ApiKeyConfig. */
                        interface IApiKeyConfig {

                            /** ApiKeyConfig keyName */
                            keyName?: (string|null);

                            /** ApiKeyConfig apiKey */
                            apiKey?: (string|null);

                            /** ApiKeyConfig secretVersionForApiKey */
                            secretVersionForApiKey?: (string|null);

                            /** ApiKeyConfig requestLocation */
                            requestLocation?: (google.cloud.dialogflow.v2.Tool.Authentication.RequestLocation|keyof typeof google.cloud.dialogflow.v2.Tool.Authentication.RequestLocation|null);
                        }

                        /** Represents an ApiKeyConfig. */
                        class ApiKeyConfig implements IApiKeyConfig {

                            /**
                             * Constructs a new ApiKeyConfig.
                             * @param [properties] Properties to set
                             */
                            constructor(properties?: google.cloud.dialogflow.v2.Tool.Authentication.IApiKeyConfig);

                            /** ApiKeyConfig keyName. */
                            public keyName: string;

                            /** ApiKeyConfig apiKey. */
                            public apiKey: string;

                            /** ApiKeyConfig secretVersionForApiKey. */
                            public secretVersionForApiKey: string;

                            /** ApiKeyConfig requestLocation. */
                            public requestLocation: (google.cloud.dialogflow.v2.Tool.Authentication.RequestLocation|keyof typeof google.cloud.dialogflow.v2.Tool.Authentication.RequestLocation);

                            /**
                             * Creates a new ApiKeyConfig instance using the specified properties.
                             * @param [properties] Properties to set
                             * @returns ApiKeyConfig instance
                             */
                            public static create(properties?: google.cloud.dialogflow.v2.Tool.Authentication.IApiKeyConfig): google.cloud.dialogflow.v2.Tool.Authentication.ApiKeyConfig;

                            /**
                             * Encodes the specified ApiKeyConfig message. Does not implicitly {@link google.cloud.dialogflow.v2.Tool.Authentication.ApiKeyConfig.verify|verify} messages.
                             * @param message ApiKeyConfig message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encode(message: google.cloud.dialogflow.v2.Tool.Authentication.IApiKeyConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Encodes the specified ApiKeyConfig message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.Tool.Authentication.ApiKeyConfig.verify|verify} messages.
                             * @param message ApiKeyConfig message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encodeDelimited(message: google.cloud.dialogflow.v2.Tool.Authentication.IApiKeyConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Decodes an ApiKeyConfig message from the specified reader or buffer.
                             * @param reader Reader or buffer to decode from
                             * @param [length] Message length if known beforehand
                             * @returns ApiKeyConfig
                             * @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.cloud.dialogflow.v2.Tool.Authentication.ApiKeyConfig;

                            /**
                             * Decodes an ApiKeyConfig message from the specified reader or buffer, length delimited.
                             * @param reader Reader or buffer to decode from
                             * @returns ApiKeyConfig
                             * @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.cloud.dialogflow.v2.Tool.Authentication.ApiKeyConfig;

                            /**
                             * Verifies an ApiKeyConfig 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 ApiKeyConfig message from a plain object. Also converts values to their respective internal types.
                             * @param object Plain object
                             * @returns ApiKeyConfig
                             */
                            public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.Tool.Authentication.ApiKeyConfig;

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

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

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

                        /** RequestLocation enum. */
                        enum RequestLocation {
                            REQUEST_LOCATION_UNSPECIFIED = 0,
                            HEADER = 1,
                            QUERY_STRING = 2
                        }

                        /** Properties of a OAuthConfig. */
                        interface IOAuthConfig {

                            /** OAuthConfig oauthGrantType */
                            oauthGrantType?: (google.cloud.dialogflow.v2.Tool.Authentication.OAuthConfig.OauthGrantType|keyof typeof google.cloud.dialogflow.v2.Tool.Authentication.OAuthConfig.OauthGrantType|null);

                            /** OAuthConfig clientId */
                            clientId?: (string|null);

                            /** OAuthConfig clientSecret */
                            clientSecret?: (string|null);

                            /** OAuthConfig secretVersionForClientSecret */
                            secretVersionForClientSecret?: (string|null);

                            /** OAuthConfig tokenEndpoint */
                            tokenEndpoint?: (string|null);

                            /** OAuthConfig scopes */
                            scopes?: (string[]|null);
                        }

                        /** Represents a OAuthConfig. */
                        class OAuthConfig implements IOAuthConfig {

                            /**
                             * Constructs a new OAuthConfig.
                             * @param [properties] Properties to set
                             */
                            constructor(properties?: google.cloud.dialogflow.v2.Tool.Authentication.IOAuthConfig);

                            /** OAuthConfig oauthGrantType. */
                            public oauthGrantType: (google.cloud.dialogflow.v2.Tool.Authentication.OAuthConfig.OauthGrantType|keyof typeof google.cloud.dialogflow.v2.Tool.Authentication.OAuthConfig.OauthGrantType);

                            /** OAuthConfig clientId. */
                            public clientId: string;

                            /** OAuthConfig clientSecret. */
                            public clientSecret: string;

                            /** OAuthConfig secretVersionForClientSecret. */
                            public secretVersionForClientSecret: string;

                            /** OAuthConfig tokenEndpoint. */
                            public tokenEndpoint: string;

                            /** OAuthConfig scopes. */
                            public scopes: string[];

                            /**
                             * Creates a new OAuthConfig instance using the specified properties.
                             * @param [properties] Properties to set
                             * @returns OAuthConfig instance
                             */
                            public static create(properties?: google.cloud.dialogflow.v2.Tool.Authentication.IOAuthConfig): google.cloud.dialogflow.v2.Tool.Authentication.OAuthConfig;

                            /**
                             * Encodes the specified OAuthConfig message. Does not implicitly {@link google.cloud.dialogflow.v2.Tool.Authentication.OAuthConfig.verify|verify} messages.
                             * @param message OAuthConfig message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encode(message: google.cloud.dialogflow.v2.Tool.Authentication.IOAuthConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Encodes the specified OAuthConfig message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.Tool.Authentication.OAuthConfig.verify|verify} messages.
                             * @param message OAuthConfig message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encodeDelimited(message: google.cloud.dialogflow.v2.Tool.Authentication.IOAuthConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Decodes a OAuthConfig message from the specified reader or buffer.
                             * @param reader Reader or buffer to decode from
                             * @param [length] Message length if known beforehand
                             * @returns OAuthConfig
                             * @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.cloud.dialogflow.v2.Tool.Authentication.OAuthConfig;

                            /**
                             * Decodes a OAuthConfig message from the specified reader or buffer, length delimited.
                             * @param reader Reader or buffer to decode from
                             * @returns OAuthConfig
                             * @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.cloud.dialogflow.v2.Tool.Authentication.OAuthConfig;

                            /**
                             * Verifies a OAuthConfig 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 OAuthConfig message from a plain object. Also converts values to their respective internal types.
                             * @param object Plain object
                             * @returns OAuthConfig
                             */
                            public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.Tool.Authentication.OAuthConfig;

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

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

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

                        namespace OAuthConfig {

                            /** OauthGrantType enum. */
                            enum OauthGrantType {
                                OAUTH_GRANT_TYPE_UNSPECIFIED = 0,
                                CLIENT_CREDENTIAL = 1
                            }
                        }

                        /** Properties of a ServiceAgentAuthConfig. */
                        interface IServiceAgentAuthConfig {

                            /** ServiceAgentAuthConfig serviceAgentAuth */
                            serviceAgentAuth?: (google.cloud.dialogflow.v2.Tool.Authentication.ServiceAgentAuthConfig.ServiceAgentAuth|keyof typeof google.cloud.dialogflow.v2.Tool.Authentication.ServiceAgentAuthConfig.ServiceAgentAuth|null);
                        }

                        /** Represents a ServiceAgentAuthConfig. */
                        class ServiceAgentAuthConfig implements IServiceAgentAuthConfig {

                            /**
                             * Constructs a new ServiceAgentAuthConfig.
                             * @param [properties] Properties to set
                             */
                            constructor(properties?: google.cloud.dialogflow.v2.Tool.Authentication.IServiceAgentAuthConfig);

                            /** ServiceAgentAuthConfig serviceAgentAuth. */
                            public serviceAgentAuth: (google.cloud.dialogflow.v2.Tool.Authentication.ServiceAgentAuthConfig.ServiceAgentAuth|keyof typeof google.cloud.dialogflow.v2.Tool.Authentication.ServiceAgentAuthConfig.ServiceAgentAuth);

                            /**
                             * Creates a new ServiceAgentAuthConfig instance using the specified properties.
                             * @param [properties] Properties to set
                             * @returns ServiceAgentAuthConfig instance
                             */
                            public static create(properties?: google.cloud.dialogflow.v2.Tool.Authentication.IServiceAgentAuthConfig): google.cloud.dialogflow.v2.Tool.Authentication.ServiceAgentAuthConfig;

                            /**
                             * Encodes the specified ServiceAgentAuthConfig message. Does not implicitly {@link google.cloud.dialogflow.v2.Tool.Authentication.ServiceAgentAuthConfig.verify|verify} messages.
                             * @param message ServiceAgentAuthConfig message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encode(message: google.cloud.dialogflow.v2.Tool.Authentication.IServiceAgentAuthConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Encodes the specified ServiceAgentAuthConfig message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.Tool.Authentication.ServiceAgentAuthConfig.verify|verify} messages.
                             * @param message ServiceAgentAuthConfig message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encodeDelimited(message: google.cloud.dialogflow.v2.Tool.Authentication.IServiceAgentAuthConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Decodes a ServiceAgentAuthConfig message from the specified reader or buffer.
                             * @param reader Reader or buffer to decode from
                             * @param [length] Message length if known beforehand
                             * @returns ServiceAgentAuthConfig
                             * @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.cloud.dialogflow.v2.Tool.Authentication.ServiceAgentAuthConfig;

                            /**
                             * Decodes a ServiceAgentAuthConfig message from the specified reader or buffer, length delimited.
                             * @param reader Reader or buffer to decode from
                             * @returns ServiceAgentAuthConfig
                             * @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.cloud.dialogflow.v2.Tool.Authentication.ServiceAgentAuthConfig;

                            /**
                             * Verifies a ServiceAgentAuthConfig 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 ServiceAgentAuthConfig message from a plain object. Also converts values to their respective internal types.
                             * @param object Plain object
                             * @returns ServiceAgentAuthConfig
                             */
                            public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.Tool.Authentication.ServiceAgentAuthConfig;

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

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

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

                        namespace ServiceAgentAuthConfig {

                            /** ServiceAgentAuth enum. */
                            enum ServiceAgentAuth {
                                SERVICE_AGENT_AUTH_UNSPECIFIED = 0,
                                ID_TOKEN = 1,
                                ACCESS_TOKEN = 2
                            }
                        }

                        /** Properties of a BearerTokenConfig. */
                        interface IBearerTokenConfig {

                            /** BearerTokenConfig token */
                            token?: (string|null);

                            /** BearerTokenConfig secretVersionForToken */
                            secretVersionForToken?: (string|null);
                        }

                        /** Represents a BearerTokenConfig. */
                        class BearerTokenConfig implements IBearerTokenConfig {

                            /**
                             * Constructs a new BearerTokenConfig.
                             * @param [properties] Properties to set
                             */
                            constructor(properties?: google.cloud.dialogflow.v2.Tool.Authentication.IBearerTokenConfig);

                            /** BearerTokenConfig token. */
                            public token: string;

                            /** BearerTokenConfig secretVersionForToken. */
                            public secretVersionForToken: string;

                            /**
                             * Creates a new BearerTokenConfig instance using the specified properties.
                             * @param [properties] Properties to set
                             * @returns BearerTokenConfig instance
                             */
                            public static create(properties?: google.cloud.dialogflow.v2.Tool.Authentication.IBearerTokenConfig): google.cloud.dialogflow.v2.Tool.Authentication.BearerTokenConfig;

                            /**
                             * Encodes the specified BearerTokenConfig message. Does not implicitly {@link google.cloud.dialogflow.v2.Tool.Authentication.BearerTokenConfig.verify|verify} messages.
                             * @param message BearerTokenConfig message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encode(message: google.cloud.dialogflow.v2.Tool.Authentication.IBearerTokenConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Encodes the specified BearerTokenConfig message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.Tool.Authentication.BearerTokenConfig.verify|verify} messages.
                             * @param message BearerTokenConfig message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encodeDelimited(message: google.cloud.dialogflow.v2.Tool.Authentication.IBearerTokenConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Decodes a BearerTokenConfig message from the specified reader or buffer.
                             * @param reader Reader or buffer to decode from
                             * @param [length] Message length if known beforehand
                             * @returns BearerTokenConfig
                             * @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.cloud.dialogflow.v2.Tool.Authentication.BearerTokenConfig;

                            /**
                             * Decodes a BearerTokenConfig message from the specified reader or buffer, length delimited.
                             * @param reader Reader or buffer to decode from
                             * @returns BearerTokenConfig
                             * @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.cloud.dialogflow.v2.Tool.Authentication.BearerTokenConfig;

                            /**
                             * Verifies a BearerTokenConfig 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 BearerTokenConfig message from a plain object. Also converts values to their respective internal types.
                             * @param object Plain object
                             * @returns BearerTokenConfig
                             */
                            public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.Tool.Authentication.BearerTokenConfig;

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

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

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

                    /** Properties of a TLSConfig. */
                    interface ITLSConfig {

                        /** TLSConfig caCerts */
                        caCerts?: (google.cloud.dialogflow.v2.Tool.TLSConfig.ICACert[]|null);
                    }

                    /** Represents a TLSConfig. */
                    class TLSConfig implements ITLSConfig {

                        /**
                         * Constructs a new TLSConfig.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2.Tool.ITLSConfig);

                        /** TLSConfig caCerts. */
                        public caCerts: google.cloud.dialogflow.v2.Tool.TLSConfig.ICACert[];

                        /**
                         * Creates a new TLSConfig instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns TLSConfig instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2.Tool.ITLSConfig): google.cloud.dialogflow.v2.Tool.TLSConfig;

                        /**
                         * Encodes the specified TLSConfig message. Does not implicitly {@link google.cloud.dialogflow.v2.Tool.TLSConfig.verify|verify} messages.
                         * @param message TLSConfig message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2.Tool.ITLSConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified TLSConfig message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.Tool.TLSConfig.verify|verify} messages.
                         * @param message TLSConfig message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2.Tool.ITLSConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a TLSConfig message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns TLSConfig
                         * @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.cloud.dialogflow.v2.Tool.TLSConfig;

                        /**
                         * Decodes a TLSConfig message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns TLSConfig
                         * @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.cloud.dialogflow.v2.Tool.TLSConfig;

                        /**
                         * Verifies a TLSConfig 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 TLSConfig message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns TLSConfig
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.Tool.TLSConfig;

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

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

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

                    namespace TLSConfig {

                        /** Properties of a CACert. */
                        interface ICACert {

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

                            /** CACert cert */
                            cert?: (Uint8Array|Buffer|string|null);
                        }

                        /** Represents a CACert. */
                        class CACert implements ICACert {

                            /**
                             * Constructs a new CACert.
                             * @param [properties] Properties to set
                             */
                            constructor(properties?: google.cloud.dialogflow.v2.Tool.TLSConfig.ICACert);

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

                            /** CACert cert. */
                            public cert: (Uint8Array|Buffer|string);

                            /**
                             * Creates a new CACert instance using the specified properties.
                             * @param [properties] Properties to set
                             * @returns CACert instance
                             */
                            public static create(properties?: google.cloud.dialogflow.v2.Tool.TLSConfig.ICACert): google.cloud.dialogflow.v2.Tool.TLSConfig.CACert;

                            /**
                             * Encodes the specified CACert message. Does not implicitly {@link google.cloud.dialogflow.v2.Tool.TLSConfig.CACert.verify|verify} messages.
                             * @param message CACert message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encode(message: google.cloud.dialogflow.v2.Tool.TLSConfig.ICACert, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Encodes the specified CACert message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.Tool.TLSConfig.CACert.verify|verify} messages.
                             * @param message CACert message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encodeDelimited(message: google.cloud.dialogflow.v2.Tool.TLSConfig.ICACert, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Decodes a CACert message from the specified reader or buffer.
                             * @param reader Reader or buffer to decode from
                             * @param [length] Message length if known beforehand
                             * @returns CACert
                             * @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.cloud.dialogflow.v2.Tool.TLSConfig.CACert;

                            /**
                             * Decodes a CACert message from the specified reader or buffer, length delimited.
                             * @param reader Reader or buffer to decode from
                             * @returns CACert
                             * @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.cloud.dialogflow.v2.Tool.TLSConfig.CACert;

                            /**
                             * Verifies a CACert 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 CACert message from a plain object. Also converts values to their respective internal types.
                             * @param object Plain object
                             * @returns CACert
                             */
                            public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.Tool.TLSConfig.CACert;

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

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

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

                    /** Properties of a ServiceDirectoryConfig. */
                    interface IServiceDirectoryConfig {

                        /** ServiceDirectoryConfig service */
                        service?: (string|null);
                    }

                    /** Represents a ServiceDirectoryConfig. */
                    class ServiceDirectoryConfig implements IServiceDirectoryConfig {

                        /**
                         * Constructs a new ServiceDirectoryConfig.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2.Tool.IServiceDirectoryConfig);

                        /** ServiceDirectoryConfig service. */
                        public service: string;

                        /**
                         * Creates a new ServiceDirectoryConfig instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns ServiceDirectoryConfig instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2.Tool.IServiceDirectoryConfig): google.cloud.dialogflow.v2.Tool.ServiceDirectoryConfig;

                        /**
                         * Encodes the specified ServiceDirectoryConfig message. Does not implicitly {@link google.cloud.dialogflow.v2.Tool.ServiceDirectoryConfig.verify|verify} messages.
                         * @param message ServiceDirectoryConfig message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2.Tool.IServiceDirectoryConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified ServiceDirectoryConfig message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.Tool.ServiceDirectoryConfig.verify|verify} messages.
                         * @param message ServiceDirectoryConfig message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2.Tool.IServiceDirectoryConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a ServiceDirectoryConfig message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns ServiceDirectoryConfig
                         * @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.cloud.dialogflow.v2.Tool.ServiceDirectoryConfig;

                        /**
                         * Decodes a ServiceDirectoryConfig message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns ServiceDirectoryConfig
                         * @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.cloud.dialogflow.v2.Tool.ServiceDirectoryConfig;

                        /**
                         * Verifies a ServiceDirectoryConfig 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 ServiceDirectoryConfig message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns ServiceDirectoryConfig
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.Tool.ServiceDirectoryConfig;

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

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

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

                /** Properties of a CesToolSpec. */
                interface ICesToolSpec {

                    /** CesToolSpec cesTool */
                    cesTool?: (string|null);

                    /** CesToolSpec confirmationRequirement */
                    confirmationRequirement?: (google.cloud.dialogflow.v2.Tool.ConfirmationRequirement|keyof typeof google.cloud.dialogflow.v2.Tool.ConfirmationRequirement|null);
                }

                /** Represents a CesToolSpec. */
                class CesToolSpec implements ICesToolSpec {

                    /**
                     * Constructs a new CesToolSpec.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.ICesToolSpec);

                    /** CesToolSpec cesTool. */
                    public cesTool: string;

                    /** CesToolSpec confirmationRequirement. */
                    public confirmationRequirement: (google.cloud.dialogflow.v2.Tool.ConfirmationRequirement|keyof typeof google.cloud.dialogflow.v2.Tool.ConfirmationRequirement);

                    /**
                     * Creates a new CesToolSpec instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CesToolSpec instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.ICesToolSpec): google.cloud.dialogflow.v2.CesToolSpec;

                    /**
                     * Encodes the specified CesToolSpec message. Does not implicitly {@link google.cloud.dialogflow.v2.CesToolSpec.verify|verify} messages.
                     * @param message CesToolSpec message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.ICesToolSpec, writer?: $protobuf.Writer): $protobuf.Writer;

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

                    /**
                     * Decodes a CesToolSpec message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CesToolSpec
                     * @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.cloud.dialogflow.v2.CesToolSpec;

                    /**
                     * Decodes a CesToolSpec message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CesToolSpec
                     * @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.cloud.dialogflow.v2.CesToolSpec;

                    /**
                     * Verifies a CesToolSpec 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 CesToolSpec message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CesToolSpec
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.CesToolSpec;

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

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

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

                /** Properties of a ToolCall. */
                interface IToolCall {

                    /** ToolCall tool */
                    tool?: (string|null);

                    /** ToolCall cesTool */
                    cesTool?: (string|null);

                    /** ToolCall cesToolset */
                    cesToolset?: (string|null);

                    /** ToolCall cesApp */
                    cesApp?: (string|null);

                    /** ToolCall toolDisplayName */
                    toolDisplayName?: (string|null);

                    /** ToolCall toolDisplayDetails */
                    toolDisplayDetails?: (string|null);

                    /** ToolCall action */
                    action?: (string|null);

                    /** ToolCall inputParameters */
                    inputParameters?: (google.protobuf.IStruct|null);

                    /** ToolCall createTime */
                    createTime?: (google.protobuf.ITimestamp|null);

                    /** ToolCall answerRecord */
                    answerRecord?: (string|null);

                    /** ToolCall state */
                    state?: (google.cloud.dialogflow.v2.ToolCall.State|keyof typeof google.cloud.dialogflow.v2.ToolCall.State|null);
                }

                /** Represents a ToolCall. */
                class ToolCall implements IToolCall {

                    /**
                     * Constructs a new ToolCall.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IToolCall);

                    /** ToolCall tool. */
                    public tool?: (string|null);

                    /** ToolCall cesTool. */
                    public cesTool?: (string|null);

                    /** ToolCall cesToolset. */
                    public cesToolset?: (string|null);

                    /** ToolCall cesApp. */
                    public cesApp?: (string|null);

                    /** ToolCall toolDisplayName. */
                    public toolDisplayName: string;

                    /** ToolCall toolDisplayDetails. */
                    public toolDisplayDetails: string;

                    /** ToolCall action. */
                    public action: string;

                    /** ToolCall inputParameters. */
                    public inputParameters?: (google.protobuf.IStruct|null);

                    /** ToolCall createTime. */
                    public createTime?: (google.protobuf.ITimestamp|null);

                    /** ToolCall answerRecord. */
                    public answerRecord: string;

                    /** ToolCall state. */
                    public state: (google.cloud.dialogflow.v2.ToolCall.State|keyof typeof google.cloud.dialogflow.v2.ToolCall.State);

                    /** ToolCall source. */
                    public source?: ("tool"|"cesTool"|"cesToolset"|"cesApp");

                    /**
                     * Creates a new ToolCall instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ToolCall instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IToolCall): google.cloud.dialogflow.v2.ToolCall;

                    /**
                     * Encodes the specified ToolCall message. Does not implicitly {@link google.cloud.dialogflow.v2.ToolCall.verify|verify} messages.
                     * @param message ToolCall message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IToolCall, writer?: $protobuf.Writer): $protobuf.Writer;

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

                    /**
                     * Decodes a ToolCall message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ToolCall
                     * @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.cloud.dialogflow.v2.ToolCall;

                    /**
                     * Decodes a ToolCall message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ToolCall
                     * @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.cloud.dialogflow.v2.ToolCall;

                    /**
                     * Verifies a ToolCall 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 ToolCall message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ToolCall
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.ToolCall;

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

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

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

                namespace ToolCall {

                    /** State enum. */
                    enum State {
                        STATE_UNSPECIFIED = 0,
                        TRIGGERED = 1,
                        NEEDS_CONFIRMATION = 2
                    }
                }

                /** Properties of a ToolCallResult. */
                interface IToolCallResult {

                    /** ToolCallResult tool */
                    tool?: (string|null);

                    /** ToolCallResult cesToolset */
                    cesToolset?: (string|null);

                    /** ToolCallResult cesTool */
                    cesTool?: (string|null);

                    /** ToolCallResult cesApp */
                    cesApp?: (string|null);

                    /** ToolCallResult action */
                    action?: (string|null);

                    /** ToolCallResult error */
                    error?: (google.cloud.dialogflow.v2.ToolCallResult.IError|null);

                    /** ToolCallResult rawContent */
                    rawContent?: (Uint8Array|Buffer|string|null);

                    /** ToolCallResult content */
                    content?: (string|null);

                    /** ToolCallResult createTime */
                    createTime?: (google.protobuf.ITimestamp|null);

                    /** ToolCallResult answerRecord */
                    answerRecord?: (string|null);
                }

                /** Represents a ToolCallResult. */
                class ToolCallResult implements IToolCallResult {

                    /**
                     * Constructs a new ToolCallResult.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IToolCallResult);

                    /** ToolCallResult tool. */
                    public tool?: (string|null);

                    /** ToolCallResult cesToolset. */
                    public cesToolset?: (string|null);

                    /** ToolCallResult cesTool. */
                    public cesTool?: (string|null);

                    /** ToolCallResult cesApp. */
                    public cesApp?: (string|null);

                    /** ToolCallResult action. */
                    public action: string;

                    /** ToolCallResult error. */
                    public error?: (google.cloud.dialogflow.v2.ToolCallResult.IError|null);

                    /** ToolCallResult rawContent. */
                    public rawContent?: (Uint8Array|Buffer|string|null);

                    /** ToolCallResult content. */
                    public content?: (string|null);

                    /** ToolCallResult createTime. */
                    public createTime?: (google.protobuf.ITimestamp|null);

                    /** ToolCallResult answerRecord. */
                    public answerRecord: string;

                    /** ToolCallResult source. */
                    public source?: ("tool"|"cesToolset"|"cesTool"|"cesApp");

                    /** ToolCallResult result. */
                    public result?: ("error"|"rawContent"|"content");

                    /**
                     * Creates a new ToolCallResult instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ToolCallResult instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IToolCallResult): google.cloud.dialogflow.v2.ToolCallResult;

                    /**
                     * Encodes the specified ToolCallResult message. Does not implicitly {@link google.cloud.dialogflow.v2.ToolCallResult.verify|verify} messages.
                     * @param message ToolCallResult message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IToolCallResult, writer?: $protobuf.Writer): $protobuf.Writer;

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

                    /**
                     * Decodes a ToolCallResult message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ToolCallResult
                     * @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.cloud.dialogflow.v2.ToolCallResult;

                    /**
                     * Decodes a ToolCallResult message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ToolCallResult
                     * @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.cloud.dialogflow.v2.ToolCallResult;

                    /**
                     * Verifies a ToolCallResult 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 ToolCallResult message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ToolCallResult
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.ToolCallResult;

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

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

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

                namespace ToolCallResult {

                    /** Properties of an Error. */
                    interface IError {

                        /** Error message */
                        message?: (string|null);
                    }

                    /** Represents an Error. */
                    class Error implements IError {

                        /**
                         * Constructs a new Error.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2.ToolCallResult.IError);

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

                        /**
                         * Creates a new Error instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns Error instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2.ToolCallResult.IError): google.cloud.dialogflow.v2.ToolCallResult.Error;

                        /**
                         * Encodes the specified Error message. Does not implicitly {@link google.cloud.dialogflow.v2.ToolCallResult.Error.verify|verify} messages.
                         * @param message Error message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2.ToolCallResult.IError, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified Error message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.ToolCallResult.Error.verify|verify} messages.
                         * @param message Error message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2.ToolCallResult.IError, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes an Error message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns Error
                         * @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.cloud.dialogflow.v2.ToolCallResult.Error;

                        /**
                         * Decodes an Error message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns Error
                         * @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.cloud.dialogflow.v2.ToolCallResult.Error;

                        /**
                         * Verifies an Error 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 Error message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns Error
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.ToolCallResult.Error;

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

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

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

                /** Properties of a ToolsetTool. */
                interface IToolsetTool {

                    /** ToolsetTool toolset */
                    toolset?: (string|null);

                    /** ToolsetTool operationId */
                    operationId?: (string|null);

                    /** ToolsetTool confirmationRequirement */
                    confirmationRequirement?: (google.cloud.dialogflow.v2.Tool.ConfirmationRequirement|keyof typeof google.cloud.dialogflow.v2.Tool.ConfirmationRequirement|null);
                }

                /** Represents a ToolsetTool. */
                class ToolsetTool implements IToolsetTool {

                    /**
                     * Constructs a new ToolsetTool.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IToolsetTool);

                    /** ToolsetTool toolset. */
                    public toolset: string;

                    /** ToolsetTool operationId. */
                    public operationId: string;

                    /** ToolsetTool confirmationRequirement. */
                    public confirmationRequirement: (google.cloud.dialogflow.v2.Tool.ConfirmationRequirement|keyof typeof google.cloud.dialogflow.v2.Tool.ConfirmationRequirement);

                    /**
                     * Creates a new ToolsetTool instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ToolsetTool instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IToolsetTool): google.cloud.dialogflow.v2.ToolsetTool;

                    /**
                     * Encodes the specified ToolsetTool message. Does not implicitly {@link google.cloud.dialogflow.v2.ToolsetTool.verify|verify} messages.
                     * @param message ToolsetTool message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IToolsetTool, writer?: $protobuf.Writer): $protobuf.Writer;

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

                    /**
                     * Decodes a ToolsetTool message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ToolsetTool
                     * @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.cloud.dialogflow.v2.ToolsetTool;

                    /**
                     * Decodes a ToolsetTool message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ToolsetTool
                     * @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.cloud.dialogflow.v2.ToolsetTool;

                    /**
                     * Verifies a ToolsetTool 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 ToolsetTool message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ToolsetTool
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.ToolsetTool;

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

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

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

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

                    /**
                     * Constructs a new Participants 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 Participants 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): Participants;

                    /**
                     * Calls CreateParticipant.
                     * @param request CreateParticipantRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Participant
                     */
                    public createParticipant(request: google.cloud.dialogflow.v2.ICreateParticipantRequest, callback: google.cloud.dialogflow.v2.Participants.CreateParticipantCallback): void;

                    /**
                     * Calls CreateParticipant.
                     * @param request CreateParticipantRequest message or plain object
                     * @returns Promise
                     */
                    public createParticipant(request: google.cloud.dialogflow.v2.ICreateParticipantRequest): Promise<google.cloud.dialogflow.v2.Participant>;

                    /**
                     * Calls GetParticipant.
                     * @param request GetParticipantRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Participant
                     */
                    public getParticipant(request: google.cloud.dialogflow.v2.IGetParticipantRequest, callback: google.cloud.dialogflow.v2.Participants.GetParticipantCallback): void;

                    /**
                     * Calls GetParticipant.
                     * @param request GetParticipantRequest message or plain object
                     * @returns Promise
                     */
                    public getParticipant(request: google.cloud.dialogflow.v2.IGetParticipantRequest): Promise<google.cloud.dialogflow.v2.Participant>;

                    /**
                     * Calls ListParticipants.
                     * @param request ListParticipantsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ListParticipantsResponse
                     */
                    public listParticipants(request: google.cloud.dialogflow.v2.IListParticipantsRequest, callback: google.cloud.dialogflow.v2.Participants.ListParticipantsCallback): void;

                    /**
                     * Calls ListParticipants.
                     * @param request ListParticipantsRequest message or plain object
                     * @returns Promise
                     */
                    public listParticipants(request: google.cloud.dialogflow.v2.IListParticipantsRequest): Promise<google.cloud.dialogflow.v2.ListParticipantsResponse>;

                    /**
                     * Calls UpdateParticipant.
                     * @param request UpdateParticipantRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Participant
                     */
                    public updateParticipant(request: google.cloud.dialogflow.v2.IUpdateParticipantRequest, callback: google.cloud.dialogflow.v2.Participants.UpdateParticipantCallback): void;

                    /**
                     * Calls UpdateParticipant.
                     * @param request UpdateParticipantRequest message or plain object
                     * @returns Promise
                     */
                    public updateParticipant(request: google.cloud.dialogflow.v2.IUpdateParticipantRequest): Promise<google.cloud.dialogflow.v2.Participant>;

                    /**
                     * Calls AnalyzeContent.
                     * @param request AnalyzeContentRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and AnalyzeContentResponse
                     */
                    public analyzeContent(request: google.cloud.dialogflow.v2.IAnalyzeContentRequest, callback: google.cloud.dialogflow.v2.Participants.AnalyzeContentCallback): void;

                    /**
                     * Calls AnalyzeContent.
                     * @param request AnalyzeContentRequest message or plain object
                     * @returns Promise
                     */
                    public analyzeContent(request: google.cloud.dialogflow.v2.IAnalyzeContentRequest): Promise<google.cloud.dialogflow.v2.AnalyzeContentResponse>;

                    /**
                     * Calls StreamingAnalyzeContent.
                     * @param request StreamingAnalyzeContentRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and StreamingAnalyzeContentResponse
                     */
                    public streamingAnalyzeContent(request: google.cloud.dialogflow.v2.IStreamingAnalyzeContentRequest, callback: google.cloud.dialogflow.v2.Participants.StreamingAnalyzeContentCallback): void;

                    /**
                     * Calls StreamingAnalyzeContent.
                     * @param request StreamingAnalyzeContentRequest message or plain object
                     * @returns Promise
                     */
                    public streamingAnalyzeContent(request: google.cloud.dialogflow.v2.IStreamingAnalyzeContentRequest): Promise<google.cloud.dialogflow.v2.StreamingAnalyzeContentResponse>;

                    /**
                     * Calls SuggestArticles.
                     * @param request SuggestArticlesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and SuggestArticlesResponse
                     */
                    public suggestArticles(request: google.cloud.dialogflow.v2.ISuggestArticlesRequest, callback: google.cloud.dialogflow.v2.Participants.SuggestArticlesCallback): void;

                    /**
                     * Calls SuggestArticles.
                     * @param request SuggestArticlesRequest message or plain object
                     * @returns Promise
                     */
                    public suggestArticles(request: google.cloud.dialogflow.v2.ISuggestArticlesRequest): Promise<google.cloud.dialogflow.v2.SuggestArticlesResponse>;

                    /**
                     * Calls SuggestFaqAnswers.
                     * @param request SuggestFaqAnswersRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and SuggestFaqAnswersResponse
                     */
                    public suggestFaqAnswers(request: google.cloud.dialogflow.v2.ISuggestFaqAnswersRequest, callback: google.cloud.dialogflow.v2.Participants.SuggestFaqAnswersCallback): void;

                    /**
                     * Calls SuggestFaqAnswers.
                     * @param request SuggestFaqAnswersRequest message or plain object
                     * @returns Promise
                     */
                    public suggestFaqAnswers(request: google.cloud.dialogflow.v2.ISuggestFaqAnswersRequest): Promise<google.cloud.dialogflow.v2.SuggestFaqAnswersResponse>;

                    /**
                     * Calls SuggestSmartReplies.
                     * @param request SuggestSmartRepliesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and SuggestSmartRepliesResponse
                     */
                    public suggestSmartReplies(request: google.cloud.dialogflow.v2.ISuggestSmartRepliesRequest, callback: google.cloud.dialogflow.v2.Participants.SuggestSmartRepliesCallback): void;

                    /**
                     * Calls SuggestSmartReplies.
                     * @param request SuggestSmartRepliesRequest message or plain object
                     * @returns Promise
                     */
                    public suggestSmartReplies(request: google.cloud.dialogflow.v2.ISuggestSmartRepliesRequest): Promise<google.cloud.dialogflow.v2.SuggestSmartRepliesResponse>;

                    /**
                     * Calls SuggestKnowledgeAssist.
                     * @param request SuggestKnowledgeAssistRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and SuggestKnowledgeAssistResponse
                     */
                    public suggestKnowledgeAssist(request: google.cloud.dialogflow.v2.ISuggestKnowledgeAssistRequest, callback: google.cloud.dialogflow.v2.Participants.SuggestKnowledgeAssistCallback): void;

                    /**
                     * Calls SuggestKnowledgeAssist.
                     * @param request SuggestKnowledgeAssistRequest message or plain object
                     * @returns Promise
                     */
                    public suggestKnowledgeAssist(request: google.cloud.dialogflow.v2.ISuggestKnowledgeAssistRequest): Promise<google.cloud.dialogflow.v2.SuggestKnowledgeAssistResponse>;
                }

                namespace Participants {

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2.Participants|createParticipant}.
                     * @param error Error, if any
                     * @param [response] Participant
                     */
                    type CreateParticipantCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2.Participant) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2.Participants|getParticipant}.
                     * @param error Error, if any
                     * @param [response] Participant
                     */
                    type GetParticipantCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2.Participant) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2.Participants|listParticipants}.
                     * @param error Error, if any
                     * @param [response] ListParticipantsResponse
                     */
                    type ListParticipantsCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2.ListParticipantsResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2.Participants|updateParticipant}.
                     * @param error Error, if any
                     * @param [response] Participant
                     */
                    type UpdateParticipantCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2.Participant) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2.Participants|analyzeContent}.
                     * @param error Error, if any
                     * @param [response] AnalyzeContentResponse
                     */
                    type AnalyzeContentCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2.AnalyzeContentResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2.Participants|streamingAnalyzeContent}.
                     * @param error Error, if any
                     * @param [response] StreamingAnalyzeContentResponse
                     */
                    type StreamingAnalyzeContentCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2.StreamingAnalyzeContentResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2.Participants|suggestArticles}.
                     * @param error Error, if any
                     * @param [response] SuggestArticlesResponse
                     */
                    type SuggestArticlesCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2.SuggestArticlesResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2.Participants|suggestFaqAnswers}.
                     * @param error Error, if any
                     * @param [response] SuggestFaqAnswersResponse
                     */
                    type SuggestFaqAnswersCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2.SuggestFaqAnswersResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2.Participants|suggestSmartReplies}.
                     * @param error Error, if any
                     * @param [response] SuggestSmartRepliesResponse
                     */
                    type SuggestSmartRepliesCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2.SuggestSmartRepliesResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2.Participants|suggestKnowledgeAssist}.
                     * @param error Error, if any
                     * @param [response] SuggestKnowledgeAssistResponse
                     */
                    type SuggestKnowledgeAssistCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2.SuggestKnowledgeAssistResponse) => void;
                }

                /** Properties of a Participant. */
                interface IParticipant {

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

                    /** Participant role */
                    role?: (google.cloud.dialogflow.v2.Participant.Role|keyof typeof google.cloud.dialogflow.v2.Participant.Role|null);

                    /** Participant sipRecordingMediaLabel */
                    sipRecordingMediaLabel?: (string|null);

                    /** Participant obfuscatedExternalUserId */
                    obfuscatedExternalUserId?: (string|null);

                    /** Participant documentsMetadataFilters */
                    documentsMetadataFilters?: ({ [k: string]: string }|null);

                    /** Participant agentDesktopSource */
                    agentDesktopSource?: (google.cloud.dialogflow.v2.Participant.AgentDesktopSource|keyof typeof google.cloud.dialogflow.v2.Participant.AgentDesktopSource|null);
                }

                /** Represents a Participant. */
                class Participant implements IParticipant {

                    /**
                     * Constructs a new Participant.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IParticipant);

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

                    /** Participant role. */
                    public role: (google.cloud.dialogflow.v2.Participant.Role|keyof typeof google.cloud.dialogflow.v2.Participant.Role);

                    /** Participant sipRecordingMediaLabel. */
                    public sipRecordingMediaLabel: string;

                    /** Participant obfuscatedExternalUserId. */
                    public obfuscatedExternalUserId: string;

                    /** Participant documentsMetadataFilters. */
                    public documentsMetadataFilters: { [k: string]: string };

                    /** Participant agentDesktopSource. */
                    public agentDesktopSource: (google.cloud.dialogflow.v2.Participant.AgentDesktopSource|keyof typeof google.cloud.dialogflow.v2.Participant.AgentDesktopSource);

                    /**
                     * Creates a new Participant instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Participant instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IParticipant): google.cloud.dialogflow.v2.Participant;

                    /**
                     * Encodes the specified Participant message. Does not implicitly {@link google.cloud.dialogflow.v2.Participant.verify|verify} messages.
                     * @param message Participant message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IParticipant, writer?: $protobuf.Writer): $protobuf.Writer;

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

                    /**
                     * Decodes a Participant message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Participant
                     * @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.cloud.dialogflow.v2.Participant;

                    /**
                     * Decodes a Participant message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Participant
                     * @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.cloud.dialogflow.v2.Participant;

                    /**
                     * Verifies a Participant 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 Participant message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Participant
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.Participant;

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

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

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

                namespace Participant {

                    /** Role enum. */
                    enum Role {
                        ROLE_UNSPECIFIED = 0,
                        HUMAN_AGENT = 1,
                        AUTOMATED_AGENT = 2,
                        END_USER = 3
                    }

                    /** AgentDesktopSource enum. */
                    enum AgentDesktopSource {
                        AGENT_DESKTOP_SOURCE_UNSPECIFIED = 0,
                        LIVE_PERSON = 1,
                        GENESYS_CLOUD = 2,
                        TWILIO = 3,
                        SALESFORCE = 4,
                        OTHER = 8
                    }
                }

                /** Properties of a Message. */
                interface IMessage {

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

                    /** Message content */
                    content?: (string|null);

                    /** Message languageCode */
                    languageCode?: (string|null);

                    /** Message participant */
                    participant?: (string|null);

                    /** Message participantRole */
                    participantRole?: (google.cloud.dialogflow.v2.Participant.Role|keyof typeof google.cloud.dialogflow.v2.Participant.Role|null);

                    /** Message createTime */
                    createTime?: (google.protobuf.ITimestamp|null);

                    /** Message sendTime */
                    sendTime?: (google.protobuf.ITimestamp|null);

                    /** Message messageAnnotation */
                    messageAnnotation?: (google.cloud.dialogflow.v2.IMessageAnnotation|null);

                    /** Message sentimentAnalysis */
                    sentimentAnalysis?: (google.cloud.dialogflow.v2.ISentimentAnalysisResult|null);
                }

                /** Represents a Message. */
                class Message implements IMessage {

                    /**
                     * Constructs a new Message.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IMessage);

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

                    /** Message content. */
                    public content: string;

                    /** Message languageCode. */
                    public languageCode: string;

                    /** Message participant. */
                    public participant: string;

                    /** Message participantRole. */
                    public participantRole: (google.cloud.dialogflow.v2.Participant.Role|keyof typeof google.cloud.dialogflow.v2.Participant.Role);

                    /** Message createTime. */
                    public createTime?: (google.protobuf.ITimestamp|null);

                    /** Message sendTime. */
                    public sendTime?: (google.protobuf.ITimestamp|null);

                    /** Message messageAnnotation. */
                    public messageAnnotation?: (google.cloud.dialogflow.v2.IMessageAnnotation|null);

                    /** Message sentimentAnalysis. */
                    public sentimentAnalysis?: (google.cloud.dialogflow.v2.ISentimentAnalysisResult|null);

                    /**
                     * Creates a new Message instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Message instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IMessage): google.cloud.dialogflow.v2.Message;

                    /**
                     * Encodes the specified Message message. Does not implicitly {@link google.cloud.dialogflow.v2.Message.verify|verify} messages.
                     * @param message Message message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IMessage, writer?: $protobuf.Writer): $protobuf.Writer;

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

                    /**
                     * Decodes a Message message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Message
                     * @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.cloud.dialogflow.v2.Message;

                    /**
                     * Decodes a Message message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Message
                     * @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.cloud.dialogflow.v2.Message;

                    /**
                     * Verifies a Message 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 Message message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Message
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.Message;

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

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

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

                /** Properties of a CreateParticipantRequest. */
                interface ICreateParticipantRequest {

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

                    /** CreateParticipantRequest participant */
                    participant?: (google.cloud.dialogflow.v2.IParticipant|null);
                }

                /** Represents a CreateParticipantRequest. */
                class CreateParticipantRequest implements ICreateParticipantRequest {

                    /**
                     * Constructs a new CreateParticipantRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.ICreateParticipantRequest);

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

                    /** CreateParticipantRequest participant. */
                    public participant?: (google.cloud.dialogflow.v2.IParticipant|null);

                    /**
                     * Creates a new CreateParticipantRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CreateParticipantRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.ICreateParticipantRequest): google.cloud.dialogflow.v2.CreateParticipantRequest;

                    /**
                     * Encodes the specified CreateParticipantRequest message. Does not implicitly {@link google.cloud.dialogflow.v2.CreateParticipantRequest.verify|verify} messages.
                     * @param message CreateParticipantRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.ICreateParticipantRequest, writer?: $protobuf.Writer): $protobuf.Writer;

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

                    /**
                     * Decodes a CreateParticipantRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CreateParticipantRequest
                     * @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.cloud.dialogflow.v2.CreateParticipantRequest;

                    /**
                     * Decodes a CreateParticipantRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CreateParticipantRequest
                     * @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.cloud.dialogflow.v2.CreateParticipantRequest;

                    /**
                     * Verifies a CreateParticipantRequest 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 CreateParticipantRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CreateParticipantRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.CreateParticipantRequest;

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

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

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

                /** Properties of a GetParticipantRequest. */
                interface IGetParticipantRequest {

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

                /** Represents a GetParticipantRequest. */
                class GetParticipantRequest implements IGetParticipantRequest {

                    /**
                     * Constructs a new GetParticipantRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IGetParticipantRequest);

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

                    /**
                     * Creates a new GetParticipantRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetParticipantRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IGetParticipantRequest): google.cloud.dialogflow.v2.GetParticipantRequest;

                    /**
                     * Encodes the specified GetParticipantRequest message. Does not implicitly {@link google.cloud.dialogflow.v2.GetParticipantRequest.verify|verify} messages.
                     * @param message GetParticipantRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IGetParticipantRequest, writer?: $protobuf.Writer): $protobuf.Writer;

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

                    /**
                     * Decodes a GetParticipantRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetParticipantRequest
                     * @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.cloud.dialogflow.v2.GetParticipantRequest;

                    /**
                     * Decodes a GetParticipantRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetParticipantRequest
                     * @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.cloud.dialogflow.v2.GetParticipantRequest;

                    /**
                     * Verifies a GetParticipantRequest 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 GetParticipantRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetParticipantRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.GetParticipantRequest;

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

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

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

                /** Properties of a ListParticipantsRequest. */
                interface IListParticipantsRequest {

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

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

                    /** ListParticipantsRequest pageToken */
                    pageToken?: (string|null);
                }

                /** Represents a ListParticipantsRequest. */
                class ListParticipantsRequest implements IListParticipantsRequest {

                    /**
                     * Constructs a new ListParticipantsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IListParticipantsRequest);

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

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

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

                    /**
                     * Creates a new ListParticipantsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListParticipantsRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IListParticipantsRequest): google.cloud.dialogflow.v2.ListParticipantsRequest;

                    /**
                     * Encodes the specified ListParticipantsRequest message. Does not implicitly {@link google.cloud.dialogflow.v2.ListParticipantsRequest.verify|verify} messages.
                     * @param message ListParticipantsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IListParticipantsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

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

                    /**
                     * Decodes a ListParticipantsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListParticipantsRequest
                     * @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.cloud.dialogflow.v2.ListParticipantsRequest;

                    /**
                     * Decodes a ListParticipantsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListParticipantsRequest
                     * @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.cloud.dialogflow.v2.ListParticipantsRequest;

                    /**
                     * Verifies a ListParticipantsRequest 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 ListParticipantsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListParticipantsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.ListParticipantsRequest;

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

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

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

                /** Properties of a ListParticipantsResponse. */
                interface IListParticipantsResponse {

                    /** ListParticipantsResponse participants */
                    participants?: (google.cloud.dialogflow.v2.IParticipant[]|null);

                    /** ListParticipantsResponse nextPageToken */
                    nextPageToken?: (string|null);
                }

                /** Represents a ListParticipantsResponse. */
                class ListParticipantsResponse implements IListParticipantsResponse {

                    /**
                     * Constructs a new ListParticipantsResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IListParticipantsResponse);

                    /** ListParticipantsResponse participants. */
                    public participants: google.cloud.dialogflow.v2.IParticipant[];

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

                    /**
                     * Creates a new ListParticipantsResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListParticipantsResponse instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IListParticipantsResponse): google.cloud.dialogflow.v2.ListParticipantsResponse;

                    /**
                     * Encodes the specified ListParticipantsResponse message. Does not implicitly {@link google.cloud.dialogflow.v2.ListParticipantsResponse.verify|verify} messages.
                     * @param message ListParticipantsResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IListParticipantsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

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

                    /**
                     * Decodes a ListParticipantsResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListParticipantsResponse
                     * @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.cloud.dialogflow.v2.ListParticipantsResponse;

                    /**
                     * Decodes a ListParticipantsResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListParticipantsResponse
                     * @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.cloud.dialogflow.v2.ListParticipantsResponse;

                    /**
                     * Verifies a ListParticipantsResponse 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 ListParticipantsResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListParticipantsResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.ListParticipantsResponse;

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

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

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

                /** Properties of an UpdateParticipantRequest. */
                interface IUpdateParticipantRequest {

                    /** UpdateParticipantRequest participant */
                    participant?: (google.cloud.dialogflow.v2.IParticipant|null);

                    /** UpdateParticipantRequest updateMask */
                    updateMask?: (google.protobuf.IFieldMask|null);
                }

                /** Represents an UpdateParticipantRequest. */
                class UpdateParticipantRequest implements IUpdateParticipantRequest {

                    /**
                     * Constructs a new UpdateParticipantRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IUpdateParticipantRequest);

                    /** UpdateParticipantRequest participant. */
                    public participant?: (google.cloud.dialogflow.v2.IParticipant|null);

                    /** UpdateParticipantRequest updateMask. */
                    public updateMask?: (google.protobuf.IFieldMask|null);

                    /**
                     * Creates a new UpdateParticipantRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UpdateParticipantRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IUpdateParticipantRequest): google.cloud.dialogflow.v2.UpdateParticipantRequest;

                    /**
                     * Encodes the specified UpdateParticipantRequest message. Does not implicitly {@link google.cloud.dialogflow.v2.UpdateParticipantRequest.verify|verify} messages.
                     * @param message UpdateParticipantRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IUpdateParticipantRequest, writer?: $protobuf.Writer): $protobuf.Writer;

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

                    /**
                     * Decodes an UpdateParticipantRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns UpdateParticipantRequest
                     * @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.cloud.dialogflow.v2.UpdateParticipantRequest;

                    /**
                     * Decodes an UpdateParticipantRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns UpdateParticipantRequest
                     * @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.cloud.dialogflow.v2.UpdateParticipantRequest;

                    /**
                     * Verifies an UpdateParticipantRequest 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 UpdateParticipantRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UpdateParticipantRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.UpdateParticipantRequest;

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

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

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

                /** Properties of an AnalyzeContentRequest. */
                interface IAnalyzeContentRequest {

                    /** AnalyzeContentRequest participant */
                    participant?: (string|null);

                    /** AnalyzeContentRequest textInput */
                    textInput?: (google.cloud.dialogflow.v2.ITextInput|null);

                    /** AnalyzeContentRequest audioInput */
                    audioInput?: (google.cloud.dialogflow.v2.IAudioInput|null);

                    /** AnalyzeContentRequest eventInput */
                    eventInput?: (google.cloud.dialogflow.v2.IEventInput|null);

                    /** AnalyzeContentRequest suggestionInput */
                    suggestionInput?: (google.cloud.dialogflow.v2.ISuggestionInput|null);

                    /** AnalyzeContentRequest replyAudioConfig */
                    replyAudioConfig?: (google.cloud.dialogflow.v2.IOutputAudioConfig|null);

                    /** AnalyzeContentRequest queryParams */
                    queryParams?: (google.cloud.dialogflow.v2.IQueryParameters|null);

                    /** AnalyzeContentRequest assistQueryParams */
                    assistQueryParams?: (google.cloud.dialogflow.v2.IAssistQueryParameters|null);

                    /** AnalyzeContentRequest cxParameters */
                    cxParameters?: (google.protobuf.IStruct|null);

                    /** AnalyzeContentRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an AnalyzeContentRequest. */
                class AnalyzeContentRequest implements IAnalyzeContentRequest {

                    /**
                     * Constructs a new AnalyzeContentRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IAnalyzeContentRequest);

                    /** AnalyzeContentRequest participant. */
                    public participant: string;

                    /** AnalyzeContentRequest textInput. */
                    public textInput?: (google.cloud.dialogflow.v2.ITextInput|null);

                    /** AnalyzeContentRequest audioInput. */
                    public audioInput?: (google.cloud.dialogflow.v2.IAudioInput|null);

                    /** AnalyzeContentRequest eventInput. */
                    public eventInput?: (google.cloud.dialogflow.v2.IEventInput|null);

                    /** AnalyzeContentRequest suggestionInput. */
                    public suggestionInput?: (google.cloud.dialogflow.v2.ISuggestionInput|null);

                    /** AnalyzeContentRequest replyAudioConfig. */
                    public replyAudioConfig?: (google.cloud.dialogflow.v2.IOutputAudioConfig|null);

                    /** AnalyzeContentRequest queryParams. */
                    public queryParams?: (google.cloud.dialogflow.v2.IQueryParameters|null);

                    /** AnalyzeContentRequest assistQueryParams. */
                    public assistQueryParams?: (google.cloud.dialogflow.v2.IAssistQueryParameters|null);

                    /** AnalyzeContentRequest cxParameters. */
                    public cxParameters?: (google.protobuf.IStruct|null);

                    /** AnalyzeContentRequest requestId. */
                    public requestId: string;

                    /** AnalyzeContentRequest input. */
                    public input?: ("textInput"|"audioInput"|"eventInput"|"suggestionInput");

                    /**
                     * Creates a new AnalyzeContentRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AnalyzeContentRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IAnalyzeContentRequest): google.cloud.dialogflow.v2.AnalyzeContentRequest;

                    /**
                     * Encodes the specified AnalyzeContentRequest message. Does not implicitly {@link google.cloud.dialogflow.v2.AnalyzeContentRequest.verify|verify} messages.
                     * @param message AnalyzeContentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IAnalyzeContentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

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

                    /**
                     * Decodes an AnalyzeContentRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AnalyzeContentRequest
                     * @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.cloud.dialogflow.v2.AnalyzeContentRequest;

                    /**
                     * Decodes an AnalyzeContentRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AnalyzeContentRequest
                     * @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.cloud.dialogflow.v2.AnalyzeContentRequest;

                    /**
                     * Verifies an AnalyzeContentRequest 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 AnalyzeContentRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AnalyzeContentRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.AnalyzeContentRequest;

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

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

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

                /** Properties of a DtmfParameters. */
                interface IDtmfParameters {

                    /** DtmfParameters acceptsDtmfInput */
                    acceptsDtmfInput?: (boolean|null);
                }

                /** Represents a DtmfParameters. */
                class DtmfParameters implements IDtmfParameters {

                    /**
                     * Constructs a new DtmfParameters.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IDtmfParameters);

                    /** DtmfParameters acceptsDtmfInput. */
                    public acceptsDtmfInput: boolean;

                    /**
                     * Creates a new DtmfParameters instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DtmfParameters instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IDtmfParameters): google.cloud.dialogflow.v2.DtmfParameters;

                    /**
                     * Encodes the specified DtmfParameters message. Does not implicitly {@link google.cloud.dialogflow.v2.DtmfParameters.verify|verify} messages.
                     * @param message DtmfParameters message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IDtmfParameters, writer?: $protobuf.Writer): $protobuf.Writer;

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

                    /**
                     * Decodes a DtmfParameters message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DtmfParameters
                     * @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.cloud.dialogflow.v2.DtmfParameters;

                    /**
                     * Decodes a DtmfParameters message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DtmfParameters
                     * @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.cloud.dialogflow.v2.DtmfParameters;

                    /**
                     * Verifies a DtmfParameters 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 DtmfParameters message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DtmfParameters
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.DtmfParameters;

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

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

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

                /** Properties of an AnalyzeContentResponse. */
                interface IAnalyzeContentResponse {

                    /** AnalyzeContentResponse replyText */
                    replyText?: (string|null);

                    /** AnalyzeContentResponse replyAudio */
                    replyAudio?: (google.cloud.dialogflow.v2.IOutputAudio|null);

                    /** AnalyzeContentResponse automatedAgentReply */
                    automatedAgentReply?: (google.cloud.dialogflow.v2.IAutomatedAgentReply|null);

                    /** AnalyzeContentResponse message */
                    message?: (google.cloud.dialogflow.v2.IMessage|null);

                    /** AnalyzeContentResponse humanAgentSuggestionResults */
                    humanAgentSuggestionResults?: (google.cloud.dialogflow.v2.ISuggestionResult[]|null);

                    /** AnalyzeContentResponse endUserSuggestionResults */
                    endUserSuggestionResults?: (google.cloud.dialogflow.v2.ISuggestionResult[]|null);

                    /** AnalyzeContentResponse dtmfParameters */
                    dtmfParameters?: (google.cloud.dialogflow.v2.IDtmfParameters|null);
                }

                /** Represents an AnalyzeContentResponse. */
                class AnalyzeContentResponse implements IAnalyzeContentResponse {

                    /**
                     * Constructs a new AnalyzeContentResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IAnalyzeContentResponse);

                    /** AnalyzeContentResponse replyText. */
                    public replyText: string;

                    /** AnalyzeContentResponse replyAudio. */
                    public replyAudio?: (google.cloud.dialogflow.v2.IOutputAudio|null);

                    /** AnalyzeContentResponse automatedAgentReply. */
                    public automatedAgentReply?: (google.cloud.dialogflow.v2.IAutomatedAgentReply|null);

                    /** AnalyzeContentResponse message. */
                    public message?: (google.cloud.dialogflow.v2.IMessage|null);

                    /** AnalyzeContentResponse humanAgentSuggestionResults. */
                    public humanAgentSuggestionResults: google.cloud.dialogflow.v2.ISuggestionResult[];

                    /** AnalyzeContentResponse endUserSuggestionResults. */
                    public endUserSuggestionResults: google.cloud.dialogflow.v2.ISuggestionResult[];

                    /** AnalyzeContentResponse dtmfParameters. */
                    public dtmfParameters?: (google.cloud.dialogflow.v2.IDtmfParameters|null);

                    /**
                     * Creates a new AnalyzeContentResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AnalyzeContentResponse instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IAnalyzeContentResponse): google.cloud.dialogflow.v2.AnalyzeContentResponse;

                    /**
                     * Encodes the specified AnalyzeContentResponse message. Does not implicitly {@link google.cloud.dialogflow.v2.AnalyzeContentResponse.verify|verify} messages.
                     * @param message AnalyzeContentResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IAnalyzeContentResponse, writer?: $protobuf.Writer): $protobuf.Writer;

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

                    /**
                     * Decodes an AnalyzeContentResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AnalyzeContentResponse
                     * @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.cloud.dialogflow.v2.AnalyzeContentResponse;

                    /**
                     * Decodes an AnalyzeContentResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AnalyzeContentResponse
                     * @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.cloud.dialogflow.v2.AnalyzeContentResponse;

                    /**
                     * Verifies an AnalyzeContentResponse 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 AnalyzeContentResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AnalyzeContentResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.AnalyzeContentResponse;

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

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

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

                /** Properties of a StreamingAnalyzeContentRequest. */
                interface IStreamingAnalyzeContentRequest {

                    /** StreamingAnalyzeContentRequest participant */
                    participant?: (string|null);

                    /** StreamingAnalyzeContentRequest audioConfig */
                    audioConfig?: (google.cloud.dialogflow.v2.IInputAudioConfig|null);

                    /** StreamingAnalyzeContentRequest textConfig */
                    textConfig?: (google.cloud.dialogflow.v2.IInputTextConfig|null);

                    /** StreamingAnalyzeContentRequest replyAudioConfig */
                    replyAudioConfig?: (google.cloud.dialogflow.v2.IOutputAudioConfig|null);

                    /** StreamingAnalyzeContentRequest inputAudio */
                    inputAudio?: (Uint8Array|Buffer|string|null);

                    /** StreamingAnalyzeContentRequest inputText */
                    inputText?: (string|null);

                    /** StreamingAnalyzeContentRequest inputDtmf */
                    inputDtmf?: (google.cloud.dialogflow.v2.ITelephonyDtmfEvents|null);

                    /** StreamingAnalyzeContentRequest queryParams */
                    queryParams?: (google.cloud.dialogflow.v2.IQueryParameters|null);

                    /** StreamingAnalyzeContentRequest assistQueryParams */
                    assistQueryParams?: (google.cloud.dialogflow.v2.IAssistQueryParameters|null);

                    /** StreamingAnalyzeContentRequest cxParameters */
                    cxParameters?: (google.protobuf.IStruct|null);

                    /** StreamingAnalyzeContentRequest enableExtendedStreaming */
                    enableExtendedStreaming?: (boolean|null);

                    /** StreamingAnalyzeContentRequest enablePartialAutomatedAgentReply */
                    enablePartialAutomatedAgentReply?: (boolean|null);

                    /** StreamingAnalyzeContentRequest outputMultipleUtterances */
                    outputMultipleUtterances?: (boolean|null);

                    /** StreamingAnalyzeContentRequest enableDebuggingInfo */
                    enableDebuggingInfo?: (boolean|null);
                }

                /** Represents a StreamingAnalyzeContentRequest. */
                class StreamingAnalyzeContentRequest implements IStreamingAnalyzeContentRequest {

                    /**
                     * Constructs a new StreamingAnalyzeContentRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IStreamingAnalyzeContentRequest);

                    /** StreamingAnalyzeContentRequest participant. */
                    public participant: string;

                    /** StreamingAnalyzeContentRequest audioConfig. */
                    public audioConfig?: (google.cloud.dialogflow.v2.IInputAudioConfig|null);

                    /** StreamingAnalyzeContentRequest textConfig. */
                    public textConfig?: (google.cloud.dialogflow.v2.IInputTextConfig|null);

                    /** StreamingAnalyzeContentRequest replyAudioConfig. */
                    public replyAudioConfig?: (google.cloud.dialogflow.v2.IOutputAudioConfig|null);

                    /** StreamingAnalyzeContentRequest inputAudio. */
                    public inputAudio?: (Uint8Array|Buffer|string|null);

                    /** StreamingAnalyzeContentRequest inputText. */
                    public inputText?: (string|null);

                    /** StreamingAnalyzeContentRequest inputDtmf. */
                    public inputDtmf?: (google.cloud.dialogflow.v2.ITelephonyDtmfEvents|null);

                    /** StreamingAnalyzeContentRequest queryParams. */
                    public queryParams?: (google.cloud.dialogflow.v2.IQueryParameters|null);

                    /** StreamingAnalyzeContentRequest assistQueryParams. */
                    public assistQueryParams?: (google.cloud.dialogflow.v2.IAssistQueryParameters|null);

                    /** StreamingAnalyzeContentRequest cxParameters. */
                    public cxParameters?: (google.protobuf.IStruct|null);

                    /** StreamingAnalyzeContentRequest enableExtendedStreaming. */
                    public enableExtendedStreaming: boolean;

                    /** StreamingAnalyzeContentRequest enablePartialAutomatedAgentReply. */
                    public enablePartialAutomatedAgentReply: boolean;

                    /** StreamingAnalyzeContentRequest outputMultipleUtterances. */
                    public outputMultipleUtterances: boolean;

                    /** StreamingAnalyzeContentRequest enableDebuggingInfo. */
                    public enableDebuggingInfo: boolean;

                    /** StreamingAnalyzeContentRequest config. */
                    public config?: ("audioConfig"|"textConfig");

                    /** StreamingAnalyzeContentRequest input. */
                    public input?: ("inputAudio"|"inputText"|"inputDtmf");

                    /**
                     * Creates a new StreamingAnalyzeContentRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns StreamingAnalyzeContentRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IStreamingAnalyzeContentRequest): google.cloud.dialogflow.v2.StreamingAnalyzeContentRequest;

                    /**
                     * Encodes the specified StreamingAnalyzeContentRequest message. Does not implicitly {@link google.cloud.dialogflow.v2.StreamingAnalyzeContentRequest.verify|verify} messages.
                     * @param message StreamingAnalyzeContentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IStreamingAnalyzeContentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

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

                    /**
                     * Decodes a StreamingAnalyzeContentRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns StreamingAnalyzeContentRequest
                     * @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.cloud.dialogflow.v2.StreamingAnalyzeContentRequest;

                    /**
                     * Decodes a StreamingAnalyzeContentRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns StreamingAnalyzeContentRequest
                     * @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.cloud.dialogflow.v2.StreamingAnalyzeContentRequest;

                    /**
                     * Verifies a StreamingAnalyzeContentRequest 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 StreamingAnalyzeContentRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns StreamingAnalyzeContentRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.StreamingAnalyzeContentRequest;

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

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

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

                /** Properties of a StreamingAnalyzeContentResponse. */
                interface IStreamingAnalyzeContentResponse {

                    /** StreamingAnalyzeContentResponse recognitionResult */
                    recognitionResult?: (google.cloud.dialogflow.v2.IStreamingRecognitionResult|null);

                    /** StreamingAnalyzeContentResponse replyText */
                    replyText?: (string|null);

                    /** StreamingAnalyzeContentResponse replyAudio */
                    replyAudio?: (google.cloud.dialogflow.v2.IOutputAudio|null);

                    /** StreamingAnalyzeContentResponse automatedAgentReply */
                    automatedAgentReply?: (google.cloud.dialogflow.v2.IAutomatedAgentReply|null);

                    /** StreamingAnalyzeContentResponse message */
                    message?: (google.cloud.dialogflow.v2.IMessage|null);

                    /** StreamingAnalyzeContentResponse humanAgentSuggestionResults */
                    humanAgentSuggestionResults?: (google.cloud.dialogflow.v2.ISuggestionResult[]|null);

                    /** StreamingAnalyzeContentResponse endUserSuggestionResults */
                    endUserSuggestionResults?: (google.cloud.dialogflow.v2.ISuggestionResult[]|null);

                    /** StreamingAnalyzeContentResponse dtmfParameters */
                    dtmfParameters?: (google.cloud.dialogflow.v2.IDtmfParameters|null);

                    /** StreamingAnalyzeContentResponse debuggingInfo */
                    debuggingInfo?: (google.cloud.dialogflow.v2.ICloudConversationDebuggingInfo|null);

                    /** StreamingAnalyzeContentResponse speechModel */
                    speechModel?: (string|null);
                }

                /** Represents a StreamingAnalyzeContentResponse. */
                class StreamingAnalyzeContentResponse implements IStreamingAnalyzeContentResponse {

                    /**
                     * Constructs a new StreamingAnalyzeContentResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IStreamingAnalyzeContentResponse);

                    /** StreamingAnalyzeContentResponse recognitionResult. */
                    public recognitionResult?: (google.cloud.dialogflow.v2.IStreamingRecognitionResult|null);

                    /** StreamingAnalyzeContentResponse replyText. */
                    public replyText: string;

                    /** StreamingAnalyzeContentResponse replyAudio. */
                    public replyAudio?: (google.cloud.dialogflow.v2.IOutputAudio|null);

                    /** StreamingAnalyzeContentResponse automatedAgentReply. */
                    public automatedAgentReply?: (google.cloud.dialogflow.v2.IAutomatedAgentReply|null);

                    /** StreamingAnalyzeContentResponse message. */
                    public message?: (google.cloud.dialogflow.v2.IMessage|null);

                    /** StreamingAnalyzeContentResponse humanAgentSuggestionResults. */
                    public humanAgentSuggestionResults: google.cloud.dialogflow.v2.ISuggestionResult[];

                    /** StreamingAnalyzeContentResponse endUserSuggestionResults. */
                    public endUserSuggestionResults: google.cloud.dialogflow.v2.ISuggestionResult[];

                    /** StreamingAnalyzeContentResponse dtmfParameters. */
                    public dtmfParameters?: (google.cloud.dialogflow.v2.IDtmfParameters|null);

                    /** StreamingAnalyzeContentResponse debuggingInfo. */
                    public debuggingInfo?: (google.cloud.dialogflow.v2.ICloudConversationDebuggingInfo|null);

                    /** StreamingAnalyzeContentResponse speechModel. */
                    public speechModel: string;

                    /**
                     * Creates a new StreamingAnalyzeContentResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns StreamingAnalyzeContentResponse instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IStreamingAnalyzeContentResponse): google.cloud.dialogflow.v2.StreamingAnalyzeContentResponse;

                    /**
                     * Encodes the specified StreamingAnalyzeContentResponse message. Does not implicitly {@link google.cloud.dialogflow.v2.StreamingAnalyzeContentResponse.verify|verify} messages.
                     * @param message StreamingAnalyzeContentResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IStreamingAnalyzeContentResponse, writer?: $protobuf.Writer): $protobuf.Writer;

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

                    /**
                     * Decodes a StreamingAnalyzeContentResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns StreamingAnalyzeContentResponse
                     * @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.cloud.dialogflow.v2.StreamingAnalyzeContentResponse;

                    /**
                     * Decodes a StreamingAnalyzeContentResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns StreamingAnalyzeContentResponse
                     * @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.cloud.dialogflow.v2.StreamingAnalyzeContentResponse;

                    /**
                     * Verifies a StreamingAnalyzeContentResponse 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 StreamingAnalyzeContentResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns StreamingAnalyzeContentResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.StreamingAnalyzeContentResponse;

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

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

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

                /** Properties of a SuggestArticlesRequest. */
                interface ISuggestArticlesRequest {

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

                    /** SuggestArticlesRequest latestMessage */
                    latestMessage?: (string|null);

                    /** SuggestArticlesRequest contextSize */
                    contextSize?: (number|null);

                    /** SuggestArticlesRequest assistQueryParams */
                    assistQueryParams?: (google.cloud.dialogflow.v2.IAssistQueryParameters|null);
                }

                /** Represents a SuggestArticlesRequest. */
                class SuggestArticlesRequest implements ISuggestArticlesRequest {

                    /**
                     * Constructs a new SuggestArticlesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.ISuggestArticlesRequest);

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

                    /** SuggestArticlesRequest latestMessage. */
                    public latestMessage: string;

                    /** SuggestArticlesRequest contextSize. */
                    public contextSize: number;

                    /** SuggestArticlesRequest assistQueryParams. */
                    public assistQueryParams?: (google.cloud.dialogflow.v2.IAssistQueryParameters|null);

                    /**
                     * Creates a new SuggestArticlesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SuggestArticlesRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.ISuggestArticlesRequest): google.cloud.dialogflow.v2.SuggestArticlesRequest;

                    /**
                     * Encodes the specified SuggestArticlesRequest message. Does not implicitly {@link google.cloud.dialogflow.v2.SuggestArticlesRequest.verify|verify} messages.
                     * @param message SuggestArticlesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.ISuggestArticlesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

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

                    /**
                     * Decodes a SuggestArticlesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SuggestArticlesRequest
                     * @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.cloud.dialogflow.v2.SuggestArticlesRequest;

                    /**
                     * Decodes a SuggestArticlesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SuggestArticlesRequest
                     * @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.cloud.dialogflow.v2.SuggestArticlesRequest;

                    /**
                     * Verifies a SuggestArticlesRequest 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 SuggestArticlesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SuggestArticlesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.SuggestArticlesRequest;

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

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

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

                /** Properties of a SuggestArticlesResponse. */
                interface ISuggestArticlesResponse {

                    /** SuggestArticlesResponse articleAnswers */
                    articleAnswers?: (google.cloud.dialogflow.v2.IArticleAnswer[]|null);

                    /** SuggestArticlesResponse latestMessage */
                    latestMessage?: (string|null);

                    /** SuggestArticlesResponse contextSize */
                    contextSize?: (number|null);
                }

                /** Represents a SuggestArticlesResponse. */
                class SuggestArticlesResponse implements ISuggestArticlesResponse {

                    /**
                     * Constructs a new SuggestArticlesResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.ISuggestArticlesResponse);

                    /** SuggestArticlesResponse articleAnswers. */
                    public articleAnswers: google.cloud.dialogflow.v2.IArticleAnswer[];

                    /** SuggestArticlesResponse latestMessage. */
                    public latestMessage: string;

                    /** SuggestArticlesResponse contextSize. */
                    public contextSize: number;

                    /**
                     * Creates a new SuggestArticlesResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SuggestArticlesResponse instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.ISuggestArticlesResponse): google.cloud.dialogflow.v2.SuggestArticlesResponse;

                    /**
                     * Encodes the specified SuggestArticlesResponse message. Does not implicitly {@link google.cloud.dialogflow.v2.SuggestArticlesResponse.verify|verify} messages.
                     * @param message SuggestArticlesResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.ISuggestArticlesResponse, writer?: $protobuf.Writer): $protobuf.Writer;

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

                    /**
                     * Decodes a SuggestArticlesResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SuggestArticlesResponse
                     * @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.cloud.dialogflow.v2.SuggestArticlesResponse;

                    /**
                     * Decodes a SuggestArticlesResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SuggestArticlesResponse
                     * @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.cloud.dialogflow.v2.SuggestArticlesResponse;

                    /**
                     * Verifies a SuggestArticlesResponse 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 SuggestArticlesResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SuggestArticlesResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.SuggestArticlesResponse;

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

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

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

                /** Properties of a SuggestFaqAnswersRequest. */
                interface ISuggestFaqAnswersRequest {

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

                    /** SuggestFaqAnswersRequest latestMessage */
                    latestMessage?: (string|null);

                    /** SuggestFaqAnswersRequest contextSize */
                    contextSize?: (number|null);

                    /** SuggestFaqAnswersRequest assistQueryParams */
                    assistQueryParams?: (google.cloud.dialogflow.v2.IAssistQueryParameters|null);
                }

                /** Represents a SuggestFaqAnswersRequest. */
                class SuggestFaqAnswersRequest implements ISuggestFaqAnswersRequest {

                    /**
                     * Constructs a new SuggestFaqAnswersRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.ISuggestFaqAnswersRequest);

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

                    /** SuggestFaqAnswersRequest latestMessage. */
                    public latestMessage: string;

                    /** SuggestFaqAnswersRequest contextSize. */
                    public contextSize: number;

                    /** SuggestFaqAnswersRequest assistQueryParams. */
                    public assistQueryParams?: (google.cloud.dialogflow.v2.IAssistQueryParameters|null);

                    /**
                     * Creates a new SuggestFaqAnswersRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SuggestFaqAnswersRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.ISuggestFaqAnswersRequest): google.cloud.dialogflow.v2.SuggestFaqAnswersRequest;

                    /**
                     * Encodes the specified SuggestFaqAnswersRequest message. Does not implicitly {@link google.cloud.dialogflow.v2.SuggestFaqAnswersRequest.verify|verify} messages.
                     * @param message SuggestFaqAnswersRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.ISuggestFaqAnswersRequest, writer?: $protobuf.Writer): $protobuf.Writer;

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

                    /**
                     * Decodes a SuggestFaqAnswersRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SuggestFaqAnswersRequest
                     * @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.cloud.dialogflow.v2.SuggestFaqAnswersRequest;

                    /**
                     * Decodes a SuggestFaqAnswersRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SuggestFaqAnswersRequest
                     * @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.cloud.dialogflow.v2.SuggestFaqAnswersRequest;

                    /**
                     * Verifies a SuggestFaqAnswersRequest 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 SuggestFaqAnswersRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SuggestFaqAnswersRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.SuggestFaqAnswersRequest;

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

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

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

                /** Properties of a SuggestFaqAnswersResponse. */
                interface ISuggestFaqAnswersResponse {

                    /** SuggestFaqAnswersResponse faqAnswers */
                    faqAnswers?: (google.cloud.dialogflow.v2.IFaqAnswer[]|null);

                    /** SuggestFaqAnswersResponse latestMessage */
                    latestMessage?: (string|null);

                    /** SuggestFaqAnswersResponse contextSize */
                    contextSize?: (number|null);
                }

                /** Represents a SuggestFaqAnswersResponse. */
                class SuggestFaqAnswersResponse implements ISuggestFaqAnswersResponse {

                    /**
                     * Constructs a new SuggestFaqAnswersResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.ISuggestFaqAnswersResponse);

                    /** SuggestFaqAnswersResponse faqAnswers. */
                    public faqAnswers: google.cloud.dialogflow.v2.IFaqAnswer[];

                    /** SuggestFaqAnswersResponse latestMessage. */
                    public latestMessage: string;

                    /** SuggestFaqAnswersResponse contextSize. */
                    public contextSize: number;

                    /**
                     * Creates a new SuggestFaqAnswersResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SuggestFaqAnswersResponse instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.ISuggestFaqAnswersResponse): google.cloud.dialogflow.v2.SuggestFaqAnswersResponse;

                    /**
                     * Encodes the specified SuggestFaqAnswersResponse message. Does not implicitly {@link google.cloud.dialogflow.v2.SuggestFaqAnswersResponse.verify|verify} messages.
                     * @param message SuggestFaqAnswersResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.ISuggestFaqAnswersResponse, writer?: $protobuf.Writer): $protobuf.Writer;

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

                    /**
                     * Decodes a SuggestFaqAnswersResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SuggestFaqAnswersResponse
                     * @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.cloud.dialogflow.v2.SuggestFaqAnswersResponse;

                    /**
                     * Decodes a SuggestFaqAnswersResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SuggestFaqAnswersResponse
                     * @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.cloud.dialogflow.v2.SuggestFaqAnswersResponse;

                    /**
                     * Verifies a SuggestFaqAnswersResponse 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 SuggestFaqAnswersResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SuggestFaqAnswersResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.SuggestFaqAnswersResponse;

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

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

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

                /** Properties of a GenerateSuggestionsResponse. */
                interface IGenerateSuggestionsResponse {

                    /** GenerateSuggestionsResponse generatorSuggestionAnswers */
                    generatorSuggestionAnswers?: (google.cloud.dialogflow.v2.GenerateSuggestionsResponse.IGeneratorSuggestionAnswer[]|null);

                    /** GenerateSuggestionsResponse latestMessage */
                    latestMessage?: (string|null);
                }

                /** Represents a GenerateSuggestionsResponse. */
                class GenerateSuggestionsResponse implements IGenerateSuggestionsResponse {

                    /**
                     * Constructs a new GenerateSuggestionsResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IGenerateSuggestionsResponse);

                    /** GenerateSuggestionsResponse generatorSuggestionAnswers. */
                    public generatorSuggestionAnswers: google.cloud.dialogflow.v2.GenerateSuggestionsResponse.IGeneratorSuggestionAnswer[];

                    /** GenerateSuggestionsResponse latestMessage. */
                    public latestMessage: string;

                    /**
                     * Creates a new GenerateSuggestionsResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GenerateSuggestionsResponse instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IGenerateSuggestionsResponse): google.cloud.dialogflow.v2.GenerateSuggestionsResponse;

                    /**
                     * Encodes the specified GenerateSuggestionsResponse message. Does not implicitly {@link google.cloud.dialogflow.v2.GenerateSuggestionsResponse.verify|verify} messages.
                     * @param message GenerateSuggestionsResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IGenerateSuggestionsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

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

                    /**
                     * Decodes a GenerateSuggestionsResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GenerateSuggestionsResponse
                     * @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.cloud.dialogflow.v2.GenerateSuggestionsResponse;

                    /**
                     * Decodes a GenerateSuggestionsResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GenerateSuggestionsResponse
                     * @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.cloud.dialogflow.v2.GenerateSuggestionsResponse;

                    /**
                     * Verifies a GenerateSuggestionsResponse 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 GenerateSuggestionsResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GenerateSuggestionsResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.GenerateSuggestionsResponse;

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

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

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

                namespace GenerateSuggestionsResponse {

                    /** Properties of a GeneratorSuggestionAnswer. */
                    interface IGeneratorSuggestionAnswer {

                        /** GeneratorSuggestionAnswer generatorSuggestion */
                        generatorSuggestion?: (google.cloud.dialogflow.v2.IGeneratorSuggestion|null);

                        /** GeneratorSuggestionAnswer sourceGenerator */
                        sourceGenerator?: (string|null);

                        /** GeneratorSuggestionAnswer answerRecord */
                        answerRecord?: (string|null);
                    }

                    /** Represents a GeneratorSuggestionAnswer. */
                    class GeneratorSuggestionAnswer implements IGeneratorSuggestionAnswer {

                        /**
                         * Constructs a new GeneratorSuggestionAnswer.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2.GenerateSuggestionsResponse.IGeneratorSuggestionAnswer);

                        /** GeneratorSuggestionAnswer generatorSuggestion. */
                        public generatorSuggestion?: (google.cloud.dialogflow.v2.IGeneratorSuggestion|null);

                        /** GeneratorSuggestionAnswer sourceGenerator. */
                        public sourceGenerator: string;

                        /** GeneratorSuggestionAnswer answerRecord. */
                        public answerRecord: string;

                        /**
                         * Creates a new GeneratorSuggestionAnswer instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns GeneratorSuggestionAnswer instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2.GenerateSuggestionsResponse.IGeneratorSuggestionAnswer): google.cloud.dialogflow.v2.GenerateSuggestionsResponse.GeneratorSuggestionAnswer;

                        /**
                         * Encodes the specified GeneratorSuggestionAnswer message. Does not implicitly {@link google.cloud.dialogflow.v2.GenerateSuggestionsResponse.GeneratorSuggestionAnswer.verify|verify} messages.
                         * @param message GeneratorSuggestionAnswer message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2.GenerateSuggestionsResponse.IGeneratorSuggestionAnswer, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified GeneratorSuggestionAnswer message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.GenerateSuggestionsResponse.GeneratorSuggestionAnswer.verify|verify} messages.
                         * @param message GeneratorSuggestionAnswer message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2.GenerateSuggestionsResponse.IGeneratorSuggestionAnswer, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a GeneratorSuggestionAnswer message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns GeneratorSuggestionAnswer
                         * @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.cloud.dialogflow.v2.GenerateSuggestionsResponse.GeneratorSuggestionAnswer;

                        /**
                         * Decodes a GeneratorSuggestionAnswer message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns GeneratorSuggestionAnswer
                         * @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.cloud.dialogflow.v2.GenerateSuggestionsResponse.GeneratorSuggestionAnswer;

                        /**
                         * Verifies a GeneratorSuggestionAnswer 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 GeneratorSuggestionAnswer message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns GeneratorSuggestionAnswer
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.GenerateSuggestionsResponse.GeneratorSuggestionAnswer;

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

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

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

                /** Properties of a SuggestSmartRepliesRequest. */
                interface ISuggestSmartRepliesRequest {

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

                    /** SuggestSmartRepliesRequest currentTextInput */
                    currentTextInput?: (google.cloud.dialogflow.v2.ITextInput|null);

                    /** SuggestSmartRepliesRequest latestMessage */
                    latestMessage?: (string|null);

                    /** SuggestSmartRepliesRequest contextSize */
                    contextSize?: (number|null);
                }

                /** Represents a SuggestSmartRepliesRequest. */
                class SuggestSmartRepliesRequest implements ISuggestSmartRepliesRequest {

                    /**
                     * Constructs a new SuggestSmartRepliesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.ISuggestSmartRepliesRequest);

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

                    /** SuggestSmartRepliesRequest currentTextInput. */
                    public currentTextInput?: (google.cloud.dialogflow.v2.ITextInput|null);

                    /** SuggestSmartRepliesRequest latestMessage. */
                    public latestMessage: string;

                    /** SuggestSmartRepliesRequest contextSize. */
                    public contextSize: number;

                    /**
                     * Creates a new SuggestSmartRepliesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SuggestSmartRepliesRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.ISuggestSmartRepliesRequest): google.cloud.dialogflow.v2.SuggestSmartRepliesRequest;

                    /**
                     * Encodes the specified SuggestSmartRepliesRequest message. Does not implicitly {@link google.cloud.dialogflow.v2.SuggestSmartRepliesRequest.verify|verify} messages.
                     * @param message SuggestSmartRepliesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.ISuggestSmartRepliesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

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

                    /**
                     * Decodes a SuggestSmartRepliesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SuggestSmartRepliesRequest
                     * @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.cloud.dialogflow.v2.SuggestSmartRepliesRequest;

                    /**
                     * Decodes a SuggestSmartRepliesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SuggestSmartRepliesRequest
                     * @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.cloud.dialogflow.v2.SuggestSmartRepliesRequest;

                    /**
                     * Verifies a SuggestSmartRepliesRequest 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 SuggestSmartRepliesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SuggestSmartRepliesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.SuggestSmartRepliesRequest;

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

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

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

                /** Properties of a SuggestSmartRepliesResponse. */
                interface ISuggestSmartRepliesResponse {

                    /** SuggestSmartRepliesResponse smartReplyAnswers */
                    smartReplyAnswers?: (google.cloud.dialogflow.v2.ISmartReplyAnswer[]|null);

                    /** SuggestSmartRepliesResponse latestMessage */
                    latestMessage?: (string|null);

                    /** SuggestSmartRepliesResponse contextSize */
                    contextSize?: (number|null);
                }

                /** Represents a SuggestSmartRepliesResponse. */
                class SuggestSmartRepliesResponse implements ISuggestSmartRepliesResponse {

                    /**
                     * Constructs a new SuggestSmartRepliesResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.ISuggestSmartRepliesResponse);

                    /** SuggestSmartRepliesResponse smartReplyAnswers. */
                    public smartReplyAnswers: google.cloud.dialogflow.v2.ISmartReplyAnswer[];

                    /** SuggestSmartRepliesResponse latestMessage. */
                    public latestMessage: string;

                    /** SuggestSmartRepliesResponse contextSize. */
                    public contextSize: number;

                    /**
                     * Creates a new SuggestSmartRepliesResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SuggestSmartRepliesResponse instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.ISuggestSmartRepliesResponse): google.cloud.dialogflow.v2.SuggestSmartRepliesResponse;

                    /**
                     * Encodes the specified SuggestSmartRepliesResponse message. Does not implicitly {@link google.cloud.dialogflow.v2.SuggestSmartRepliesResponse.verify|verify} messages.
                     * @param message SuggestSmartRepliesResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.ISuggestSmartRepliesResponse, writer?: $protobuf.Writer): $protobuf.Writer;

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

                    /**
                     * Decodes a SuggestSmartRepliesResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SuggestSmartRepliesResponse
                     * @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.cloud.dialogflow.v2.SuggestSmartRepliesResponse;

                    /**
                     * Decodes a SuggestSmartRepliesResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SuggestSmartRepliesResponse
                     * @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.cloud.dialogflow.v2.SuggestSmartRepliesResponse;

                    /**
                     * Verifies a SuggestSmartRepliesResponse 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 SuggestSmartRepliesResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SuggestSmartRepliesResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.SuggestSmartRepliesResponse;

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

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

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

                /** Properties of an AudioInput. */
                interface IAudioInput {

                    /** AudioInput config */
                    config?: (google.cloud.dialogflow.v2.IInputAudioConfig|null);

                    /** AudioInput audio */
                    audio?: (Uint8Array|Buffer|string|null);
                }

                /** Represents an AudioInput. */
                class AudioInput implements IAudioInput {

                    /**
                     * Constructs a new AudioInput.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IAudioInput);

                    /** AudioInput config. */
                    public config?: (google.cloud.dialogflow.v2.IInputAudioConfig|null);

                    /** AudioInput audio. */
                    public audio: (Uint8Array|Buffer|string);

                    /**
                     * Creates a new AudioInput instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AudioInput instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IAudioInput): google.cloud.dialogflow.v2.AudioInput;

                    /**
                     * Encodes the specified AudioInput message. Does not implicitly {@link google.cloud.dialogflow.v2.AudioInput.verify|verify} messages.
                     * @param message AudioInput message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IAudioInput, writer?: $protobuf.Writer): $protobuf.Writer;

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

                    /**
                     * Decodes an AudioInput message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AudioInput
                     * @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.cloud.dialogflow.v2.AudioInput;

                    /**
                     * Decodes an AudioInput message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AudioInput
                     * @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.cloud.dialogflow.v2.AudioInput;

                    /**
                     * Verifies an AudioInput 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 AudioInput message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AudioInput
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.AudioInput;

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

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

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

                /** Properties of an OutputAudio. */
                interface IOutputAudio {

                    /** OutputAudio config */
                    config?: (google.cloud.dialogflow.v2.IOutputAudioConfig|null);

                    /** OutputAudio audio */
                    audio?: (Uint8Array|Buffer|string|null);
                }

                /** Represents an OutputAudio. */
                class OutputAudio implements IOutputAudio {

                    /**
                     * Constructs a new OutputAudio.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IOutputAudio);

                    /** OutputAudio config. */
                    public config?: (google.cloud.dialogflow.v2.IOutputAudioConfig|null);

                    /** OutputAudio audio. */
                    public audio: (Uint8Array|Buffer|string);

                    /**
                     * Creates a new OutputAudio instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns OutputAudio instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IOutputAudio): google.cloud.dialogflow.v2.OutputAudio;

                    /**
                     * Encodes the specified OutputAudio message. Does not implicitly {@link google.cloud.dialogflow.v2.OutputAudio.verify|verify} messages.
                     * @param message OutputAudio message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IOutputAudio, writer?: $protobuf.Writer): $protobuf.Writer;

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

                    /**
                     * Decodes an OutputAudio message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns OutputAudio
                     * @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.cloud.dialogflow.v2.OutputAudio;

                    /**
                     * Decodes an OutputAudio message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns OutputAudio
                     * @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.cloud.dialogflow.v2.OutputAudio;

                    /**
                     * Verifies an OutputAudio 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 OutputAudio message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns OutputAudio
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.OutputAudio;

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

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

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

                /** Properties of an AutomatedAgentReply. */
                interface IAutomatedAgentReply {

                    /** AutomatedAgentReply detectIntentResponse */
                    detectIntentResponse?: (google.cloud.dialogflow.v2.IDetectIntentResponse|null);

                    /** AutomatedAgentReply automatedAgentReplyType */
                    automatedAgentReplyType?: (google.cloud.dialogflow.v2.AutomatedAgentReply.AutomatedAgentReplyType|keyof typeof google.cloud.dialogflow.v2.AutomatedAgentReply.AutomatedAgentReplyType|null);

                    /** AutomatedAgentReply allowCancellation */
                    allowCancellation?: (boolean|null);

                    /** AutomatedAgentReply cxCurrentPage */
                    cxCurrentPage?: (string|null);
                }

                /** Represents an AutomatedAgentReply. */
                class AutomatedAgentReply implements IAutomatedAgentReply {

                    /**
                     * Constructs a new AutomatedAgentReply.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IAutomatedAgentReply);

                    /** AutomatedAgentReply detectIntentResponse. */
                    public detectIntentResponse?: (google.cloud.dialogflow.v2.IDetectIntentResponse|null);

                    /** AutomatedAgentReply automatedAgentReplyType. */
                    public automatedAgentReplyType: (google.cloud.dialogflow.v2.AutomatedAgentReply.AutomatedAgentReplyType|keyof typeof google.cloud.dialogflow.v2.AutomatedAgentReply.AutomatedAgentReplyType);

                    /** AutomatedAgentReply allowCancellation. */
                    public allowCancellation: boolean;

                    /** AutomatedAgentReply cxCurrentPage. */
                    public cxCurrentPage: string;

                    /**
                     * Creates a new AutomatedAgentReply instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AutomatedAgentReply instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IAutomatedAgentReply): google.cloud.dialogflow.v2.AutomatedAgentReply;

                    /**
                     * Encodes the specified AutomatedAgentReply message. Does not implicitly {@link google.cloud.dialogflow.v2.AutomatedAgentReply.verify|verify} messages.
                     * @param message AutomatedAgentReply message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IAutomatedAgentReply, writer?: $protobuf.Writer): $protobuf.Writer;

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

                    /**
                     * Decodes an AutomatedAgentReply message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AutomatedAgentReply
                     * @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.cloud.dialogflow.v2.AutomatedAgentReply;

                    /**
                     * Decodes an AutomatedAgentReply message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AutomatedAgentReply
                     * @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.cloud.dialogflow.v2.AutomatedAgentReply;

                    /**
                     * Verifies an AutomatedAgentReply 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 AutomatedAgentReply message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AutomatedAgentReply
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.AutomatedAgentReply;

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

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

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

                namespace AutomatedAgentReply {

                    /** AutomatedAgentReplyType enum. */
                    enum AutomatedAgentReplyType {
                        AUTOMATED_AGENT_REPLY_TYPE_UNSPECIFIED = 0,
                        PARTIAL = 1,
                        FINAL = 2
                    }
                }

                /** Properties of an ArticleAnswer. */
                interface IArticleAnswer {

                    /** ArticleAnswer title */
                    title?: (string|null);

                    /** ArticleAnswer uri */
                    uri?: (string|null);

                    /** ArticleAnswer snippets */
                    snippets?: (string[]|null);

                    /** ArticleAnswer confidence */
                    confidence?: (number|null);

                    /** ArticleAnswer metadata */
                    metadata?: ({ [k: string]: string }|null);

                    /** ArticleAnswer answerRecord */
                    answerRecord?: (string|null);
                }

                /** Represents an ArticleAnswer. */
                class ArticleAnswer implements IArticleAnswer {

                    /**
                     * Constructs a new ArticleAnswer.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IArticleAnswer);

                    /** ArticleAnswer title. */
                    public title: string;

                    /** ArticleAnswer uri. */
                    public uri: string;

                    /** ArticleAnswer snippets. */
                    public snippets: string[];

                    /** ArticleAnswer confidence. */
                    public confidence: number;

                    /** ArticleAnswer metadata. */
                    public metadata: { [k: string]: string };

                    /** ArticleAnswer answerRecord. */
                    public answerRecord: string;

                    /**
                     * Creates a new ArticleAnswer instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ArticleAnswer instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IArticleAnswer): google.cloud.dialogflow.v2.ArticleAnswer;

                    /**
                     * Encodes the specified ArticleAnswer message. Does not implicitly {@link google.cloud.dialogflow.v2.ArticleAnswer.verify|verify} messages.
                     * @param message ArticleAnswer message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IArticleAnswer, writer?: $protobuf.Writer): $protobuf.Writer;

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

                    /**
                     * Decodes an ArticleAnswer message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ArticleAnswer
                     * @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.cloud.dialogflow.v2.ArticleAnswer;

                    /**
                     * Decodes an ArticleAnswer message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ArticleAnswer
                     * @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.cloud.dialogflow.v2.ArticleAnswer;

                    /**
                     * Verifies an ArticleAnswer 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 ArticleAnswer message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ArticleAnswer
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.ArticleAnswer;

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

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

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

                /** Properties of a FaqAnswer. */
                interface IFaqAnswer {

                    /** FaqAnswer answer */
                    answer?: (string|null);

                    /** FaqAnswer confidence */
                    confidence?: (number|null);

                    /** FaqAnswer question */
                    question?: (string|null);

                    /** FaqAnswer source */
                    source?: (string|null);

                    /** FaqAnswer metadata */
                    metadata?: ({ [k: string]: string }|null);

                    /** FaqAnswer answerRecord */
                    answerRecord?: (string|null);
                }

                /** Represents a FaqAnswer. */
                class FaqAnswer implements IFaqAnswer {

                    /**
                     * Constructs a new FaqAnswer.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IFaqAnswer);

                    /** FaqAnswer answer. */
                    public answer: string;

                    /** FaqAnswer confidence. */
                    public confidence: number;

                    /** FaqAnswer question. */
                    public question: string;

                    /** FaqAnswer source. */
                    public source: string;

                    /** FaqAnswer metadata. */
                    public metadata: { [k: string]: string };

                    /** FaqAnswer answerRecord. */
                    public answerRecord: string;

                    /**
                     * Creates a new FaqAnswer instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns FaqAnswer instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IFaqAnswer): google.cloud.dialogflow.v2.FaqAnswer;

                    /**
                     * Encodes the specified FaqAnswer message. Does not implicitly {@link google.cloud.dialogflow.v2.FaqAnswer.verify|verify} messages.
                     * @param message FaqAnswer message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IFaqAnswer, writer?: $protobuf.Writer): $protobuf.Writer;

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

                    /**
                     * Decodes a FaqAnswer message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns FaqAnswer
                     * @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.cloud.dialogflow.v2.FaqAnswer;

                    /**
                     * Decodes a FaqAnswer message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns FaqAnswer
                     * @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.cloud.dialogflow.v2.FaqAnswer;

                    /**
                     * Verifies a FaqAnswer 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 FaqAnswer message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns FaqAnswer
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.FaqAnswer;

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

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

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

                /** Properties of a SmartReplyAnswer. */
                interface ISmartReplyAnswer {

                    /** SmartReplyAnswer reply */
                    reply?: (string|null);

                    /** SmartReplyAnswer confidence */
                    confidence?: (number|null);

                    /** SmartReplyAnswer answerRecord */
                    answerRecord?: (string|null);
                }

                /** Represents a SmartReplyAnswer. */
                class SmartReplyAnswer implements ISmartReplyAnswer {

                    /**
                     * Constructs a new SmartReplyAnswer.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.ISmartReplyAnswer);

                    /** SmartReplyAnswer reply. */
                    public reply: string;

                    /** SmartReplyAnswer confidence. */
                    public confidence: number;

                    /** SmartReplyAnswer answerRecord. */
                    public answerRecord: string;

                    /**
                     * Creates a new SmartReplyAnswer instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SmartReplyAnswer instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.ISmartReplyAnswer): google.cloud.dialogflow.v2.SmartReplyAnswer;

                    /**
                     * Encodes the specified SmartReplyAnswer message. Does not implicitly {@link google.cloud.dialogflow.v2.SmartReplyAnswer.verify|verify} messages.
                     * @param message SmartReplyAnswer message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.ISmartReplyAnswer, writer?: $protobuf.Writer): $protobuf.Writer;

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

                    /**
                     * Decodes a SmartReplyAnswer message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SmartReplyAnswer
                     * @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.cloud.dialogflow.v2.SmartReplyAnswer;

                    /**
                     * Decodes a SmartReplyAnswer message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SmartReplyAnswer
                     * @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.cloud.dialogflow.v2.SmartReplyAnswer;

                    /**
                     * Verifies a SmartReplyAnswer 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 SmartReplyAnswer message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SmartReplyAnswer
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.SmartReplyAnswer;

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

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

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

                /** Properties of an IntentSuggestion. */
                interface IIntentSuggestion {

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

                    /** IntentSuggestion intentV2 */
                    intentV2?: (string|null);

                    /** IntentSuggestion description */
                    description?: (string|null);
                }

                /** Represents an IntentSuggestion. */
                class IntentSuggestion implements IIntentSuggestion {

                    /**
                     * Constructs a new IntentSuggestion.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IIntentSuggestion);

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

                    /** IntentSuggestion intentV2. */
                    public intentV2?: (string|null);

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

                    /** IntentSuggestion intent. */
                    public intent?: "intentV2";

                    /**
                     * Creates a new IntentSuggestion instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns IntentSuggestion instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IIntentSuggestion): google.cloud.dialogflow.v2.IntentSuggestion;

                    /**
                     * Encodes the specified IntentSuggestion message. Does not implicitly {@link google.cloud.dialogflow.v2.IntentSuggestion.verify|verify} messages.
                     * @param message IntentSuggestion message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IIntentSuggestion, writer?: $protobuf.Writer): $protobuf.Writer;

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

                    /**
                     * Decodes an IntentSuggestion message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns IntentSuggestion
                     * @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.cloud.dialogflow.v2.IntentSuggestion;

                    /**
                     * Decodes an IntentSuggestion message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns IntentSuggestion
                     * @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.cloud.dialogflow.v2.IntentSuggestion;

                    /**
                     * Verifies an IntentSuggestion 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 IntentSuggestion message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns IntentSuggestion
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.IntentSuggestion;

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

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

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

                /** Properties of a DialogflowAssistAnswer. */
                interface IDialogflowAssistAnswer {

                    /** DialogflowAssistAnswer queryResult */
                    queryResult?: (google.cloud.dialogflow.v2.IQueryResult|null);

                    /** DialogflowAssistAnswer intentSuggestion */
                    intentSuggestion?: (google.cloud.dialogflow.v2.IIntentSuggestion|null);

                    /** DialogflowAssistAnswer answerRecord */
                    answerRecord?: (string|null);
                }

                /** Represents a DialogflowAssistAnswer. */
                class DialogflowAssistAnswer implements IDialogflowAssistAnswer {

                    /**
                     * Constructs a new DialogflowAssistAnswer.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IDialogflowAssistAnswer);

                    /** DialogflowAssistAnswer queryResult. */
                    public queryResult?: (google.cloud.dialogflow.v2.IQueryResult|null);

                    /** DialogflowAssistAnswer intentSuggestion. */
                    public intentSuggestion?: (google.cloud.dialogflow.v2.IIntentSuggestion|null);

                    /** DialogflowAssistAnswer answerRecord. */
                    public answerRecord: string;

                    /** DialogflowAssistAnswer result. */
                    public result?: ("queryResult"|"intentSuggestion");

                    /**
                     * Creates a new DialogflowAssistAnswer instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DialogflowAssistAnswer instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IDialogflowAssistAnswer): google.cloud.dialogflow.v2.DialogflowAssistAnswer;

                    /**
                     * Encodes the specified DialogflowAssistAnswer message. Does not implicitly {@link google.cloud.dialogflow.v2.DialogflowAssistAnswer.verify|verify} messages.
                     * @param message DialogflowAssistAnswer message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IDialogflowAssistAnswer, writer?: $protobuf.Writer): $protobuf.Writer;

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

                    /**
                     * Decodes a DialogflowAssistAnswer message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DialogflowAssistAnswer
                     * @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.cloud.dialogflow.v2.DialogflowAssistAnswer;

                    /**
                     * Decodes a DialogflowAssistAnswer message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DialogflowAssistAnswer
                     * @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.cloud.dialogflow.v2.DialogflowAssistAnswer;

                    /**
                     * Verifies a DialogflowAssistAnswer 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 DialogflowAssistAnswer message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DialogflowAssistAnswer
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.DialogflowAssistAnswer;

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

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

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

                /** Properties of a SuggestionResult. */
                interface ISuggestionResult {

                    /** SuggestionResult error */
                    error?: (google.rpc.IStatus|null);

                    /** SuggestionResult suggestArticlesResponse */
                    suggestArticlesResponse?: (google.cloud.dialogflow.v2.ISuggestArticlesResponse|null);

                    /** SuggestionResult suggestKnowledgeAssistResponse */
                    suggestKnowledgeAssistResponse?: (google.cloud.dialogflow.v2.ISuggestKnowledgeAssistResponse|null);

                    /** SuggestionResult suggestFaqAnswersResponse */
                    suggestFaqAnswersResponse?: (google.cloud.dialogflow.v2.ISuggestFaqAnswersResponse|null);

                    /** SuggestionResult suggestSmartRepliesResponse */
                    suggestSmartRepliesResponse?: (google.cloud.dialogflow.v2.ISuggestSmartRepliesResponse|null);

                    /** SuggestionResult generateSuggestionsResponse */
                    generateSuggestionsResponse?: (google.cloud.dialogflow.v2.IGenerateSuggestionsResponse|null);
                }

                /** Represents a SuggestionResult. */
                class SuggestionResult implements ISuggestionResult {

                    /**
                     * Constructs a new SuggestionResult.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.ISuggestionResult);

                    /** SuggestionResult error. */
                    public error?: (google.rpc.IStatus|null);

                    /** SuggestionResult suggestArticlesResponse. */
                    public suggestArticlesResponse?: (google.cloud.dialogflow.v2.ISuggestArticlesResponse|null);

                    /** SuggestionResult suggestKnowledgeAssistResponse. */
                    public suggestKnowledgeAssistResponse?: (google.cloud.dialogflow.v2.ISuggestKnowledgeAssistResponse|null);

                    /** SuggestionResult suggestFaqAnswersResponse. */
                    public suggestFaqAnswersResponse?: (google.cloud.dialogflow.v2.ISuggestFaqAnswersResponse|null);

                    /** SuggestionResult suggestSmartRepliesResponse. */
                    public suggestSmartRepliesResponse?: (google.cloud.dialogflow.v2.ISuggestSmartRepliesResponse|null);

                    /** SuggestionResult generateSuggestionsResponse. */
                    public generateSuggestionsResponse?: (google.cloud.dialogflow.v2.IGenerateSuggestionsResponse|null);

                    /** SuggestionResult suggestionResponse. */
                    public suggestionResponse?: ("error"|"suggestArticlesResponse"|"suggestKnowledgeAssistResponse"|"suggestFaqAnswersResponse"|"suggestSmartRepliesResponse"|"generateSuggestionsResponse");

                    /**
                     * Creates a new SuggestionResult instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SuggestionResult instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.ISuggestionResult): google.cloud.dialogflow.v2.SuggestionResult;

                    /**
                     * Encodes the specified SuggestionResult message. Does not implicitly {@link google.cloud.dialogflow.v2.SuggestionResult.verify|verify} messages.
                     * @param message SuggestionResult message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.ISuggestionResult, writer?: $protobuf.Writer): $protobuf.Writer;

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

                    /**
                     * Decodes a SuggestionResult message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SuggestionResult
                     * @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.cloud.dialogflow.v2.SuggestionResult;

                    /**
                     * Decodes a SuggestionResult message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SuggestionResult
                     * @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.cloud.dialogflow.v2.SuggestionResult;

                    /**
                     * Verifies a SuggestionResult 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 SuggestionResult message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SuggestionResult
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.SuggestionResult;

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

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

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

                /** Properties of an InputTextConfig. */
                interface IInputTextConfig {

                    /** InputTextConfig languageCode */
                    languageCode?: (string|null);
                }

                /** Represents an InputTextConfig. */
                class InputTextConfig implements IInputTextConfig {

                    /**
                     * Constructs a new InputTextConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IInputTextConfig);

                    /** InputTextConfig languageCode. */
                    public languageCode: string;

                    /**
                     * Creates a new InputTextConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InputTextConfig instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IInputTextConfig): google.cloud.dialogflow.v2.InputTextConfig;

                    /**
                     * Encodes the specified InputTextConfig message. Does not implicitly {@link google.cloud.dialogflow.v2.InputTextConfig.verify|verify} messages.
                     * @param message InputTextConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IInputTextConfig, writer?: $protobuf.Writer): $protobuf.Writer;

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

                    /**
                     * Decodes an InputTextConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InputTextConfig
                     * @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.cloud.dialogflow.v2.InputTextConfig;

                    /**
                     * Decodes an InputTextConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InputTextConfig
                     * @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.cloud.dialogflow.v2.InputTextConfig;

                    /**
                     * Verifies an InputTextConfig 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 InputTextConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InputTextConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.InputTextConfig;

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

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

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

                /** Properties of an AnnotatedMessagePart. */
                interface IAnnotatedMessagePart {

                    /** AnnotatedMessagePart text */
                    text?: (string|null);

                    /** AnnotatedMessagePart entityType */
                    entityType?: (string|null);

                    /** AnnotatedMessagePart formattedValue */
                    formattedValue?: (google.protobuf.IValue|null);
                }

                /** Represents an AnnotatedMessagePart. */
                class AnnotatedMessagePart implements IAnnotatedMessagePart {

                    /**
                     * Constructs a new AnnotatedMessagePart.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IAnnotatedMessagePart);

                    /** AnnotatedMessagePart text. */
                    public text: string;

                    /** AnnotatedMessagePart entityType. */
                    public entityType: string;

                    /** AnnotatedMessagePart formattedValue. */
                    public formattedValue?: (google.protobuf.IValue|null);

                    /**
                     * Creates a new AnnotatedMessagePart instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AnnotatedMessagePart instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IAnnotatedMessagePart): google.cloud.dialogflow.v2.AnnotatedMessagePart;

                    /**
                     * Encodes the specified AnnotatedMessagePart message. Does not implicitly {@link google.cloud.dialogflow.v2.AnnotatedMessagePart.verify|verify} messages.
                     * @param message AnnotatedMessagePart message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IAnnotatedMessagePart, writer?: $protobuf.Writer): $protobuf.Writer;

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

                    /**
                     * Decodes an AnnotatedMessagePart message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AnnotatedMessagePart
                     * @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.cloud.dialogflow.v2.AnnotatedMessagePart;

                    /**
                     * Decodes an AnnotatedMessagePart message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AnnotatedMessagePart
                     * @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.cloud.dialogflow.v2.AnnotatedMessagePart;

                    /**
                     * Verifies an AnnotatedMessagePart 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 AnnotatedMessagePart message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AnnotatedMessagePart
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.AnnotatedMessagePart;

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

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

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

                /** Properties of a MessageAnnotation. */
                interface IMessageAnnotation {

                    /** MessageAnnotation parts */
                    parts?: (google.cloud.dialogflow.v2.IAnnotatedMessagePart[]|null);

                    /** MessageAnnotation containEntities */
                    containEntities?: (boolean|null);
                }

                /** Represents a MessageAnnotation. */
                class MessageAnnotation implements IMessageAnnotation {

                    /**
                     * Constructs a new MessageAnnotation.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IMessageAnnotation);

                    /** MessageAnnotation parts. */
                    public parts: google.cloud.dialogflow.v2.IAnnotatedMessagePart[];

                    /** MessageAnnotation containEntities. */
                    public containEntities: boolean;

                    /**
                     * Creates a new MessageAnnotation instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns MessageAnnotation instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IMessageAnnotation): google.cloud.dialogflow.v2.MessageAnnotation;

                    /**
                     * Encodes the specified MessageAnnotation message. Does not implicitly {@link google.cloud.dialogflow.v2.MessageAnnotation.verify|verify} messages.
                     * @param message MessageAnnotation message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IMessageAnnotation, writer?: $protobuf.Writer): $protobuf.Writer;

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

                    /**
                     * Decodes a MessageAnnotation message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns MessageAnnotation
                     * @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.cloud.dialogflow.v2.MessageAnnotation;

                    /**
                     * Decodes a MessageAnnotation message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns MessageAnnotation
                     * @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.cloud.dialogflow.v2.MessageAnnotation;

                    /**
                     * Verifies a MessageAnnotation 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 MessageAnnotation message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns MessageAnnotation
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.MessageAnnotation;

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

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

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

                /** Properties of a SuggestionInput. */
                interface ISuggestionInput {

                    /** SuggestionInput answerRecord */
                    answerRecord?: (string|null);

                    /** SuggestionInput parameters */
                    parameters?: (google.protobuf.IStruct|null);

                    /** SuggestionInput action */
                    action?: (google.cloud.dialogflow.v2.SuggestionInput.Action|keyof typeof google.cloud.dialogflow.v2.SuggestionInput.Action|null);

                    /** SuggestionInput sendTime */
                    sendTime?: (google.protobuf.ITimestamp|null);
                }

                /** Represents a SuggestionInput. */
                class SuggestionInput implements ISuggestionInput {

                    /**
                     * Constructs a new SuggestionInput.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.ISuggestionInput);

                    /** SuggestionInput answerRecord. */
                    public answerRecord: string;

                    /** SuggestionInput parameters. */
                    public parameters?: (google.protobuf.IStruct|null);

                    /** SuggestionInput action. */
                    public action: (google.cloud.dialogflow.v2.SuggestionInput.Action|keyof typeof google.cloud.dialogflow.v2.SuggestionInput.Action);

                    /** SuggestionInput sendTime. */
                    public sendTime?: (google.protobuf.ITimestamp|null);

                    /**
                     * Creates a new SuggestionInput instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SuggestionInput instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.ISuggestionInput): google.cloud.dialogflow.v2.SuggestionInput;

                    /**
                     * Encodes the specified SuggestionInput message. Does not implicitly {@link google.cloud.dialogflow.v2.SuggestionInput.verify|verify} messages.
                     * @param message SuggestionInput message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.ISuggestionInput, writer?: $protobuf.Writer): $protobuf.Writer;

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

                    /**
                     * Decodes a SuggestionInput message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SuggestionInput
                     * @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.cloud.dialogflow.v2.SuggestionInput;

                    /**
                     * Decodes a SuggestionInput message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SuggestionInput
                     * @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.cloud.dialogflow.v2.SuggestionInput;

                    /**
                     * Verifies a SuggestionInput 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 SuggestionInput message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SuggestionInput
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.SuggestionInput;

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

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

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

                namespace SuggestionInput {

                    /** Action enum. */
                    enum Action {
                        ACTION_UNSPECIFIED = 0,
                        CANCEL = 1,
                        REVISE = 2,
                        CONFIRM = 3
                    }
                }

                /** Properties of an AssistQueryParameters. */
                interface IAssistQueryParameters {

                    /** AssistQueryParameters documentsMetadataFilters */
                    documentsMetadataFilters?: ({ [k: string]: string }|null);
                }

                /** Represents an AssistQueryParameters. */
                class AssistQueryParameters implements IAssistQueryParameters {

                    /**
                     * Constructs a new AssistQueryParameters.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IAssistQueryParameters);

                    /** AssistQueryParameters documentsMetadataFilters. */
                    public documentsMetadataFilters: { [k: string]: string };

                    /**
                     * Creates a new AssistQueryParameters instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AssistQueryParameters instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IAssistQueryParameters): google.cloud.dialogflow.v2.AssistQueryParameters;

                    /**
                     * Encodes the specified AssistQueryParameters message. Does not implicitly {@link google.cloud.dialogflow.v2.AssistQueryParameters.verify|verify} messages.
                     * @param message AssistQueryParameters message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IAssistQueryParameters, writer?: $protobuf.Writer): $protobuf.Writer;

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

                    /**
                     * Decodes an AssistQueryParameters message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AssistQueryParameters
                     * @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.cloud.dialogflow.v2.AssistQueryParameters;

                    /**
                     * Decodes an AssistQueryParameters message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AssistQueryParameters
                     * @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.cloud.dialogflow.v2.AssistQueryParameters;

                    /**
                     * Verifies an AssistQueryParameters 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 AssistQueryParameters message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AssistQueryParameters
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.AssistQueryParameters;

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

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

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

                /** Properties of a SuggestKnowledgeAssistRequest. */
                interface ISuggestKnowledgeAssistRequest {

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

                    /** SuggestKnowledgeAssistRequest latestMessage */
                    latestMessage?: (string|null);

                    /** SuggestKnowledgeAssistRequest contextSize */
                    contextSize?: (number|null);

                    /** SuggestKnowledgeAssistRequest previousSuggestedQuery */
                    previousSuggestedQuery?: (string|null);
                }

                /** Represents a SuggestKnowledgeAssistRequest. */
                class SuggestKnowledgeAssistRequest implements ISuggestKnowledgeAssistRequest {

                    /**
                     * Constructs a new SuggestKnowledgeAssistRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.ISuggestKnowledgeAssistRequest);

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

                    /** SuggestKnowledgeAssistRequest latestMessage. */
                    public latestMessage: string;

                    /** SuggestKnowledgeAssistRequest contextSize. */
                    public contextSize: number;

                    /** SuggestKnowledgeAssistRequest previousSuggestedQuery. */
                    public previousSuggestedQuery: string;

                    /**
                     * Creates a new SuggestKnowledgeAssistRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SuggestKnowledgeAssistRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.ISuggestKnowledgeAssistRequest): google.cloud.dialogflow.v2.SuggestKnowledgeAssistRequest;

                    /**
                     * Encodes the specified SuggestKnowledgeAssistRequest message. Does not implicitly {@link google.cloud.dialogflow.v2.SuggestKnowledgeAssistRequest.verify|verify} messages.
                     * @param message SuggestKnowledgeAssistRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.ISuggestKnowledgeAssistRequest, writer?: $protobuf.Writer): $protobuf.Writer;

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

                    /**
                     * Decodes a SuggestKnowledgeAssistRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SuggestKnowledgeAssistRequest
                     * @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.cloud.dialogflow.v2.SuggestKnowledgeAssistRequest;

                    /**
                     * Decodes a SuggestKnowledgeAssistRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SuggestKnowledgeAssistRequest
                     * @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.cloud.dialogflow.v2.SuggestKnowledgeAssistRequest;

                    /**
                     * Verifies a SuggestKnowledgeAssistRequest 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 SuggestKnowledgeAssistRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SuggestKnowledgeAssistRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.SuggestKnowledgeAssistRequest;

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

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

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

                /** Properties of a SuggestKnowledgeAssistResponse. */
                interface ISuggestKnowledgeAssistResponse {

                    /** SuggestKnowledgeAssistResponse knowledgeAssistAnswer */
                    knowledgeAssistAnswer?: (google.cloud.dialogflow.v2.IKnowledgeAssistAnswer|null);

                    /** SuggestKnowledgeAssistResponse latestMessage */
                    latestMessage?: (string|null);

                    /** SuggestKnowledgeAssistResponse contextSize */
                    contextSize?: (number|null);
                }

                /** Represents a SuggestKnowledgeAssistResponse. */
                class SuggestKnowledgeAssistResponse implements ISuggestKnowledgeAssistResponse {

                    /**
                     * Constructs a new SuggestKnowledgeAssistResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.ISuggestKnowledgeAssistResponse);

                    /** SuggestKnowledgeAssistResponse knowledgeAssistAnswer. */
                    public knowledgeAssistAnswer?: (google.cloud.dialogflow.v2.IKnowledgeAssistAnswer|null);

                    /** SuggestKnowledgeAssistResponse latestMessage. */
                    public latestMessage: string;

                    /** SuggestKnowledgeAssistResponse contextSize. */
                    public contextSize: number;

                    /**
                     * Creates a new SuggestKnowledgeAssistResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SuggestKnowledgeAssistResponse instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.ISuggestKnowledgeAssistResponse): google.cloud.dialogflow.v2.SuggestKnowledgeAssistResponse;

                    /**
                     * Encodes the specified SuggestKnowledgeAssistResponse message. Does not implicitly {@link google.cloud.dialogflow.v2.SuggestKnowledgeAssistResponse.verify|verify} messages.
                     * @param message SuggestKnowledgeAssistResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.ISuggestKnowledgeAssistResponse, writer?: $protobuf.Writer): $protobuf.Writer;

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

                    /**
                     * Decodes a SuggestKnowledgeAssistResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SuggestKnowledgeAssistResponse
                     * @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.cloud.dialogflow.v2.SuggestKnowledgeAssistResponse;

                    /**
                     * Decodes a SuggestKnowledgeAssistResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SuggestKnowledgeAssistResponse
                     * @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.cloud.dialogflow.v2.SuggestKnowledgeAssistResponse;

                    /**
                     * Verifies a SuggestKnowledgeAssistResponse 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 SuggestKnowledgeAssistResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SuggestKnowledgeAssistResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.SuggestKnowledgeAssistResponse;

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

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

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

                /** Properties of an IngestedContextReferenceDebugInfo. */
                interface IIngestedContextReferenceDebugInfo {

                    /** IngestedContextReferenceDebugInfo projectNotAllowlisted */
                    projectNotAllowlisted?: (boolean|null);

                    /** IngestedContextReferenceDebugInfo contextReferenceRetrieved */
                    contextReferenceRetrieved?: (boolean|null);

                    /** IngestedContextReferenceDebugInfo ingestedParametersDebugInfo */
                    ingestedParametersDebugInfo?: (google.cloud.dialogflow.v2.IngestedContextReferenceDebugInfo.IIngestedParameterDebugInfo[]|null);
                }

                /** Represents an IngestedContextReferenceDebugInfo. */
                class IngestedContextReferenceDebugInfo implements IIngestedContextReferenceDebugInfo {

                    /**
                     * Constructs a new IngestedContextReferenceDebugInfo.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IIngestedContextReferenceDebugInfo);

                    /** IngestedContextReferenceDebugInfo projectNotAllowlisted. */
                    public projectNotAllowlisted: boolean;

                    /** IngestedContextReferenceDebugInfo contextReferenceRetrieved. */
                    public contextReferenceRetrieved: boolean;

                    /** IngestedContextReferenceDebugInfo ingestedParametersDebugInfo. */
                    public ingestedParametersDebugInfo: google.cloud.dialogflow.v2.IngestedContextReferenceDebugInfo.IIngestedParameterDebugInfo[];

                    /**
                     * Creates a new IngestedContextReferenceDebugInfo instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns IngestedContextReferenceDebugInfo instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IIngestedContextReferenceDebugInfo): google.cloud.dialogflow.v2.IngestedContextReferenceDebugInfo;

                    /**
                     * Encodes the specified IngestedContextReferenceDebugInfo message. Does not implicitly {@link google.cloud.dialogflow.v2.IngestedContextReferenceDebugInfo.verify|verify} messages.
                     * @param message IngestedContextReferenceDebugInfo message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IIngestedContextReferenceDebugInfo, writer?: $protobuf.Writer): $protobuf.Writer;

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

                    /**
                     * Decodes an IngestedContextReferenceDebugInfo message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns IngestedContextReferenceDebugInfo
                     * @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.cloud.dialogflow.v2.IngestedContextReferenceDebugInfo;

                    /**
                     * Decodes an IngestedContextReferenceDebugInfo message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns IngestedContextReferenceDebugInfo
                     * @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.cloud.dialogflow.v2.IngestedContextReferenceDebugInfo;

                    /**
                     * Verifies an IngestedContextReferenceDebugInfo 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 IngestedContextReferenceDebugInfo message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns IngestedContextReferenceDebugInfo
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.IngestedContextReferenceDebugInfo;

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

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

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

                namespace IngestedContextReferenceDebugInfo {

                    /** Properties of an IngestedParameterDebugInfo. */
                    interface IIngestedParameterDebugInfo {

                        /** IngestedParameterDebugInfo parameter */
                        parameter?: (string|null);

                        /** IngestedParameterDebugInfo ingestionStatus */
                        ingestionStatus?: (google.cloud.dialogflow.v2.IngestedContextReferenceDebugInfo.IngestedParameterDebugInfo.IngestionStatus|keyof typeof google.cloud.dialogflow.v2.IngestedContextReferenceDebugInfo.IngestedParameterDebugInfo.IngestionStatus|null);
                    }

                    /** Represents an IngestedParameterDebugInfo. */
                    class IngestedParameterDebugInfo implements IIngestedParameterDebugInfo {

                        /**
                         * Constructs a new IngestedParameterDebugInfo.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2.IngestedContextReferenceDebugInfo.IIngestedParameterDebugInfo);

                        /** IngestedParameterDebugInfo parameter. */
                        public parameter: string;

                        /** IngestedParameterDebugInfo ingestionStatus. */
                        public ingestionStatus: (google.cloud.dialogflow.v2.IngestedContextReferenceDebugInfo.IngestedParameterDebugInfo.IngestionStatus|keyof typeof google.cloud.dialogflow.v2.IngestedContextReferenceDebugInfo.IngestedParameterDebugInfo.IngestionStatus);

                        /**
                         * Creates a new IngestedParameterDebugInfo instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns IngestedParameterDebugInfo instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2.IngestedContextReferenceDebugInfo.IIngestedParameterDebugInfo): google.cloud.dialogflow.v2.IngestedContextReferenceDebugInfo.IngestedParameterDebugInfo;

                        /**
                         * Encodes the specified IngestedParameterDebugInfo message. Does not implicitly {@link google.cloud.dialogflow.v2.IngestedContextReferenceDebugInfo.IngestedParameterDebugInfo.verify|verify} messages.
                         * @param message IngestedParameterDebugInfo message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2.IngestedContextReferenceDebugInfo.IIngestedParameterDebugInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified IngestedParameterDebugInfo message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.IngestedContextReferenceDebugInfo.IngestedParameterDebugInfo.verify|verify} messages.
                         * @param message IngestedParameterDebugInfo message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2.IngestedContextReferenceDebugInfo.IIngestedParameterDebugInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes an IngestedParameterDebugInfo message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns IngestedParameterDebugInfo
                         * @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.cloud.dialogflow.v2.IngestedContextReferenceDebugInfo.IngestedParameterDebugInfo;

                        /**
                         * Decodes an IngestedParameterDebugInfo message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns IngestedParameterDebugInfo
                         * @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.cloud.dialogflow.v2.IngestedContextReferenceDebugInfo.IngestedParameterDebugInfo;

                        /**
                         * Verifies an IngestedParameterDebugInfo 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 IngestedParameterDebugInfo message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns IngestedParameterDebugInfo
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.IngestedContextReferenceDebugInfo.IngestedParameterDebugInfo;

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

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

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

                    namespace IngestedParameterDebugInfo {

                        /** IngestionStatus enum. */
                        enum IngestionStatus {
                            INGESTION_STATUS_UNSPECIFIED = 0,
                            INGESTION_STATUS_SUCCEEDED = 1,
                            INGESTION_STATUS_CONTEXT_NOT_AVAILABLE = 2,
                            INGESTION_STATUS_PARSE_FAILED = 3,
                            INGESTION_STATUS_INVALID_ENTRY = 4,
                            INGESTION_STATUS_INVALID_FORMAT = 5,
                            INGESTION_STATUS_LANGUAGE_MISMATCH = 6
                        }
                    }
                }

                /** Properties of a ServiceLatency. */
                interface IServiceLatency {

                    /** ServiceLatency internalServiceLatencies */
                    internalServiceLatencies?: (google.cloud.dialogflow.v2.ServiceLatency.IInternalServiceLatency[]|null);
                }

                /** Represents a ServiceLatency. */
                class ServiceLatency implements IServiceLatency {

                    /**
                     * Constructs a new ServiceLatency.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IServiceLatency);

                    /** ServiceLatency internalServiceLatencies. */
                    public internalServiceLatencies: google.cloud.dialogflow.v2.ServiceLatency.IInternalServiceLatency[];

                    /**
                     * Creates a new ServiceLatency instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ServiceLatency instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IServiceLatency): google.cloud.dialogflow.v2.ServiceLatency;

                    /**
                     * Encodes the specified ServiceLatency message. Does not implicitly {@link google.cloud.dialogflow.v2.ServiceLatency.verify|verify} messages.
                     * @param message ServiceLatency message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IServiceLatency, writer?: $protobuf.Writer): $protobuf.Writer;

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

                    /**
                     * Decodes a ServiceLatency message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ServiceLatency
                     * @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.cloud.dialogflow.v2.ServiceLatency;

                    /**
                     * Decodes a ServiceLatency message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ServiceLatency
                     * @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.cloud.dialogflow.v2.ServiceLatency;

                    /**
                     * Verifies a ServiceLatency 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 ServiceLatency message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ServiceLatency
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.ServiceLatency;

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

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

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

                namespace ServiceLatency {

                    /** Properties of an InternalServiceLatency. */
                    interface IInternalServiceLatency {

                        /** InternalServiceLatency step */
                        step?: (string|null);

                        /** InternalServiceLatency latencyMs */
                        latencyMs?: (number|null);

                        /** InternalServiceLatency startTime */
                        startTime?: (google.protobuf.ITimestamp|null);

                        /** InternalServiceLatency completeTime */
                        completeTime?: (google.protobuf.ITimestamp|null);
                    }

                    /** Represents an InternalServiceLatency. */
                    class InternalServiceLatency implements IInternalServiceLatency {

                        /**
                         * Constructs a new InternalServiceLatency.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2.ServiceLatency.IInternalServiceLatency);

                        /** InternalServiceLatency step. */
                        public step: string;

                        /** InternalServiceLatency latencyMs. */
                        public latencyMs: number;

                        /** InternalServiceLatency startTime. */
                        public startTime?: (google.protobuf.ITimestamp|null);

                        /** InternalServiceLatency completeTime. */
                        public completeTime?: (google.protobuf.ITimestamp|null);

                        /**
                         * Creates a new InternalServiceLatency instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns InternalServiceLatency instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2.ServiceLatency.IInternalServiceLatency): google.cloud.dialogflow.v2.ServiceLatency.InternalServiceLatency;

                        /**
                         * Encodes the specified InternalServiceLatency message. Does not implicitly {@link google.cloud.dialogflow.v2.ServiceLatency.InternalServiceLatency.verify|verify} messages.
                         * @param message InternalServiceLatency message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2.ServiceLatency.IInternalServiceLatency, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified InternalServiceLatency message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.ServiceLatency.InternalServiceLatency.verify|verify} messages.
                         * @param message InternalServiceLatency message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2.ServiceLatency.IInternalServiceLatency, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes an InternalServiceLatency message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns InternalServiceLatency
                         * @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.cloud.dialogflow.v2.ServiceLatency.InternalServiceLatency;

                        /**
                         * Decodes an InternalServiceLatency message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns InternalServiceLatency
                         * @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.cloud.dialogflow.v2.ServiceLatency.InternalServiceLatency;

                        /**
                         * Verifies an InternalServiceLatency 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 InternalServiceLatency message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns InternalServiceLatency
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.ServiceLatency.InternalServiceLatency;

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

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

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

                /** Properties of a KnowledgeAssistDebugInfo. */
                interface IKnowledgeAssistDebugInfo {

                    /** KnowledgeAssistDebugInfo queryGenerationFailureReason */
                    queryGenerationFailureReason?: (google.cloud.dialogflow.v2.KnowledgeAssistDebugInfo.QueryGenerationFailureReason|keyof typeof google.cloud.dialogflow.v2.KnowledgeAssistDebugInfo.QueryGenerationFailureReason|null);

                    /** KnowledgeAssistDebugInfo queryCategorizationFailureReason */
                    queryCategorizationFailureReason?: (google.cloud.dialogflow.v2.KnowledgeAssistDebugInfo.QueryCategorizationFailureReason|keyof typeof google.cloud.dialogflow.v2.KnowledgeAssistDebugInfo.QueryCategorizationFailureReason|null);

                    /** KnowledgeAssistDebugInfo datastoreResponseReason */
                    datastoreResponseReason?: (google.cloud.dialogflow.v2.DatastoreResponseReason|keyof typeof google.cloud.dialogflow.v2.DatastoreResponseReason|null);

                    /** KnowledgeAssistDebugInfo knowledgeAssistBehavior */
                    knowledgeAssistBehavior?: (google.cloud.dialogflow.v2.KnowledgeAssistDebugInfo.IKnowledgeAssistBehavior|null);

                    /** KnowledgeAssistDebugInfo ingestedContextReferenceDebugInfo */
                    ingestedContextReferenceDebugInfo?: (google.cloud.dialogflow.v2.IIngestedContextReferenceDebugInfo|null);

                    /** KnowledgeAssistDebugInfo serviceLatency */
                    serviceLatency?: (google.cloud.dialogflow.v2.IServiceLatency|null);
                }

                /** Represents a KnowledgeAssistDebugInfo. */
                class KnowledgeAssistDebugInfo implements IKnowledgeAssistDebugInfo {

                    /**
                     * Constructs a new KnowledgeAssistDebugInfo.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IKnowledgeAssistDebugInfo);

                    /** KnowledgeAssistDebugInfo queryGenerationFailureReason. */
                    public queryGenerationFailureReason: (google.cloud.dialogflow.v2.KnowledgeAssistDebugInfo.QueryGenerationFailureReason|keyof typeof google.cloud.dialogflow.v2.KnowledgeAssistDebugInfo.QueryGenerationFailureReason);

                    /** KnowledgeAssistDebugInfo queryCategorizationFailureReason. */
                    public queryCategorizationFailureReason: (google.cloud.dialogflow.v2.KnowledgeAssistDebugInfo.QueryCategorizationFailureReason|keyof typeof google.cloud.dialogflow.v2.KnowledgeAssistDebugInfo.QueryCategorizationFailureReason);

                    /** KnowledgeAssistDebugInfo datastoreResponseReason. */
                    public datastoreResponseReason: (google.cloud.dialogflow.v2.DatastoreResponseReason|keyof typeof google.cloud.dialogflow.v2.DatastoreResponseReason);

                    /** KnowledgeAssistDebugInfo knowledgeAssistBehavior. */
                    public knowledgeAssistBehavior?: (google.cloud.dialogflow.v2.KnowledgeAssistDebugInfo.IKnowledgeAssistBehavior|null);

                    /** KnowledgeAssistDebugInfo ingestedContextReferenceDebugInfo. */
                    public ingestedContextReferenceDebugInfo?: (google.cloud.dialogflow.v2.IIngestedContextReferenceDebugInfo|null);

                    /** KnowledgeAssistDebugInfo serviceLatency. */
                    public serviceLatency?: (google.cloud.dialogflow.v2.IServiceLatency|null);

                    /**
                     * Creates a new KnowledgeAssistDebugInfo instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns KnowledgeAssistDebugInfo instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IKnowledgeAssistDebugInfo): google.cloud.dialogflow.v2.KnowledgeAssistDebugInfo;

                    /**
                     * Encodes the specified KnowledgeAssistDebugInfo message. Does not implicitly {@link google.cloud.dialogflow.v2.KnowledgeAssistDebugInfo.verify|verify} messages.
                     * @param message KnowledgeAssistDebugInfo message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IKnowledgeAssistDebugInfo, writer?: $protobuf.Writer): $protobuf.Writer;

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

                    /**
                     * Decodes a KnowledgeAssistDebugInfo message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns KnowledgeAssistDebugInfo
                     * @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.cloud.dialogflow.v2.KnowledgeAssistDebugInfo;

                    /**
                     * Decodes a KnowledgeAssistDebugInfo message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns KnowledgeAssistDebugInfo
                     * @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.cloud.dialogflow.v2.KnowledgeAssistDebugInfo;

                    /**
                     * Verifies a KnowledgeAssistDebugInfo 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 KnowledgeAssistDebugInfo message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns KnowledgeAssistDebugInfo
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.KnowledgeAssistDebugInfo;

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

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

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

                namespace KnowledgeAssistDebugInfo {

                    /** QueryGenerationFailureReason enum. */
                    enum QueryGenerationFailureReason {
                        QUERY_GENERATION_FAILURE_REASON_UNSPECIFIED = 0,
                        QUERY_GENERATION_OUT_OF_QUOTA = 1,
                        QUERY_GENERATION_FAILED = 2,
                        QUERY_GENERATION_NO_QUERY_GENERATED = 3,
                        QUERY_GENERATION_RAI_FAILED = 4,
                        NOT_IN_ALLOWLIST = 5,
                        QUERY_GENERATION_QUERY_REDACTED = 6,
                        QUERY_GENERATION_LLM_RESPONSE_PARSE_FAILED = 10,
                        QUERY_GENERATION_EMPTY_CONVERSATION = 11,
                        QUERY_GENERATION_EMPTY_LAST_MESSAGE = 12,
                        QUERY_GENERATION_TRIGGERING_EVENT_CONDITION_NOT_MET = 13
                    }

                    /** QueryCategorizationFailureReason enum. */
                    enum QueryCategorizationFailureReason {
                        QUERY_CATEGORIZATION_FAILURE_REASON_UNSPECIFIED = 0,
                        QUERY_CATEGORIZATION_INVALID_CONFIG = 1,
                        QUERY_CATEGORIZATION_RESULT_NOT_FOUND = 2,
                        QUERY_CATEGORIZATION_FAILED = 3
                    }

                    /** Properties of a KnowledgeAssistBehavior. */
                    interface IKnowledgeAssistBehavior {

                        /** KnowledgeAssistBehavior answerGenerationRewriterOn */
                        answerGenerationRewriterOn?: (boolean|null);

                        /** KnowledgeAssistBehavior endUserMetadataIncluded */
                        endUserMetadataIncluded?: (boolean|null);

                        /** KnowledgeAssistBehavior returnQueryOnly */
                        returnQueryOnly?: (boolean|null);

                        /** KnowledgeAssistBehavior usePubsubDelivery */
                        usePubsubDelivery?: (boolean|null);

                        /** KnowledgeAssistBehavior disableSyncDelivery */
                        disableSyncDelivery?: (boolean|null);

                        /** KnowledgeAssistBehavior previousQueriesIncluded */
                        previousQueriesIncluded?: (boolean|null);

                        /** KnowledgeAssistBehavior useTranslatedMessage */
                        useTranslatedMessage?: (boolean|null);

                        /** KnowledgeAssistBehavior useCustomSafetyFilterLevel */
                        useCustomSafetyFilterLevel?: (boolean|null);

                        /** KnowledgeAssistBehavior conversationTranscriptHasMixedLanguages */
                        conversationTranscriptHasMixedLanguages?: (boolean|null);

                        /** KnowledgeAssistBehavior queryGenerationAgentLanguageMismatch */
                        queryGenerationAgentLanguageMismatch?: (boolean|null);

                        /** KnowledgeAssistBehavior queryGenerationEndUserLanguageMismatch */
                        queryGenerationEndUserLanguageMismatch?: (boolean|null);

                        /** KnowledgeAssistBehavior thirdPartyConnectorAllowed */
                        thirdPartyConnectorAllowed?: (boolean|null);

                        /** KnowledgeAssistBehavior multipleQueriesGenerated */
                        multipleQueriesGenerated?: (boolean|null);

                        /** KnowledgeAssistBehavior queryContainedSearchContext */
                        queryContainedSearchContext?: (boolean|null);

                        /** KnowledgeAssistBehavior invalidItemsQuerySuggestionSkipped */
                        invalidItemsQuerySuggestionSkipped?: (boolean|null);

                        /** KnowledgeAssistBehavior primaryQueryRedactedAndReplaced */
                        primaryQueryRedactedAndReplaced?: (boolean|null);

                        /** KnowledgeAssistBehavior appendedSearchContextCount */
                        appendedSearchContextCount?: (number|null);
                    }

                    /** Represents a KnowledgeAssistBehavior. */
                    class KnowledgeAssistBehavior implements IKnowledgeAssistBehavior {

                        /**
                         * Constructs a new KnowledgeAssistBehavior.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2.KnowledgeAssistDebugInfo.IKnowledgeAssistBehavior);

                        /** KnowledgeAssistBehavior answerGenerationRewriterOn. */
                        public answerGenerationRewriterOn: boolean;

                        /** KnowledgeAssistBehavior endUserMetadataIncluded. */
                        public endUserMetadataIncluded: boolean;

                        /** KnowledgeAssistBehavior returnQueryOnly. */
                        public returnQueryOnly: boolean;

                        /** KnowledgeAssistBehavior usePubsubDelivery. */
                        public usePubsubDelivery: boolean;

                        /** KnowledgeAssistBehavior disableSyncDelivery. */
                        public disableSyncDelivery: boolean;

                        /** KnowledgeAssistBehavior previousQueriesIncluded. */
                        public previousQueriesIncluded: boolean;

                        /** KnowledgeAssistBehavior useTranslatedMessage. */
                        public useTranslatedMessage: boolean;

                        /** KnowledgeAssistBehavior useCustomSafetyFilterLevel. */
                        public useCustomSafetyFilterLevel: boolean;

                        /** KnowledgeAssistBehavior conversationTranscriptHasMixedLanguages. */
                        public conversationTranscriptHasMixedLanguages: boolean;

                        /** KnowledgeAssistBehavior queryGenerationAgentLanguageMismatch. */
                        public queryGenerationAgentLanguageMismatch: boolean;

                        /** KnowledgeAssistBehavior queryGenerationEndUserLanguageMismatch. */
                        public queryGenerationEndUserLanguageMismatch: boolean;

                        /** KnowledgeAssistBehavior thirdPartyConnectorAllowed. */
                        public thirdPartyConnectorAllowed: boolean;

                        /** KnowledgeAssistBehavior multipleQueriesGenerated. */
                        public multipleQueriesGenerated: boolean;

                        /** KnowledgeAssistBehavior queryContainedSearchContext. */
                        public queryContainedSearchContext: boolean;

                        /** KnowledgeAssistBehavior invalidItemsQuerySuggestionSkipped. */
                        public invalidItemsQuerySuggestionSkipped: boolean;

                        /** KnowledgeAssistBehavior primaryQueryRedactedAndReplaced. */
                        public primaryQueryRedactedAndReplaced: boolean;

                        /** KnowledgeAssistBehavior appendedSearchContextCount. */
                        public appendedSearchContextCount: number;

                        /**
                         * Creates a new KnowledgeAssistBehavior instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns KnowledgeAssistBehavior instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2.KnowledgeAssistDebugInfo.IKnowledgeAssistBehavior): google.cloud.dialogflow.v2.KnowledgeAssistDebugInfo.KnowledgeAssistBehavior;

                        /**
                         * Encodes the specified KnowledgeAssistBehavior message. Does not implicitly {@link google.cloud.dialogflow.v2.KnowledgeAssistDebugInfo.KnowledgeAssistBehavior.verify|verify} messages.
                         * @param message KnowledgeAssistBehavior message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2.KnowledgeAssistDebugInfo.IKnowledgeAssistBehavior, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified KnowledgeAssistBehavior message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.KnowledgeAssistDebugInfo.KnowledgeAssistBehavior.verify|verify} messages.
                         * @param message KnowledgeAssistBehavior message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2.KnowledgeAssistDebugInfo.IKnowledgeAssistBehavior, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a KnowledgeAssistBehavior message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns KnowledgeAssistBehavior
                         * @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.cloud.dialogflow.v2.KnowledgeAssistDebugInfo.KnowledgeAssistBehavior;

                        /**
                         * Decodes a KnowledgeAssistBehavior message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns KnowledgeAssistBehavior
                         * @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.cloud.dialogflow.v2.KnowledgeAssistDebugInfo.KnowledgeAssistBehavior;

                        /**
                         * Verifies a KnowledgeAssistBehavior 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 KnowledgeAssistBehavior message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns KnowledgeAssistBehavior
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.KnowledgeAssistDebugInfo.KnowledgeAssistBehavior;

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

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

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

                /** Properties of a KnowledgeAssistAnswer. */
                interface IKnowledgeAssistAnswer {

                    /** KnowledgeAssistAnswer suggestedQuery */
                    suggestedQuery?: (google.cloud.dialogflow.v2.KnowledgeAssistAnswer.ISuggestedQuery|null);

                    /** KnowledgeAssistAnswer suggestedQueryAnswer */
                    suggestedQueryAnswer?: (google.cloud.dialogflow.v2.KnowledgeAssistAnswer.IKnowledgeAnswer|null);

                    /** KnowledgeAssistAnswer answerRecord */
                    answerRecord?: (string|null);

                    /** KnowledgeAssistAnswer knowledgeAssistDebugInfo */
                    knowledgeAssistDebugInfo?: (google.cloud.dialogflow.v2.IKnowledgeAssistDebugInfo|null);
                }

                /** Represents a KnowledgeAssistAnswer. */
                class KnowledgeAssistAnswer implements IKnowledgeAssistAnswer {

                    /**
                     * Constructs a new KnowledgeAssistAnswer.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IKnowledgeAssistAnswer);

                    /** KnowledgeAssistAnswer suggestedQuery. */
                    public suggestedQuery?: (google.cloud.dialogflow.v2.KnowledgeAssistAnswer.ISuggestedQuery|null);

                    /** KnowledgeAssistAnswer suggestedQueryAnswer. */
                    public suggestedQueryAnswer?: (google.cloud.dialogflow.v2.KnowledgeAssistAnswer.IKnowledgeAnswer|null);

                    /** KnowledgeAssistAnswer answerRecord. */
                    public answerRecord: string;

                    /** KnowledgeAssistAnswer knowledgeAssistDebugInfo. */
                    public knowledgeAssistDebugInfo?: (google.cloud.dialogflow.v2.IKnowledgeAssistDebugInfo|null);

                    /**
                     * Creates a new KnowledgeAssistAnswer instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns KnowledgeAssistAnswer instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IKnowledgeAssistAnswer): google.cloud.dialogflow.v2.KnowledgeAssistAnswer;

                    /**
                     * Encodes the specified KnowledgeAssistAnswer message. Does not implicitly {@link google.cloud.dialogflow.v2.KnowledgeAssistAnswer.verify|verify} messages.
                     * @param message KnowledgeAssistAnswer message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IKnowledgeAssistAnswer, writer?: $protobuf.Writer): $protobuf.Writer;

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

                    /**
                     * Decodes a KnowledgeAssistAnswer message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns KnowledgeAssistAnswer
                     * @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.cloud.dialogflow.v2.KnowledgeAssistAnswer;

                    /**
                     * Decodes a KnowledgeAssistAnswer message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns KnowledgeAssistAnswer
                     * @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.cloud.dialogflow.v2.KnowledgeAssistAnswer;

                    /**
                     * Verifies a KnowledgeAssistAnswer 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 KnowledgeAssistAnswer message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns KnowledgeAssistAnswer
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.KnowledgeAssistAnswer;

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

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

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

                namespace KnowledgeAssistAnswer {

                    /** Properties of a SuggestedQuery. */
                    interface ISuggestedQuery {

                        /** SuggestedQuery queryText */
                        queryText?: (string|null);
                    }

                    /** Represents a SuggestedQuery. */
                    class SuggestedQuery implements ISuggestedQuery {

                        /**
                         * Constructs a new SuggestedQuery.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2.KnowledgeAssistAnswer.ISuggestedQuery);

                        /** SuggestedQuery queryText. */
                        public queryText: string;

                        /**
                         * Creates a new SuggestedQuery instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns SuggestedQuery instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2.KnowledgeAssistAnswer.ISuggestedQuery): google.cloud.dialogflow.v2.KnowledgeAssistAnswer.SuggestedQuery;

                        /**
                         * Encodes the specified SuggestedQuery message. Does not implicitly {@link google.cloud.dialogflow.v2.KnowledgeAssistAnswer.SuggestedQuery.verify|verify} messages.
                         * @param message SuggestedQuery message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2.KnowledgeAssistAnswer.ISuggestedQuery, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified SuggestedQuery message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.KnowledgeAssistAnswer.SuggestedQuery.verify|verify} messages.
                         * @param message SuggestedQuery message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2.KnowledgeAssistAnswer.ISuggestedQuery, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a SuggestedQuery message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns SuggestedQuery
                         * @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.cloud.dialogflow.v2.KnowledgeAssistAnswer.SuggestedQuery;

                        /**
                         * Decodes a SuggestedQuery message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns SuggestedQuery
                         * @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.cloud.dialogflow.v2.KnowledgeAssistAnswer.SuggestedQuery;

                        /**
                         * Verifies a SuggestedQuery 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 SuggestedQuery message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns SuggestedQuery
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.KnowledgeAssistAnswer.SuggestedQuery;

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

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

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

                    /** Properties of a KnowledgeAnswer. */
                    interface IKnowledgeAnswer {

                        /** KnowledgeAnswer answerText */
                        answerText?: (string|null);

                        /** KnowledgeAnswer faqSource */
                        faqSource?: (google.cloud.dialogflow.v2.KnowledgeAssistAnswer.KnowledgeAnswer.IFaqSource|null);

                        /** KnowledgeAnswer generativeSource */
                        generativeSource?: (google.cloud.dialogflow.v2.KnowledgeAssistAnswer.KnowledgeAnswer.IGenerativeSource|null);
                    }

                    /** Represents a KnowledgeAnswer. */
                    class KnowledgeAnswer implements IKnowledgeAnswer {

                        /**
                         * Constructs a new KnowledgeAnswer.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2.KnowledgeAssistAnswer.IKnowledgeAnswer);

                        /** KnowledgeAnswer answerText. */
                        public answerText: string;

                        /** KnowledgeAnswer faqSource. */
                        public faqSource?: (google.cloud.dialogflow.v2.KnowledgeAssistAnswer.KnowledgeAnswer.IFaqSource|null);

                        /** KnowledgeAnswer generativeSource. */
                        public generativeSource?: (google.cloud.dialogflow.v2.KnowledgeAssistAnswer.KnowledgeAnswer.IGenerativeSource|null);

                        /** KnowledgeAnswer source. */
                        public source?: ("faqSource"|"generativeSource");

                        /**
                         * Creates a new KnowledgeAnswer instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns KnowledgeAnswer instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2.KnowledgeAssistAnswer.IKnowledgeAnswer): google.cloud.dialogflow.v2.KnowledgeAssistAnswer.KnowledgeAnswer;

                        /**
                         * Encodes the specified KnowledgeAnswer message. Does not implicitly {@link google.cloud.dialogflow.v2.KnowledgeAssistAnswer.KnowledgeAnswer.verify|verify} messages.
                         * @param message KnowledgeAnswer message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2.KnowledgeAssistAnswer.IKnowledgeAnswer, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified KnowledgeAnswer message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.KnowledgeAssistAnswer.KnowledgeAnswer.verify|verify} messages.
                         * @param message KnowledgeAnswer message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2.KnowledgeAssistAnswer.IKnowledgeAnswer, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a KnowledgeAnswer message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns KnowledgeAnswer
                         * @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.cloud.dialogflow.v2.KnowledgeAssistAnswer.KnowledgeAnswer;

                        /**
                         * Decodes a KnowledgeAnswer message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns KnowledgeAnswer
                         * @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.cloud.dialogflow.v2.KnowledgeAssistAnswer.KnowledgeAnswer;

                        /**
                         * Verifies a KnowledgeAnswer 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 KnowledgeAnswer message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns KnowledgeAnswer
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.KnowledgeAssistAnswer.KnowledgeAnswer;

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

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

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

                    namespace KnowledgeAnswer {

                        /** Properties of a FaqSource. */
                        interface IFaqSource {

                            /** FaqSource question */
                            question?: (string|null);
                        }

                        /** Represents a FaqSource. */
                        class FaqSource implements IFaqSource {

                            /**
                             * Constructs a new FaqSource.
                             * @param [properties] Properties to set
                             */
                            constructor(properties?: google.cloud.dialogflow.v2.KnowledgeAssistAnswer.KnowledgeAnswer.IFaqSource);

                            /** FaqSource question. */
                            public question: string;

                            /**
                             * Creates a new FaqSource instance using the specified properties.
                             * @param [properties] Properties to set
                             * @returns FaqSource instance
                             */
                            public static create(properties?: google.cloud.dialogflow.v2.KnowledgeAssistAnswer.KnowledgeAnswer.IFaqSource): google.cloud.dialogflow.v2.KnowledgeAssistAnswer.KnowledgeAnswer.FaqSource;

                            /**
                             * Encodes the specified FaqSource message. Does not implicitly {@link google.cloud.dialogflow.v2.KnowledgeAssistAnswer.KnowledgeAnswer.FaqSource.verify|verify} messages.
                             * @param message FaqSource message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encode(message: google.cloud.dialogflow.v2.KnowledgeAssistAnswer.KnowledgeAnswer.IFaqSource, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Encodes the specified FaqSource message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.KnowledgeAssistAnswer.KnowledgeAnswer.FaqSource.verify|verify} messages.
                             * @param message FaqSource message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encodeDelimited(message: google.cloud.dialogflow.v2.KnowledgeAssistAnswer.KnowledgeAnswer.IFaqSource, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Decodes a FaqSource message from the specified reader or buffer.
                             * @param reader Reader or buffer to decode from
                             * @param [length] Message length if known beforehand
                             * @returns FaqSource
                             * @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.cloud.dialogflow.v2.KnowledgeAssistAnswer.KnowledgeAnswer.FaqSource;

                            /**
                             * Decodes a FaqSource message from the specified reader or buffer, length delimited.
                             * @param reader Reader or buffer to decode from
                             * @returns FaqSource
                             * @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.cloud.dialogflow.v2.KnowledgeAssistAnswer.KnowledgeAnswer.FaqSource;

                            /**
                             * Verifies a FaqSource 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 FaqSource message from a plain object. Also converts values to their respective internal types.
                             * @param object Plain object
                             * @returns FaqSource
                             */
                            public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.KnowledgeAssistAnswer.KnowledgeAnswer.FaqSource;

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

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

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

                        /** Properties of a GenerativeSource. */
                        interface IGenerativeSource {

                            /** GenerativeSource snippets */
                            snippets?: (google.cloud.dialogflow.v2.KnowledgeAssistAnswer.KnowledgeAnswer.GenerativeSource.ISnippet[]|null);
                        }

                        /** Represents a GenerativeSource. */
                        class GenerativeSource implements IGenerativeSource {

                            /**
                             * Constructs a new GenerativeSource.
                             * @param [properties] Properties to set
                             */
                            constructor(properties?: google.cloud.dialogflow.v2.KnowledgeAssistAnswer.KnowledgeAnswer.IGenerativeSource);

                            /** GenerativeSource snippets. */
                            public snippets: google.cloud.dialogflow.v2.KnowledgeAssistAnswer.KnowledgeAnswer.GenerativeSource.ISnippet[];

                            /**
                             * Creates a new GenerativeSource instance using the specified properties.
                             * @param [properties] Properties to set
                             * @returns GenerativeSource instance
                             */
                            public static create(properties?: google.cloud.dialogflow.v2.KnowledgeAssistAnswer.KnowledgeAnswer.IGenerativeSource): google.cloud.dialogflow.v2.KnowledgeAssistAnswer.KnowledgeAnswer.GenerativeSource;

                            /**
                             * Encodes the specified GenerativeSource message. Does not implicitly {@link google.cloud.dialogflow.v2.KnowledgeAssistAnswer.KnowledgeAnswer.GenerativeSource.verify|verify} messages.
                             * @param message GenerativeSource message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encode(message: google.cloud.dialogflow.v2.KnowledgeAssistAnswer.KnowledgeAnswer.IGenerativeSource, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Encodes the specified GenerativeSource message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.KnowledgeAssistAnswer.KnowledgeAnswer.GenerativeSource.verify|verify} messages.
                             * @param message GenerativeSource message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encodeDelimited(message: google.cloud.dialogflow.v2.KnowledgeAssistAnswer.KnowledgeAnswer.IGenerativeSource, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Decodes a GenerativeSource message from the specified reader or buffer.
                             * @param reader Reader or buffer to decode from
                             * @param [length] Message length if known beforehand
                             * @returns GenerativeSource
                             * @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.cloud.dialogflow.v2.KnowledgeAssistAnswer.KnowledgeAnswer.GenerativeSource;

                            /**
                             * Decodes a GenerativeSource message from the specified reader or buffer, length delimited.
                             * @param reader Reader or buffer to decode from
                             * @returns GenerativeSource
                             * @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.cloud.dialogflow.v2.KnowledgeAssistAnswer.KnowledgeAnswer.GenerativeSource;

                            /**
                             * Verifies a GenerativeSource 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 GenerativeSource message from a plain object. Also converts values to their respective internal types.
                             * @param object Plain object
                             * @returns GenerativeSource
                             */
                            public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.KnowledgeAssistAnswer.KnowledgeAnswer.GenerativeSource;

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

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

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

                        namespace GenerativeSource {

                            /** Properties of a Snippet. */
                            interface ISnippet {

                                /** Snippet uri */
                                uri?: (string|null);

                                /** Snippet text */
                                text?: (string|null);

                                /** Snippet title */
                                title?: (string|null);

                                /** Snippet metadata */
                                metadata?: (google.protobuf.IStruct|null);
                            }

                            /** Represents a Snippet. */
                            class Snippet implements ISnippet {

                                /**
                                 * Constructs a new Snippet.
                                 * @param [properties] Properties to set
                                 */
                                constructor(properties?: google.cloud.dialogflow.v2.KnowledgeAssistAnswer.KnowledgeAnswer.GenerativeSource.ISnippet);

                                /** Snippet uri. */
                                public uri: string;

                                /** Snippet text. */
                                public text: string;

                                /** Snippet title. */
                                public title: string;

                                /** Snippet metadata. */
                                public metadata?: (google.protobuf.IStruct|null);

                                /**
                                 * Creates a new Snippet instance using the specified properties.
                                 * @param [properties] Properties to set
                                 * @returns Snippet instance
                                 */
                                public static create(properties?: google.cloud.dialogflow.v2.KnowledgeAssistAnswer.KnowledgeAnswer.GenerativeSource.ISnippet): google.cloud.dialogflow.v2.KnowledgeAssistAnswer.KnowledgeAnswer.GenerativeSource.Snippet;

                                /**
                                 * Encodes the specified Snippet message. Does not implicitly {@link google.cloud.dialogflow.v2.KnowledgeAssistAnswer.KnowledgeAnswer.GenerativeSource.Snippet.verify|verify} messages.
                                 * @param message Snippet message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encode(message: google.cloud.dialogflow.v2.KnowledgeAssistAnswer.KnowledgeAnswer.GenerativeSource.ISnippet, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Encodes the specified Snippet message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.KnowledgeAssistAnswer.KnowledgeAnswer.GenerativeSource.Snippet.verify|verify} messages.
                                 * @param message Snippet message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encodeDelimited(message: google.cloud.dialogflow.v2.KnowledgeAssistAnswer.KnowledgeAnswer.GenerativeSource.ISnippet, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Decodes a Snippet message from the specified reader or buffer.
                                 * @param reader Reader or buffer to decode from
                                 * @param [length] Message length if known beforehand
                                 * @returns Snippet
                                 * @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.cloud.dialogflow.v2.KnowledgeAssistAnswer.KnowledgeAnswer.GenerativeSource.Snippet;

                                /**
                                 * Decodes a Snippet message from the specified reader or buffer, length delimited.
                                 * @param reader Reader or buffer to decode from
                                 * @returns Snippet
                                 * @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.cloud.dialogflow.v2.KnowledgeAssistAnswer.KnowledgeAnswer.GenerativeSource.Snippet;

                                /**
                                 * Verifies a Snippet 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 Snippet message from a plain object. Also converts values to their respective internal types.
                                 * @param object Plain object
                                 * @returns Snippet
                                 */
                                public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.KnowledgeAssistAnswer.KnowledgeAnswer.GenerativeSource.Snippet;

                                /**
                                 * Creates a plain object from a Snippet message. Also converts values to other types if specified.
                                 * @param message Snippet
                                 * @param [options] Conversion options
                                 * @returns Plain object
                                 */
                                public static toObject(message: google.cloud.dialogflow.v2.KnowledgeAssistAnswer.KnowledgeAnswer.GenerativeSource.Snippet, options?: $protobuf.IConversionOptions): { [k: string]: any };

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

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

                /** DatastoreResponseReason enum. */
                enum DatastoreResponseReason {
                    DATASTORE_RESPONSE_REASON_UNSPECIFIED = 0,
                    NONE = 1,
                    SEARCH_OUT_OF_QUOTA = 2,
                    SEARCH_EMPTY_RESULTS = 3,
                    ANSWER_GENERATION_GEN_AI_DISABLED = 4,
                    ANSWER_GENERATION_OUT_OF_QUOTA = 5,
                    ANSWER_GENERATION_ERROR = 6,
                    ANSWER_GENERATION_NOT_ENOUGH_INFO = 7,
                    ANSWER_GENERATION_RAI_FAILED = 8,
                    ANSWER_GENERATION_NOT_GROUNDED = 9
                }

                /** Properties of a SpeechContext. */
                interface ISpeechContext {

                    /** SpeechContext phrases */
                    phrases?: (string[]|null);

                    /** SpeechContext boost */
                    boost?: (number|null);
                }

                /** Represents a SpeechContext. */
                class SpeechContext implements ISpeechContext {

                    /**
                     * Constructs a new SpeechContext.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.ISpeechContext);

                    /** SpeechContext phrases. */
                    public phrases: string[];

                    /** SpeechContext boost. */
                    public boost: number;

                    /**
                     * Creates a new SpeechContext instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SpeechContext instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.ISpeechContext): google.cloud.dialogflow.v2.SpeechContext;

                    /**
                     * Encodes the specified SpeechContext message. Does not implicitly {@link google.cloud.dialogflow.v2.SpeechContext.verify|verify} messages.
                     * @param message SpeechContext message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.ISpeechContext, writer?: $protobuf.Writer): $protobuf.Writer;

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

                    /**
                     * Decodes a SpeechContext message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SpeechContext
                     * @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.cloud.dialogflow.v2.SpeechContext;

                    /**
                     * Decodes a SpeechContext message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SpeechContext
                     * @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.cloud.dialogflow.v2.SpeechContext;

                    /**
                     * Verifies a SpeechContext 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 SpeechContext message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SpeechContext
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.SpeechContext;

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

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

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

                /** Properties of a SpeechWordInfo. */
                interface ISpeechWordInfo {

                    /** SpeechWordInfo word */
                    word?: (string|null);

                    /** SpeechWordInfo startOffset */
                    startOffset?: (google.protobuf.IDuration|null);

                    /** SpeechWordInfo endOffset */
                    endOffset?: (google.protobuf.IDuration|null);

                    /** SpeechWordInfo confidence */
                    confidence?: (number|null);
                }

                /** Represents a SpeechWordInfo. */
                class SpeechWordInfo implements ISpeechWordInfo {

                    /**
                     * Constructs a new SpeechWordInfo.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.ISpeechWordInfo);

                    /** SpeechWordInfo word. */
                    public word: string;

                    /** SpeechWordInfo startOffset. */
                    public startOffset?: (google.protobuf.IDuration|null);

                    /** SpeechWordInfo endOffset. */
                    public endOffset?: (google.protobuf.IDuration|null);

                    /** SpeechWordInfo confidence. */
                    public confidence: number;

                    /**
                     * Creates a new SpeechWordInfo instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SpeechWordInfo instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.ISpeechWordInfo): google.cloud.dialogflow.v2.SpeechWordInfo;

                    /**
                     * Encodes the specified SpeechWordInfo message. Does not implicitly {@link google.cloud.dialogflow.v2.SpeechWordInfo.verify|verify} messages.
                     * @param message SpeechWordInfo message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.ISpeechWordInfo, writer?: $protobuf.Writer): $protobuf.Writer;

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

                    /**
                     * Decodes a SpeechWordInfo message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SpeechWordInfo
                     * @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.cloud.dialogflow.v2.SpeechWordInfo;

                    /**
                     * Decodes a SpeechWordInfo message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SpeechWordInfo
                     * @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.cloud.dialogflow.v2.SpeechWordInfo;

                    /**
                     * Verifies a SpeechWordInfo 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 SpeechWordInfo message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SpeechWordInfo
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.SpeechWordInfo;

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

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

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

                /** Properties of an InputAudioConfig. */
                interface IInputAudioConfig {

                    /** InputAudioConfig audioEncoding */
                    audioEncoding?: (google.cloud.dialogflow.v2.AudioEncoding|keyof typeof google.cloud.dialogflow.v2.AudioEncoding|null);

                    /** InputAudioConfig sampleRateHertz */
                    sampleRateHertz?: (number|null);

                    /** InputAudioConfig languageCode */
                    languageCode?: (string|null);

                    /** InputAudioConfig enableWordInfo */
                    enableWordInfo?: (boolean|null);

                    /** InputAudioConfig phraseHints */
                    phraseHints?: (string[]|null);

                    /** InputAudioConfig speechContexts */
                    speechContexts?: (google.cloud.dialogflow.v2.ISpeechContext[]|null);

                    /** InputAudioConfig model */
                    model?: (string|null);

                    /** InputAudioConfig modelVariant */
                    modelVariant?: (google.cloud.dialogflow.v2.SpeechModelVariant|keyof typeof google.cloud.dialogflow.v2.SpeechModelVariant|null);

                    /** InputAudioConfig singleUtterance */
                    singleUtterance?: (boolean|null);

                    /** InputAudioConfig disableNoSpeechRecognizedEvent */
                    disableNoSpeechRecognizedEvent?: (boolean|null);

                    /** InputAudioConfig enableAutomaticPunctuation */
                    enableAutomaticPunctuation?: (boolean|null);

                    /** InputAudioConfig phraseSets */
                    phraseSets?: (string[]|null);

                    /** InputAudioConfig optOutConformerModelMigration */
                    optOutConformerModelMigration?: (boolean|null);
                }

                /** Represents an InputAudioConfig. */
                class InputAudioConfig implements IInputAudioConfig {

                    /**
                     * Constructs a new InputAudioConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IInputAudioConfig);

                    /** InputAudioConfig audioEncoding. */
                    public audioEncoding: (google.cloud.dialogflow.v2.AudioEncoding|keyof typeof google.cloud.dialogflow.v2.AudioEncoding);

                    /** InputAudioConfig sampleRateHertz. */
                    public sampleRateHertz: number;

                    /** InputAudioConfig languageCode. */
                    public languageCode: string;

                    /** InputAudioConfig enableWordInfo. */
                    public enableWordInfo: boolean;

                    /** InputAudioConfig phraseHints. */
                    public phraseHints: string[];

                    /** InputAudioConfig speechContexts. */
                    public speechContexts: google.cloud.dialogflow.v2.ISpeechContext[];

                    /** InputAudioConfig model. */
                    public model: string;

                    /** InputAudioConfig modelVariant. */
                    public modelVariant: (google.cloud.dialogflow.v2.SpeechModelVariant|keyof typeof google.cloud.dialogflow.v2.SpeechModelVariant);

                    /** InputAudioConfig singleUtterance. */
                    public singleUtterance: boolean;

                    /** InputAudioConfig disableNoSpeechRecognizedEvent. */
                    public disableNoSpeechRecognizedEvent: boolean;

                    /** InputAudioConfig enableAutomaticPunctuation. */
                    public enableAutomaticPunctuation: boolean;

                    /** InputAudioConfig phraseSets. */
                    public phraseSets: string[];

                    /** InputAudioConfig optOutConformerModelMigration. */
                    public optOutConformerModelMigration: boolean;

                    /**
                     * Creates a new InputAudioConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InputAudioConfig instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IInputAudioConfig): google.cloud.dialogflow.v2.InputAudioConfig;

                    /**
                     * Encodes the specified InputAudioConfig message. Does not implicitly {@link google.cloud.dialogflow.v2.InputAudioConfig.verify|verify} messages.
                     * @param message InputAudioConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IInputAudioConfig, writer?: $protobuf.Writer): $protobuf.Writer;

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

                    /**
                     * Decodes an InputAudioConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InputAudioConfig
                     * @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.cloud.dialogflow.v2.InputAudioConfig;

                    /**
                     * Decodes an InputAudioConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InputAudioConfig
                     * @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.cloud.dialogflow.v2.InputAudioConfig;

                    /**
                     * Verifies an InputAudioConfig 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 InputAudioConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InputAudioConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.InputAudioConfig;

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

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

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

                /** Properties of a VoiceSelectionParams. */
                interface IVoiceSelectionParams {

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

                    /** VoiceSelectionParams ssmlGender */
                    ssmlGender?: (google.cloud.dialogflow.v2.SsmlVoiceGender|keyof typeof google.cloud.dialogflow.v2.SsmlVoiceGender|null);
                }

                /** Represents a VoiceSelectionParams. */
                class VoiceSelectionParams implements IVoiceSelectionParams {

                    /**
                     * Constructs a new VoiceSelectionParams.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IVoiceSelectionParams);

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

                    /** VoiceSelectionParams ssmlGender. */
                    public ssmlGender: (google.cloud.dialogflow.v2.SsmlVoiceGender|keyof typeof google.cloud.dialogflow.v2.SsmlVoiceGender);

                    /**
                     * Creates a new VoiceSelectionParams instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns VoiceSelectionParams instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IVoiceSelectionParams): google.cloud.dialogflow.v2.VoiceSelectionParams;

                    /**
                     * Encodes the specified VoiceSelectionParams message. Does not implicitly {@link google.cloud.dialogflow.v2.VoiceSelectionParams.verify|verify} messages.
                     * @param message VoiceSelectionParams message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IVoiceSelectionParams, writer?: $protobuf.Writer): $protobuf.Writer;

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

                    /**
                     * Decodes a VoiceSelectionParams message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns VoiceSelectionParams
                     * @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.cloud.dialogflow.v2.VoiceSelectionParams;

                    /**
                     * Decodes a VoiceSelectionParams message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns VoiceSelectionParams
                     * @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.cloud.dialogflow.v2.VoiceSelectionParams;

                    /**
                     * Verifies a VoiceSelectionParams 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 VoiceSelectionParams message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns VoiceSelectionParams
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.VoiceSelectionParams;

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

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

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

                /** Properties of a SynthesizeSpeechConfig. */
                interface ISynthesizeSpeechConfig {

                    /** SynthesizeSpeechConfig speakingRate */
                    speakingRate?: (number|null);

                    /** SynthesizeSpeechConfig pitch */
                    pitch?: (number|null);

                    /** SynthesizeSpeechConfig volumeGainDb */
                    volumeGainDb?: (number|null);

                    /** SynthesizeSpeechConfig effectsProfileId */
                    effectsProfileId?: (string[]|null);

                    /** SynthesizeSpeechConfig voice */
                    voice?: (google.cloud.dialogflow.v2.IVoiceSelectionParams|null);

                    /** SynthesizeSpeechConfig pronunciations */
                    pronunciations?: (google.cloud.dialogflow.v2.ICustomPronunciationParams[]|null);
                }

                /** Represents a SynthesizeSpeechConfig. */
                class SynthesizeSpeechConfig implements ISynthesizeSpeechConfig {

                    /**
                     * Constructs a new SynthesizeSpeechConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.ISynthesizeSpeechConfig);

                    /** SynthesizeSpeechConfig speakingRate. */
                    public speakingRate: number;

                    /** SynthesizeSpeechConfig pitch. */
                    public pitch: number;

                    /** SynthesizeSpeechConfig volumeGainDb. */
                    public volumeGainDb: number;

                    /** SynthesizeSpeechConfig effectsProfileId. */
                    public effectsProfileId: string[];

                    /** SynthesizeSpeechConfig voice. */
                    public voice?: (google.cloud.dialogflow.v2.IVoiceSelectionParams|null);

                    /** SynthesizeSpeechConfig pronunciations. */
                    public pronunciations: google.cloud.dialogflow.v2.ICustomPronunciationParams[];

                    /**
                     * Creates a new SynthesizeSpeechConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SynthesizeSpeechConfig instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.ISynthesizeSpeechConfig): google.cloud.dialogflow.v2.SynthesizeSpeechConfig;

                    /**
                     * Encodes the specified SynthesizeSpeechConfig message. Does not implicitly {@link google.cloud.dialogflow.v2.SynthesizeSpeechConfig.verify|verify} messages.
                     * @param message SynthesizeSpeechConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.ISynthesizeSpeechConfig, writer?: $protobuf.Writer): $protobuf.Writer;

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

                    /**
                     * Decodes a SynthesizeSpeechConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SynthesizeSpeechConfig
                     * @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.cloud.dialogflow.v2.SynthesizeSpeechConfig;

                    /**
                     * Decodes a SynthesizeSpeechConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SynthesizeSpeechConfig
                     * @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.cloud.dialogflow.v2.SynthesizeSpeechConfig;

                    /**
                     * Verifies a SynthesizeSpeechConfig 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 SynthesizeSpeechConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SynthesizeSpeechConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.SynthesizeSpeechConfig;

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

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

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

                /** Properties of a CustomPronunciationParams. */
                interface ICustomPronunciationParams {

                    /** CustomPronunciationParams phrase */
                    phrase?: (string|null);

                    /** CustomPronunciationParams phoneticEncoding */
                    phoneticEncoding?: (google.cloud.dialogflow.v2.CustomPronunciationParams.PhoneticEncoding|keyof typeof google.cloud.dialogflow.v2.CustomPronunciationParams.PhoneticEncoding|null);

                    /** CustomPronunciationParams pronunciation */
                    pronunciation?: (string|null);
                }

                /** Represents a CustomPronunciationParams. */
                class CustomPronunciationParams implements ICustomPronunciationParams {

                    /**
                     * Constructs a new CustomPronunciationParams.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.ICustomPronunciationParams);

                    /** CustomPronunciationParams phrase. */
                    public phrase: string;

                    /** CustomPronunciationParams phoneticEncoding. */
                    public phoneticEncoding: (google.cloud.dialogflow.v2.CustomPronunciationParams.PhoneticEncoding|keyof typeof google.cloud.dialogflow.v2.CustomPronunciationParams.PhoneticEncoding);

                    /** CustomPronunciationParams pronunciation. */
                    public pronunciation: string;

                    /**
                     * Creates a new CustomPronunciationParams instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CustomPronunciationParams instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.ICustomPronunciationParams): google.cloud.dialogflow.v2.CustomPronunciationParams;

                    /**
                     * Encodes the specified CustomPronunciationParams message. Does not implicitly {@link google.cloud.dialogflow.v2.CustomPronunciationParams.verify|verify} messages.
                     * @param message CustomPronunciationParams message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.ICustomPronunciationParams, writer?: $protobuf.Writer): $protobuf.Writer;

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

                    /**
                     * Decodes a CustomPronunciationParams message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CustomPronunciationParams
                     * @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.cloud.dialogflow.v2.CustomPronunciationParams;

                    /**
                     * Decodes a CustomPronunciationParams message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CustomPronunciationParams
                     * @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.cloud.dialogflow.v2.CustomPronunciationParams;

                    /**
                     * Verifies a CustomPronunciationParams 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 CustomPronunciationParams message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CustomPronunciationParams
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.CustomPronunciationParams;

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

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

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

                namespace CustomPronunciationParams {

                    /** PhoneticEncoding enum. */
                    enum PhoneticEncoding {
                        PHONETIC_ENCODING_UNSPECIFIED = 0,
                        PHONETIC_ENCODING_IPA = 1,
                        PHONETIC_ENCODING_X_SAMPA = 2
                    }
                }

                /** Properties of an OutputAudioConfig. */
                interface IOutputAudioConfig {

                    /** OutputAudioConfig audioEncoding */
                    audioEncoding?: (google.cloud.dialogflow.v2.OutputAudioEncoding|keyof typeof google.cloud.dialogflow.v2.OutputAudioEncoding|null);

                    /** OutputAudioConfig sampleRateHertz */
                    sampleRateHertz?: (number|null);

                    /** OutputAudioConfig synthesizeSpeechConfig */
                    synthesizeSpeechConfig?: (google.cloud.dialogflow.v2.ISynthesizeSpeechConfig|null);
                }

                /** Represents an OutputAudioConfig. */
                class OutputAudioConfig implements IOutputAudioConfig {

                    /**
                     * Constructs a new OutputAudioConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IOutputAudioConfig);

                    /** OutputAudioConfig audioEncoding. */
                    public audioEncoding: (google.cloud.dialogflow.v2.OutputAudioEncoding|keyof typeof google.cloud.dialogflow.v2.OutputAudioEncoding);

                    /** OutputAudioConfig sampleRateHertz. */
                    public sampleRateHertz: number;

                    /** OutputAudioConfig synthesizeSpeechConfig. */
                    public synthesizeSpeechConfig?: (google.cloud.dialogflow.v2.ISynthesizeSpeechConfig|null);

                    /**
                     * Creates a new OutputAudioConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns OutputAudioConfig instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IOutputAudioConfig): google.cloud.dialogflow.v2.OutputAudioConfig;

                    /**
                     * Encodes the specified OutputAudioConfig message. Does not implicitly {@link google.cloud.dialogflow.v2.OutputAudioConfig.verify|verify} messages.
                     * @param message OutputAudioConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IOutputAudioConfig, writer?: $protobuf.Writer): $protobuf.Writer;

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

                    /**
                     * Decodes an OutputAudioConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns OutputAudioConfig
                     * @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.cloud.dialogflow.v2.OutputAudioConfig;

                    /**
                     * Decodes an OutputAudioConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns OutputAudioConfig
                     * @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.cloud.dialogflow.v2.OutputAudioConfig;

                    /**
                     * Verifies an OutputAudioConfig 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 OutputAudioConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns OutputAudioConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.OutputAudioConfig;

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

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

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

                /** Properties of a TelephonyDtmfEvents. */
                interface ITelephonyDtmfEvents {

                    /** TelephonyDtmfEvents dtmfEvents */
                    dtmfEvents?: (google.cloud.dialogflow.v2.TelephonyDtmf[]|null);
                }

                /** Represents a TelephonyDtmfEvents. */
                class TelephonyDtmfEvents implements ITelephonyDtmfEvents {

                    /**
                     * Constructs a new TelephonyDtmfEvents.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.ITelephonyDtmfEvents);

                    /** TelephonyDtmfEvents dtmfEvents. */
                    public dtmfEvents: google.cloud.dialogflow.v2.TelephonyDtmf[];

                    /**
                     * Creates a new TelephonyDtmfEvents instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TelephonyDtmfEvents instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.ITelephonyDtmfEvents): google.cloud.dialogflow.v2.TelephonyDtmfEvents;

                    /**
                     * Encodes the specified TelephonyDtmfEvents message. Does not implicitly {@link google.cloud.dialogflow.v2.TelephonyDtmfEvents.verify|verify} messages.
                     * @param message TelephonyDtmfEvents message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.ITelephonyDtmfEvents, writer?: $protobuf.Writer): $protobuf.Writer;

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

                    /**
                     * Decodes a TelephonyDtmfEvents message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TelephonyDtmfEvents
                     * @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.cloud.dialogflow.v2.TelephonyDtmfEvents;

                    /**
                     * Decodes a TelephonyDtmfEvents message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TelephonyDtmfEvents
                     * @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.cloud.dialogflow.v2.TelephonyDtmfEvents;

                    /**
                     * Verifies a TelephonyDtmfEvents 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 TelephonyDtmfEvents message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TelephonyDtmfEvents
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.TelephonyDtmfEvents;

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

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

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

                /** Properties of a SpeechToTextConfig. */
                interface ISpeechToTextConfig {

                    /** SpeechToTextConfig speechModelVariant */
                    speechModelVariant?: (google.cloud.dialogflow.v2.SpeechModelVariant|keyof typeof google.cloud.dialogflow.v2.SpeechModelVariant|null);

                    /** SpeechToTextConfig model */
                    model?: (string|null);

                    /** SpeechToTextConfig phraseSets */
                    phraseSets?: (string[]|null);

                    /** SpeechToTextConfig audioEncoding */
                    audioEncoding?: (google.cloud.dialogflow.v2.AudioEncoding|keyof typeof google.cloud.dialogflow.v2.AudioEncoding|null);

                    /** SpeechToTextConfig sampleRateHertz */
                    sampleRateHertz?: (number|null);

                    /** SpeechToTextConfig languageCode */
                    languageCode?: (string|null);

                    /** SpeechToTextConfig enableWordInfo */
                    enableWordInfo?: (boolean|null);

                    /** SpeechToTextConfig useTimeoutBasedEndpointing */
                    useTimeoutBasedEndpointing?: (boolean|null);
                }

                /** Represents a SpeechToTextConfig. */
                class SpeechToTextConfig implements ISpeechToTextConfig {

                    /**
                     * Constructs a new SpeechToTextConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.ISpeechToTextConfig);

                    /** SpeechToTextConfig speechModelVariant. */
                    public speechModelVariant: (google.cloud.dialogflow.v2.SpeechModelVariant|keyof typeof google.cloud.dialogflow.v2.SpeechModelVariant);

                    /** SpeechToTextConfig model. */
                    public model: string;

                    /** SpeechToTextConfig phraseSets. */
                    public phraseSets: string[];

                    /** SpeechToTextConfig audioEncoding. */
                    public audioEncoding: (google.cloud.dialogflow.v2.AudioEncoding|keyof typeof google.cloud.dialogflow.v2.AudioEncoding);

                    /** SpeechToTextConfig sampleRateHertz. */
                    public sampleRateHertz: number;

                    /** SpeechToTextConfig languageCode. */
                    public languageCode: string;

                    /** SpeechToTextConfig enableWordInfo. */
                    public enableWordInfo: boolean;

                    /** SpeechToTextConfig useTimeoutBasedEndpointing. */
                    public useTimeoutBasedEndpointing: boolean;

                    /**
                     * Creates a new SpeechToTextConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SpeechToTextConfig instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.ISpeechToTextConfig): google.cloud.dialogflow.v2.SpeechToTextConfig;

                    /**
                     * Encodes the specified SpeechToTextConfig message. Does not implicitly {@link google.cloud.dialogflow.v2.SpeechToTextConfig.verify|verify} messages.
                     * @param message SpeechToTextConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.ISpeechToTextConfig, writer?: $protobuf.Writer): $protobuf.Writer;

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

                    /**
                     * Decodes a SpeechToTextConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SpeechToTextConfig
                     * @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.cloud.dialogflow.v2.SpeechToTextConfig;

                    /**
                     * Decodes a SpeechToTextConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SpeechToTextConfig
                     * @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.cloud.dialogflow.v2.SpeechToTextConfig;

                    /**
                     * Verifies a SpeechToTextConfig 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 SpeechToTextConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SpeechToTextConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.SpeechToTextConfig;

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

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

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

                /** TelephonyDtmf enum. */
                enum TelephonyDtmf {
                    TELEPHONY_DTMF_UNSPECIFIED = 0,
                    DTMF_ONE = 1,
                    DTMF_TWO = 2,
                    DTMF_THREE = 3,
                    DTMF_FOUR = 4,
                    DTMF_FIVE = 5,
                    DTMF_SIX = 6,
                    DTMF_SEVEN = 7,
                    DTMF_EIGHT = 8,
                    DTMF_NINE = 9,
                    DTMF_ZERO = 10,
                    DTMF_A = 11,
                    DTMF_B = 12,
                    DTMF_C = 13,
                    DTMF_D = 14,
                    DTMF_STAR = 15,
                    DTMF_POUND = 16
                }

                /** AudioEncoding enum. */
                enum AudioEncoding {
                    AUDIO_ENCODING_UNSPECIFIED = 0,
                    AUDIO_ENCODING_LINEAR_16 = 1,
                    AUDIO_ENCODING_FLAC = 2,
                    AUDIO_ENCODING_MULAW = 3,
                    AUDIO_ENCODING_AMR = 4,
                    AUDIO_ENCODING_AMR_WB = 5,
                    AUDIO_ENCODING_OGG_OPUS = 6,
                    AUDIO_ENCODING_SPEEX_WITH_HEADER_BYTE = 7,
                    AUDIO_ENCODING_ALAW = 8
                }

                /** SpeechModelVariant enum. */
                enum SpeechModelVariant {
                    SPEECH_MODEL_VARIANT_UNSPECIFIED = 0,
                    USE_BEST_AVAILABLE = 1,
                    USE_STANDARD = 2,
                    USE_ENHANCED = 3
                }

                /** SsmlVoiceGender enum. */
                enum SsmlVoiceGender {
                    SSML_VOICE_GENDER_UNSPECIFIED = 0,
                    SSML_VOICE_GENDER_MALE = 1,
                    SSML_VOICE_GENDER_FEMALE = 2,
                    SSML_VOICE_GENDER_NEUTRAL = 3
                }

                /** OutputAudioEncoding enum. */
                enum OutputAudioEncoding {
                    OUTPUT_AUDIO_ENCODING_UNSPECIFIED = 0,
                    OUTPUT_AUDIO_ENCODING_LINEAR_16 = 1,
                    OUTPUT_AUDIO_ENCODING_MP3 = 2,
                    OUTPUT_AUDIO_ENCODING_MP3_64_KBPS = 4,
                    OUTPUT_AUDIO_ENCODING_OGG_OPUS = 3,
                    OUTPUT_AUDIO_ENCODING_MULAW = 5,
                    OUTPUT_AUDIO_ENCODING_ALAW = 6
                }

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

                    /**
                     * Constructs a new Sessions 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 Sessions 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): Sessions;

                    /**
                     * Calls DetectIntent.
                     * @param request DetectIntentRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and DetectIntentResponse
                     */
                    public detectIntent(request: google.cloud.dialogflow.v2.IDetectIntentRequest, callback: google.cloud.dialogflow.v2.Sessions.DetectIntentCallback): void;

                    /**
                     * Calls DetectIntent.
                     * @param request DetectIntentRequest message or plain object
                     * @returns Promise
                     */
                    public detectIntent(request: google.cloud.dialogflow.v2.IDetectIntentRequest): Promise<google.cloud.dialogflow.v2.DetectIntentResponse>;

                    /**
                     * Calls StreamingDetectIntent.
                     * @param request StreamingDetectIntentRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and StreamingDetectIntentResponse
                     */
                    public streamingDetectIntent(request: google.cloud.dialogflow.v2.IStreamingDetectIntentRequest, callback: google.cloud.dialogflow.v2.Sessions.StreamingDetectIntentCallback): void;

                    /**
                     * Calls StreamingDetectIntent.
                     * @param request StreamingDetectIntentRequest message or plain object
                     * @returns Promise
                     */
                    public streamingDetectIntent(request: google.cloud.dialogflow.v2.IStreamingDetectIntentRequest): Promise<google.cloud.dialogflow.v2.StreamingDetectIntentResponse>;
                }

                namespace Sessions {

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2.Sessions|detectIntent}.
                     * @param error Error, if any
                     * @param [response] DetectIntentResponse
                     */
                    type DetectIntentCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2.DetectIntentResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2.Sessions|streamingDetectIntent}.
                     * @param error Error, if any
                     * @param [response] StreamingDetectIntentResponse
                     */
                    type StreamingDetectIntentCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2.StreamingDetectIntentResponse) => void;
                }

                /** Properties of a DetectIntentRequest. */
                interface IDetectIntentRequest {

                    /** DetectIntentRequest session */
                    session?: (string|null);

                    /** DetectIntentRequest queryParams */
                    queryParams?: (google.cloud.dialogflow.v2.IQueryParameters|null);

                    /** DetectIntentRequest queryInput */
                    queryInput?: (google.cloud.dialogflow.v2.IQueryInput|null);

                    /** DetectIntentRequest outputAudioConfig */
                    outputAudioConfig?: (google.cloud.dialogflow.v2.IOutputAudioConfig|null);

                    /** DetectIntentRequest outputAudioConfigMask */
                    outputAudioConfigMask?: (google.protobuf.IFieldMask|null);

                    /** DetectIntentRequest inputAudio */
                    inputAudio?: (Uint8Array|Buffer|string|null);
                }

                /** Represents a DetectIntentRequest. */
                class DetectIntentRequest implements IDetectIntentRequest {

                    /**
                     * Constructs a new DetectIntentRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IDetectIntentRequest);

                    /** DetectIntentRequest session. */
                    public session: string;

                    /** DetectIntentRequest queryParams. */
                    public queryParams?: (google.cloud.dialogflow.v2.IQueryParameters|null);

                    /** DetectIntentRequest queryInput. */
                    public queryInput?: (google.cloud.dialogflow.v2.IQueryInput|null);

                    /** DetectIntentRequest outputAudioConfig. */
                    public outputAudioConfig?: (google.cloud.dialogflow.v2.IOutputAudioConfig|null);

                    /** DetectIntentRequest outputAudioConfigMask. */
                    public outputAudioConfigMask?: (google.protobuf.IFieldMask|null);

                    /** DetectIntentRequest inputAudio. */
                    public inputAudio: (Uint8Array|Buffer|string);

                    /**
                     * Creates a new DetectIntentRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DetectIntentRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IDetectIntentRequest): google.cloud.dialogflow.v2.DetectIntentRequest;

                    /**
                     * Encodes the specified DetectIntentRequest message. Does not implicitly {@link google.cloud.dialogflow.v2.DetectIntentRequest.verify|verify} messages.
                     * @param message DetectIntentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IDetectIntentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

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

                    /**
                     * Decodes a DetectIntentRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DetectIntentRequest
                     * @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.cloud.dialogflow.v2.DetectIntentRequest;

                    /**
                     * Decodes a DetectIntentRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DetectIntentRequest
                     * @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.cloud.dialogflow.v2.DetectIntentRequest;

                    /**
                     * Verifies a DetectIntentRequest 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 DetectIntentRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DetectIntentRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.DetectIntentRequest;

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

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

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

                /** Properties of a DetectIntentResponse. */
                interface IDetectIntentResponse {

                    /** DetectIntentResponse responseId */
                    responseId?: (string|null);

                    /** DetectIntentResponse queryResult */
                    queryResult?: (google.cloud.dialogflow.v2.IQueryResult|null);

                    /** DetectIntentResponse webhookStatus */
                    webhookStatus?: (google.rpc.IStatus|null);

                    /** DetectIntentResponse outputAudio */
                    outputAudio?: (Uint8Array|Buffer|string|null);

                    /** DetectIntentResponse outputAudioConfig */
                    outputAudioConfig?: (google.cloud.dialogflow.v2.IOutputAudioConfig|null);
                }

                /** Represents a DetectIntentResponse. */
                class DetectIntentResponse implements IDetectIntentResponse {

                    /**
                     * Constructs a new DetectIntentResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IDetectIntentResponse);

                    /** DetectIntentResponse responseId. */
                    public responseId: string;

                    /** DetectIntentResponse queryResult. */
                    public queryResult?: (google.cloud.dialogflow.v2.IQueryResult|null);

                    /** DetectIntentResponse webhookStatus. */
                    public webhookStatus?: (google.rpc.IStatus|null);

                    /** DetectIntentResponse outputAudio. */
                    public outputAudio: (Uint8Array|Buffer|string);

                    /** DetectIntentResponse outputAudioConfig. */
                    public outputAudioConfig?: (google.cloud.dialogflow.v2.IOutputAudioConfig|null);

                    /**
                     * Creates a new DetectIntentResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DetectIntentResponse instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IDetectIntentResponse): google.cloud.dialogflow.v2.DetectIntentResponse;

                    /**
                     * Encodes the specified DetectIntentResponse message. Does not implicitly {@link google.cloud.dialogflow.v2.DetectIntentResponse.verify|verify} messages.
                     * @param message DetectIntentResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IDetectIntentResponse, writer?: $protobuf.Writer): $protobuf.Writer;

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

                    /**
                     * Decodes a DetectIntentResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DetectIntentResponse
                     * @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.cloud.dialogflow.v2.DetectIntentResponse;

                    /**
                     * Decodes a DetectIntentResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DetectIntentResponse
                     * @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.cloud.dialogflow.v2.DetectIntentResponse;

                    /**
                     * Verifies a DetectIntentResponse 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 DetectIntentResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DetectIntentResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.DetectIntentResponse;

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

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

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

                /** Properties of a QueryParameters. */
                interface IQueryParameters {

                    /** QueryParameters timeZone */
                    timeZone?: (string|null);

                    /** QueryParameters geoLocation */
                    geoLocation?: (google.type.ILatLng|null);

                    /** QueryParameters contexts */
                    contexts?: (google.cloud.dialogflow.v2.IContext[]|null);

                    /** QueryParameters resetContexts */
                    resetContexts?: (boolean|null);

                    /** QueryParameters sessionEntityTypes */
                    sessionEntityTypes?: (google.cloud.dialogflow.v2.ISessionEntityType[]|null);

                    /** QueryParameters payload */
                    payload?: (google.protobuf.IStruct|null);

                    /** QueryParameters sentimentAnalysisRequestConfig */
                    sentimentAnalysisRequestConfig?: (google.cloud.dialogflow.v2.ISentimentAnalysisRequestConfig|null);

                    /** QueryParameters webhookHeaders */
                    webhookHeaders?: ({ [k: string]: string }|null);

                    /** QueryParameters platform */
                    platform?: (string|null);
                }

                /** Represents a QueryParameters. */
                class QueryParameters implements IQueryParameters {

                    /**
                     * Constructs a new QueryParameters.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IQueryParameters);

                    /** QueryParameters timeZone. */
                    public timeZone: string;

                    /** QueryParameters geoLocation. */
                    public geoLocation?: (google.type.ILatLng|null);

                    /** QueryParameters contexts. */
                    public contexts: google.cloud.dialogflow.v2.IContext[];

                    /** QueryParameters resetContexts. */
                    public resetContexts: boolean;

                    /** QueryParameters sessionEntityTypes. */
                    public sessionEntityTypes: google.cloud.dialogflow.v2.ISessionEntityType[];

                    /** QueryParameters payload. */
                    public payload?: (google.protobuf.IStruct|null);

                    /** QueryParameters sentimentAnalysisRequestConfig. */
                    public sentimentAnalysisRequestConfig?: (google.cloud.dialogflow.v2.ISentimentAnalysisRequestConfig|null);

                    /** QueryParameters webhookHeaders. */
                    public webhookHeaders: { [k: string]: string };

                    /** QueryParameters platform. */
                    public platform: string;

                    /**
                     * Creates a new QueryParameters instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns QueryParameters instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IQueryParameters): google.cloud.dialogflow.v2.QueryParameters;

                    /**
                     * Encodes the specified QueryParameters message. Does not implicitly {@link google.cloud.dialogflow.v2.QueryParameters.verify|verify} messages.
                     * @param message QueryParameters message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IQueryParameters, writer?: $protobuf.Writer): $protobuf.Writer;

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

                    /**
                     * Decodes a QueryParameters message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns QueryParameters
                     * @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.cloud.dialogflow.v2.QueryParameters;

                    /**
                     * Decodes a QueryParameters message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns QueryParameters
                     * @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.cloud.dialogflow.v2.QueryParameters;

                    /**
                     * Verifies a QueryParameters 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 QueryParameters message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns QueryParameters
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.QueryParameters;

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

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

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

                /** Properties of a QueryInput. */
                interface IQueryInput {

                    /** QueryInput audioConfig */
                    audioConfig?: (google.cloud.dialogflow.v2.IInputAudioConfig|null);

                    /** QueryInput text */
                    text?: (google.cloud.dialogflow.v2.ITextInput|null);

                    /** QueryInput event */
                    event?: (google.cloud.dialogflow.v2.IEventInput|null);
                }

                /** Represents a QueryInput. */
                class QueryInput implements IQueryInput {

                    /**
                     * Constructs a new QueryInput.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IQueryInput);

                    /** QueryInput audioConfig. */
                    public audioConfig?: (google.cloud.dialogflow.v2.IInputAudioConfig|null);

                    /** QueryInput text. */
                    public text?: (google.cloud.dialogflow.v2.ITextInput|null);

                    /** QueryInput event. */
                    public event?: (google.cloud.dialogflow.v2.IEventInput|null);

                    /** QueryInput input. */
                    public input?: ("audioConfig"|"text"|"event");

                    /**
                     * Creates a new QueryInput instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns QueryInput instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IQueryInput): google.cloud.dialogflow.v2.QueryInput;

                    /**
                     * Encodes the specified QueryInput message. Does not implicitly {@link google.cloud.dialogflow.v2.QueryInput.verify|verify} messages.
                     * @param message QueryInput message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IQueryInput, writer?: $protobuf.Writer): $protobuf.Writer;

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

                    /**
                     * Decodes a QueryInput message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns QueryInput
                     * @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.cloud.dialogflow.v2.QueryInput;

                    /**
                     * Decodes a QueryInput message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns QueryInput
                     * @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.cloud.dialogflow.v2.QueryInput;

                    /**
                     * Verifies a QueryInput 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 QueryInput message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns QueryInput
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.QueryInput;

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

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

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

                /** Properties of a QueryResult. */
                interface IQueryResult {

                    /** QueryResult queryText */
                    queryText?: (string|null);

                    /** QueryResult languageCode */
                    languageCode?: (string|null);

                    /** QueryResult speechRecognitionConfidence */
                    speechRecognitionConfidence?: (number|null);

                    /** QueryResult action */
                    action?: (string|null);

                    /** QueryResult parameters */
                    parameters?: (google.protobuf.IStruct|null);

                    /** QueryResult allRequiredParamsPresent */
                    allRequiredParamsPresent?: (boolean|null);

                    /** QueryResult cancelsSlotFilling */
                    cancelsSlotFilling?: (boolean|null);

                    /** QueryResult fulfillmentText */
                    fulfillmentText?: (string|null);

                    /** QueryResult fulfillmentMessages */
                    fulfillmentMessages?: (google.cloud.dialogflow.v2.Intent.IMessage[]|null);

                    /** QueryResult webhookSource */
                    webhookSource?: (string|null);

                    /** QueryResult webhookPayload */
                    webhookPayload?: (google.protobuf.IStruct|null);

                    /** QueryResult outputContexts */
                    outputContexts?: (google.cloud.dialogflow.v2.IContext[]|null);

                    /** QueryResult intent */
                    intent?: (google.cloud.dialogflow.v2.IIntent|null);

                    /** QueryResult intentDetectionConfidence */
                    intentDetectionConfidence?: (number|null);

                    /** QueryResult diagnosticInfo */
                    diagnosticInfo?: (google.protobuf.IStruct|null);

                    /** QueryResult sentimentAnalysisResult */
                    sentimentAnalysisResult?: (google.cloud.dialogflow.v2.ISentimentAnalysisResult|null);
                }

                /** Represents a QueryResult. */
                class QueryResult implements IQueryResult {

                    /**
                     * Constructs a new QueryResult.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IQueryResult);

                    /** QueryResult queryText. */
                    public queryText: string;

                    /** QueryResult languageCode. */
                    public languageCode: string;

                    /** QueryResult speechRecognitionConfidence. */
                    public speechRecognitionConfidence: number;

                    /** QueryResult action. */
                    public action: string;

                    /** QueryResult parameters. */
                    public parameters?: (google.protobuf.IStruct|null);

                    /** QueryResult allRequiredParamsPresent. */
                    public allRequiredParamsPresent: boolean;

                    /** QueryResult cancelsSlotFilling. */
                    public cancelsSlotFilling: boolean;

                    /** QueryResult fulfillmentText. */
                    public fulfillmentText: string;

                    /** QueryResult fulfillmentMessages. */
                    public fulfillmentMessages: google.cloud.dialogflow.v2.Intent.IMessage[];

                    /** QueryResult webhookSource. */
                    public webhookSource: string;

                    /** QueryResult webhookPayload. */
                    public webhookPayload?: (google.protobuf.IStruct|null);

                    /** QueryResult outputContexts. */
                    public outputContexts: google.cloud.dialogflow.v2.IContext[];

                    /** QueryResult intent. */
                    public intent?: (google.cloud.dialogflow.v2.IIntent|null);

                    /** QueryResult intentDetectionConfidence. */
                    public intentDetectionConfidence: number;

                    /** QueryResult diagnosticInfo. */
                    public diagnosticInfo?: (google.protobuf.IStruct|null);

                    /** QueryResult sentimentAnalysisResult. */
                    public sentimentAnalysisResult?: (google.cloud.dialogflow.v2.ISentimentAnalysisResult|null);

                    /**
                     * Creates a new QueryResult instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns QueryResult instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IQueryResult): google.cloud.dialogflow.v2.QueryResult;

                    /**
                     * Encodes the specified QueryResult message. Does not implicitly {@link google.cloud.dialogflow.v2.QueryResult.verify|verify} messages.
                     * @param message QueryResult message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IQueryResult, writer?: $protobuf.Writer): $protobuf.Writer;

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

                    /**
                     * Decodes a QueryResult message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns QueryResult
                     * @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.cloud.dialogflow.v2.QueryResult;

                    /**
                     * Decodes a QueryResult message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns QueryResult
                     * @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.cloud.dialogflow.v2.QueryResult;

                    /**
                     * Verifies a QueryResult 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 QueryResult message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns QueryResult
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.QueryResult;

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

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

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

                /** Properties of a StreamingDetectIntentRequest. */
                interface IStreamingDetectIntentRequest {

                    /** StreamingDetectIntentRequest session */
                    session?: (string|null);

                    /** StreamingDetectIntentRequest queryParams */
                    queryParams?: (google.cloud.dialogflow.v2.IQueryParameters|null);

                    /** StreamingDetectIntentRequest queryInput */
                    queryInput?: (google.cloud.dialogflow.v2.IQueryInput|null);

                    /** StreamingDetectIntentRequest singleUtterance */
                    singleUtterance?: (boolean|null);

                    /** StreamingDetectIntentRequest outputAudioConfig */
                    outputAudioConfig?: (google.cloud.dialogflow.v2.IOutputAudioConfig|null);

                    /** StreamingDetectIntentRequest outputAudioConfigMask */
                    outputAudioConfigMask?: (google.protobuf.IFieldMask|null);

                    /** StreamingDetectIntentRequest inputAudio */
                    inputAudio?: (Uint8Array|Buffer|string|null);

                    /** StreamingDetectIntentRequest enableDebuggingInfo */
                    enableDebuggingInfo?: (boolean|null);
                }

                /** Represents a StreamingDetectIntentRequest. */
                class StreamingDetectIntentRequest implements IStreamingDetectIntentRequest {

                    /**
                     * Constructs a new StreamingDetectIntentRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IStreamingDetectIntentRequest);

                    /** StreamingDetectIntentRequest session. */
                    public session: string;

                    /** StreamingDetectIntentRequest queryParams. */
                    public queryParams?: (google.cloud.dialogflow.v2.IQueryParameters|null);

                    /** StreamingDetectIntentRequest queryInput. */
                    public queryInput?: (google.cloud.dialogflow.v2.IQueryInput|null);

                    /** StreamingDetectIntentRequest singleUtterance. */
                    public singleUtterance: boolean;

                    /** StreamingDetectIntentRequest outputAudioConfig. */
                    public outputAudioConfig?: (google.cloud.dialogflow.v2.IOutputAudioConfig|null);

                    /** StreamingDetectIntentRequest outputAudioConfigMask. */
                    public outputAudioConfigMask?: (google.protobuf.IFieldMask|null);

                    /** StreamingDetectIntentRequest inputAudio. */
                    public inputAudio: (Uint8Array|Buffer|string);

                    /** StreamingDetectIntentRequest enableDebuggingInfo. */
                    public enableDebuggingInfo: boolean;

                    /**
                     * Creates a new StreamingDetectIntentRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns StreamingDetectIntentRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IStreamingDetectIntentRequest): google.cloud.dialogflow.v2.StreamingDetectIntentRequest;

                    /**
                     * Encodes the specified StreamingDetectIntentRequest message. Does not implicitly {@link google.cloud.dialogflow.v2.StreamingDetectIntentRequest.verify|verify} messages.
                     * @param message StreamingDetectIntentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IStreamingDetectIntentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

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

                    /**
                     * Decodes a StreamingDetectIntentRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns StreamingDetectIntentRequest
                     * @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.cloud.dialogflow.v2.StreamingDetectIntentRequest;

                    /**
                     * Decodes a StreamingDetectIntentRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns StreamingDetectIntentRequest
                     * @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.cloud.dialogflow.v2.StreamingDetectIntentRequest;

                    /**
                     * Verifies a StreamingDetectIntentRequest 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 StreamingDetectIntentRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns StreamingDetectIntentRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.StreamingDetectIntentRequest;

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

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

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

                /** Properties of a CloudConversationDebuggingInfo. */
                interface ICloudConversationDebuggingInfo {

                    /** CloudConversationDebuggingInfo audioDataChunks */
                    audioDataChunks?: (number|null);

                    /** CloudConversationDebuggingInfo resultEndTimeOffset */
                    resultEndTimeOffset?: (google.protobuf.IDuration|null);

                    /** CloudConversationDebuggingInfo firstAudioDuration */
                    firstAudioDuration?: (google.protobuf.IDuration|null);

                    /** CloudConversationDebuggingInfo singleUtterance */
                    singleUtterance?: (boolean|null);

                    /** CloudConversationDebuggingInfo speechPartialResultsEndTimes */
                    speechPartialResultsEndTimes?: (google.protobuf.IDuration[]|null);

                    /** CloudConversationDebuggingInfo speechFinalResultsEndTimes */
                    speechFinalResultsEndTimes?: (google.protobuf.IDuration[]|null);

                    /** CloudConversationDebuggingInfo partialResponses */
                    partialResponses?: (number|null);

                    /** CloudConversationDebuggingInfo speakerIdPassiveLatencyMsOffset */
                    speakerIdPassiveLatencyMsOffset?: (number|null);

                    /** CloudConversationDebuggingInfo bargeinEventTriggered */
                    bargeinEventTriggered?: (boolean|null);

                    /** CloudConversationDebuggingInfo speechSingleUtterance */
                    speechSingleUtterance?: (boolean|null);

                    /** CloudConversationDebuggingInfo dtmfPartialResultsTimes */
                    dtmfPartialResultsTimes?: (google.protobuf.IDuration[]|null);

                    /** CloudConversationDebuggingInfo dtmfFinalResultsTimes */
                    dtmfFinalResultsTimes?: (google.protobuf.IDuration[]|null);

                    /** CloudConversationDebuggingInfo singleUtteranceEndTimeOffset */
                    singleUtteranceEndTimeOffset?: (google.protobuf.IDuration|null);

                    /** CloudConversationDebuggingInfo noSpeechTimeout */
                    noSpeechTimeout?: (google.protobuf.IDuration|null);

                    /** CloudConversationDebuggingInfo endpointingTimeout */
                    endpointingTimeout?: (google.protobuf.IDuration|null);

                    /** CloudConversationDebuggingInfo isInputText */
                    isInputText?: (boolean|null);

                    /** CloudConversationDebuggingInfo clientHalfCloseTimeOffset */
                    clientHalfCloseTimeOffset?: (google.protobuf.IDuration|null);

                    /** CloudConversationDebuggingInfo clientHalfCloseStreamingTimeOffset */
                    clientHalfCloseStreamingTimeOffset?: (google.protobuf.IDuration|null);
                }

                /** Represents a CloudConversationDebuggingInfo. */
                class CloudConversationDebuggingInfo implements ICloudConversationDebuggingInfo {

                    /**
                     * Constructs a new CloudConversationDebuggingInfo.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.ICloudConversationDebuggingInfo);

                    /** CloudConversationDebuggingInfo audioDataChunks. */
                    public audioDataChunks: number;

                    /** CloudConversationDebuggingInfo resultEndTimeOffset. */
                    public resultEndTimeOffset?: (google.protobuf.IDuration|null);

                    /** CloudConversationDebuggingInfo firstAudioDuration. */
                    public firstAudioDuration?: (google.protobuf.IDuration|null);

                    /** CloudConversationDebuggingInfo singleUtterance. */
                    public singleUtterance: boolean;

                    /** CloudConversationDebuggingInfo speechPartialResultsEndTimes. */
                    public speechPartialResultsEndTimes: google.protobuf.IDuration[];

                    /** CloudConversationDebuggingInfo speechFinalResultsEndTimes. */
                    public speechFinalResultsEndTimes: google.protobuf.IDuration[];

                    /** CloudConversationDebuggingInfo partialResponses. */
                    public partialResponses: number;

                    /** CloudConversationDebuggingInfo speakerIdPassiveLatencyMsOffset. */
                    public speakerIdPassiveLatencyMsOffset: number;

                    /** CloudConversationDebuggingInfo bargeinEventTriggered. */
                    public bargeinEventTriggered: boolean;

                    /** CloudConversationDebuggingInfo speechSingleUtterance. */
                    public speechSingleUtterance: boolean;

                    /** CloudConversationDebuggingInfo dtmfPartialResultsTimes. */
                    public dtmfPartialResultsTimes: google.protobuf.IDuration[];

                    /** CloudConversationDebuggingInfo dtmfFinalResultsTimes. */
                    public dtmfFinalResultsTimes: google.protobuf.IDuration[];

                    /** CloudConversationDebuggingInfo singleUtteranceEndTimeOffset. */
                    public singleUtteranceEndTimeOffset?: (google.protobuf.IDuration|null);

                    /** CloudConversationDebuggingInfo noSpeechTimeout. */
                    public noSpeechTimeout?: (google.protobuf.IDuration|null);

                    /** CloudConversationDebuggingInfo endpointingTimeout. */
                    public endpointingTimeout?: (google.protobuf.IDuration|null);

                    /** CloudConversationDebuggingInfo isInputText. */
                    public isInputText: boolean;

                    /** CloudConversationDebuggingInfo clientHalfCloseTimeOffset. */
                    public clientHalfCloseTimeOffset?: (google.protobuf.IDuration|null);

                    /** CloudConversationDebuggingInfo clientHalfCloseStreamingTimeOffset. */
                    public clientHalfCloseStreamingTimeOffset?: (google.protobuf.IDuration|null);

                    /**
                     * Creates a new CloudConversationDebuggingInfo instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CloudConversationDebuggingInfo instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.ICloudConversationDebuggingInfo): google.cloud.dialogflow.v2.CloudConversationDebuggingInfo;

                    /**
                     * Encodes the specified CloudConversationDebuggingInfo message. Does not implicitly {@link google.cloud.dialogflow.v2.CloudConversationDebuggingInfo.verify|verify} messages.
                     * @param message CloudConversationDebuggingInfo message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.ICloudConversationDebuggingInfo, writer?: $protobuf.Writer): $protobuf.Writer;

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

                    /**
                     * Decodes a CloudConversationDebuggingInfo message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CloudConversationDebuggingInfo
                     * @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.cloud.dialogflow.v2.CloudConversationDebuggingInfo;

                    /**
                     * Decodes a CloudConversationDebuggingInfo message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CloudConversationDebuggingInfo
                     * @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.cloud.dialogflow.v2.CloudConversationDebuggingInfo;

                    /**
                     * Verifies a CloudConversationDebuggingInfo 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 CloudConversationDebuggingInfo message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CloudConversationDebuggingInfo
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.CloudConversationDebuggingInfo;

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

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

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

                /** Properties of a StreamingDetectIntentResponse. */
                interface IStreamingDetectIntentResponse {

                    /** StreamingDetectIntentResponse responseId */
                    responseId?: (string|null);

                    /** StreamingDetectIntentResponse recognitionResult */
                    recognitionResult?: (google.cloud.dialogflow.v2.IStreamingRecognitionResult|null);

                    /** StreamingDetectIntentResponse queryResult */
                    queryResult?: (google.cloud.dialogflow.v2.IQueryResult|null);

                    /** StreamingDetectIntentResponse webhookStatus */
                    webhookStatus?: (google.rpc.IStatus|null);

                    /** StreamingDetectIntentResponse outputAudio */
                    outputAudio?: (Uint8Array|Buffer|string|null);

                    /** StreamingDetectIntentResponse outputAudioConfig */
                    outputAudioConfig?: (google.cloud.dialogflow.v2.IOutputAudioConfig|null);

                    /** StreamingDetectIntentResponse debuggingInfo */
                    debuggingInfo?: (google.cloud.dialogflow.v2.ICloudConversationDebuggingInfo|null);
                }

                /** Represents a StreamingDetectIntentResponse. */
                class StreamingDetectIntentResponse implements IStreamingDetectIntentResponse {

                    /**
                     * Constructs a new StreamingDetectIntentResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IStreamingDetectIntentResponse);

                    /** StreamingDetectIntentResponse responseId. */
                    public responseId: string;

                    /** StreamingDetectIntentResponse recognitionResult. */
                    public recognitionResult?: (google.cloud.dialogflow.v2.IStreamingRecognitionResult|null);

                    /** StreamingDetectIntentResponse queryResult. */
                    public queryResult?: (google.cloud.dialogflow.v2.IQueryResult|null);

                    /** StreamingDetectIntentResponse webhookStatus. */
                    public webhookStatus?: (google.rpc.IStatus|null);

                    /** StreamingDetectIntentResponse outputAudio. */
                    public outputAudio: (Uint8Array|Buffer|string);

                    /** StreamingDetectIntentResponse outputAudioConfig. */
                    public outputAudioConfig?: (google.cloud.dialogflow.v2.IOutputAudioConfig|null);

                    /** StreamingDetectIntentResponse debuggingInfo. */
                    public debuggingInfo?: (google.cloud.dialogflow.v2.ICloudConversationDebuggingInfo|null);

                    /**
                     * Creates a new StreamingDetectIntentResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns StreamingDetectIntentResponse instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IStreamingDetectIntentResponse): google.cloud.dialogflow.v2.StreamingDetectIntentResponse;

                    /**
                     * Encodes the specified StreamingDetectIntentResponse message. Does not implicitly {@link google.cloud.dialogflow.v2.StreamingDetectIntentResponse.verify|verify} messages.
                     * @param message StreamingDetectIntentResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IStreamingDetectIntentResponse, writer?: $protobuf.Writer): $protobuf.Writer;

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

                    /**
                     * Decodes a StreamingDetectIntentResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns StreamingDetectIntentResponse
                     * @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.cloud.dialogflow.v2.StreamingDetectIntentResponse;

                    /**
                     * Decodes a StreamingDetectIntentResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns StreamingDetectIntentResponse
                     * @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.cloud.dialogflow.v2.StreamingDetectIntentResponse;

                    /**
                     * Verifies a StreamingDetectIntentResponse 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 StreamingDetectIntentResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns StreamingDetectIntentResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.StreamingDetectIntentResponse;

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

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

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

                /** Properties of a StreamingRecognitionResult. */
                interface IStreamingRecognitionResult {

                    /** StreamingRecognitionResult messageType */
                    messageType?: (google.cloud.dialogflow.v2.StreamingRecognitionResult.MessageType|keyof typeof google.cloud.dialogflow.v2.StreamingRecognitionResult.MessageType|null);

                    /** StreamingRecognitionResult transcript */
                    transcript?: (string|null);

                    /** StreamingRecognitionResult isFinal */
                    isFinal?: (boolean|null);

                    /** StreamingRecognitionResult confidence */
                    confidence?: (number|null);

                    /** StreamingRecognitionResult speechWordInfo */
                    speechWordInfo?: (google.cloud.dialogflow.v2.ISpeechWordInfo[]|null);

                    /** StreamingRecognitionResult speechEndOffset */
                    speechEndOffset?: (google.protobuf.IDuration|null);

                    /** StreamingRecognitionResult languageCode */
                    languageCode?: (string|null);
                }

                /** Represents a StreamingRecognitionResult. */
                class StreamingRecognitionResult implements IStreamingRecognitionResult {

                    /**
                     * Constructs a new StreamingRecognitionResult.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IStreamingRecognitionResult);

                    /** StreamingRecognitionResult messageType. */
                    public messageType: (google.cloud.dialogflow.v2.StreamingRecognitionResult.MessageType|keyof typeof google.cloud.dialogflow.v2.StreamingRecognitionResult.MessageType);

                    /** StreamingRecognitionResult transcript. */
                    public transcript: string;

                    /** StreamingRecognitionResult isFinal. */
                    public isFinal: boolean;

                    /** StreamingRecognitionResult confidence. */
                    public confidence: number;

                    /** StreamingRecognitionResult speechWordInfo. */
                    public speechWordInfo: google.cloud.dialogflow.v2.ISpeechWordInfo[];

                    /** StreamingRecognitionResult speechEndOffset. */
                    public speechEndOffset?: (google.protobuf.IDuration|null);

                    /** StreamingRecognitionResult languageCode. */
                    public languageCode: string;

                    /**
                     * Creates a new StreamingRecognitionResult instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns StreamingRecognitionResult instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IStreamingRecognitionResult): google.cloud.dialogflow.v2.StreamingRecognitionResult;

                    /**
                     * Encodes the specified StreamingRecognitionResult message. Does not implicitly {@link google.cloud.dialogflow.v2.StreamingRecognitionResult.verify|verify} messages.
                     * @param message StreamingRecognitionResult message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IStreamingRecognitionResult, writer?: $protobuf.Writer): $protobuf.Writer;

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

                    /**
                     * Decodes a StreamingRecognitionResult message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns StreamingRecognitionResult
                     * @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.cloud.dialogflow.v2.StreamingRecognitionResult;

                    /**
                     * Decodes a StreamingRecognitionResult message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns StreamingRecognitionResult
                     * @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.cloud.dialogflow.v2.StreamingRecognitionResult;

                    /**
                     * Verifies a StreamingRecognitionResult 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 StreamingRecognitionResult message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns StreamingRecognitionResult
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.StreamingRecognitionResult;

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

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

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

                namespace StreamingRecognitionResult {

                    /** MessageType enum. */
                    enum MessageType {
                        MESSAGE_TYPE_UNSPECIFIED = 0,
                        TRANSCRIPT = 1,
                        END_OF_SINGLE_UTTERANCE = 2
                    }
                }

                /** Properties of a TextInput. */
                interface ITextInput {

                    /** TextInput text */
                    text?: (string|null);

                    /** TextInput languageCode */
                    languageCode?: (string|null);
                }

                /** Represents a TextInput. */
                class TextInput implements ITextInput {

                    /**
                     * Constructs a new TextInput.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.ITextInput);

                    /** TextInput text. */
                    public text: string;

                    /** TextInput languageCode. */
                    public languageCode: string;

                    /**
                     * Creates a new TextInput instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TextInput instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.ITextInput): google.cloud.dialogflow.v2.TextInput;

                    /**
                     * Encodes the specified TextInput message. Does not implicitly {@link google.cloud.dialogflow.v2.TextInput.verify|verify} messages.
                     * @param message TextInput message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.ITextInput, writer?: $protobuf.Writer): $protobuf.Writer;

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

                    /**
                     * Decodes a TextInput message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TextInput
                     * @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.cloud.dialogflow.v2.TextInput;

                    /**
                     * Decodes a TextInput message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TextInput
                     * @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.cloud.dialogflow.v2.TextInput;

                    /**
                     * Verifies a TextInput 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 TextInput message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TextInput
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.TextInput;

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

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

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

                /** Properties of an EventInput. */
                interface IEventInput {

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

                    /** EventInput parameters */
                    parameters?: (google.protobuf.IStruct|null);

                    /** EventInput languageCode */
                    languageCode?: (string|null);
                }

                /** Represents an EventInput. */
                class EventInput implements IEventInput {

                    /**
                     * Constructs a new EventInput.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IEventInput);

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

                    /** EventInput parameters. */
                    public parameters?: (google.protobuf.IStruct|null);

                    /** EventInput languageCode. */
                    public languageCode: string;

                    /**
                     * Creates a new EventInput instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns EventInput instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IEventInput): google.cloud.dialogflow.v2.EventInput;

                    /**
                     * Encodes the specified EventInput message. Does not implicitly {@link google.cloud.dialogflow.v2.EventInput.verify|verify} messages.
                     * @param message EventInput message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IEventInput, writer?: $protobuf.Writer): $protobuf.Writer;

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

                    /**
                     * Decodes an EventInput message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns EventInput
                     * @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.cloud.dialogflow.v2.EventInput;

                    /**
                     * Decodes an EventInput message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns EventInput
                     * @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.cloud.dialogflow.v2.EventInput;

                    /**
                     * Verifies an EventInput 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 EventInput message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns EventInput
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.EventInput;

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

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

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

                /** Properties of a SentimentAnalysisRequestConfig. */
                interface ISentimentAnalysisRequestConfig {

                    /** SentimentAnalysisRequestConfig analyzeQueryTextSentiment */
                    analyzeQueryTextSentiment?: (boolean|null);
                }

                /** Represents a SentimentAnalysisRequestConfig. */
                class SentimentAnalysisRequestConfig implements ISentimentAnalysisRequestConfig {

                    /**
                     * Constructs a new SentimentAnalysisRequestConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.ISentimentAnalysisRequestConfig);

                    /** SentimentAnalysisRequestConfig analyzeQueryTextSentiment. */
                    public analyzeQueryTextSentiment: boolean;

                    /**
                     * Creates a new SentimentAnalysisRequestConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SentimentAnalysisRequestConfig instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.ISentimentAnalysisRequestConfig): google.cloud.dialogflow.v2.SentimentAnalysisRequestConfig;

                    /**
                     * Encodes the specified SentimentAnalysisRequestConfig message. Does not implicitly {@link google.cloud.dialogflow.v2.SentimentAnalysisRequestConfig.verify|verify} messages.
                     * @param message SentimentAnalysisRequestConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.ISentimentAnalysisRequestConfig, writer?: $protobuf.Writer): $protobuf.Writer;

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

                    /**
                     * Decodes a SentimentAnalysisRequestConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SentimentAnalysisRequestConfig
                     * @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.cloud.dialogflow.v2.SentimentAnalysisRequestConfig;

                    /**
                     * Decodes a SentimentAnalysisRequestConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SentimentAnalysisRequestConfig
                     * @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.cloud.dialogflow.v2.SentimentAnalysisRequestConfig;

                    /**
                     * Verifies a SentimentAnalysisRequestConfig 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 SentimentAnalysisRequestConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SentimentAnalysisRequestConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.SentimentAnalysisRequestConfig;

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

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

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

                /** Properties of a SentimentAnalysisResult. */
                interface ISentimentAnalysisResult {

                    /** SentimentAnalysisResult queryTextSentiment */
                    queryTextSentiment?: (google.cloud.dialogflow.v2.ISentiment|null);
                }

                /** Represents a SentimentAnalysisResult. */
                class SentimentAnalysisResult implements ISentimentAnalysisResult {

                    /**
                     * Constructs a new SentimentAnalysisResult.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.ISentimentAnalysisResult);

                    /** SentimentAnalysisResult queryTextSentiment. */
                    public queryTextSentiment?: (google.cloud.dialogflow.v2.ISentiment|null);

                    /**
                     * Creates a new SentimentAnalysisResult instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SentimentAnalysisResult instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.ISentimentAnalysisResult): google.cloud.dialogflow.v2.SentimentAnalysisResult;

                    /**
                     * Encodes the specified SentimentAnalysisResult message. Does not implicitly {@link google.cloud.dialogflow.v2.SentimentAnalysisResult.verify|verify} messages.
                     * @param message SentimentAnalysisResult message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.ISentimentAnalysisResult, writer?: $protobuf.Writer): $protobuf.Writer;

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

                    /**
                     * Decodes a SentimentAnalysisResult message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SentimentAnalysisResult
                     * @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.cloud.dialogflow.v2.SentimentAnalysisResult;

                    /**
                     * Decodes a SentimentAnalysisResult message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SentimentAnalysisResult
                     * @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.cloud.dialogflow.v2.SentimentAnalysisResult;

                    /**
                     * Verifies a SentimentAnalysisResult 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 SentimentAnalysisResult message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SentimentAnalysisResult
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.SentimentAnalysisResult;

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

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

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

                /** Properties of a Sentiment. */
                interface ISentiment {

                    /** Sentiment score */
                    score?: (number|null);

                    /** Sentiment magnitude */
                    magnitude?: (number|null);
                }

                /** Represents a Sentiment. */
                class Sentiment implements ISentiment {

                    /**
                     * Constructs a new Sentiment.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.ISentiment);

                    /** Sentiment score. */
                    public score: number;

                    /** Sentiment magnitude. */
                    public magnitude: number;

                    /**
                     * Creates a new Sentiment instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Sentiment instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.ISentiment): google.cloud.dialogflow.v2.Sentiment;

                    /**
                     * Encodes the specified Sentiment message. Does not implicitly {@link google.cloud.dialogflow.v2.Sentiment.verify|verify} messages.
                     * @param message Sentiment message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.ISentiment, writer?: $protobuf.Writer): $protobuf.Writer;

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

                    /**
                     * Decodes a Sentiment message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Sentiment
                     * @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.cloud.dialogflow.v2.Sentiment;

                    /**
                     * Decodes a Sentiment message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Sentiment
                     * @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.cloud.dialogflow.v2.Sentiment;

                    /**
                     * Verifies a Sentiment 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 Sentiment message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Sentiment
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.Sentiment;

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

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

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

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

                    /**
                     * Constructs a new Contexts 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 Contexts 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): Contexts;

                    /**
                     * Calls ListContexts.
                     * @param request ListContextsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ListContextsResponse
                     */
                    public listContexts(request: google.cloud.dialogflow.v2.IListContextsRequest, callback: google.cloud.dialogflow.v2.Contexts.ListContextsCallback): void;

                    /**
                     * Calls ListContexts.
                     * @param request ListContextsRequest message or plain object
                     * @returns Promise
                     */
                    public listContexts(request: google.cloud.dialogflow.v2.IListContextsRequest): Promise<google.cloud.dialogflow.v2.ListContextsResponse>;

                    /**
                     * Calls GetContext.
                     * @param request GetContextRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Context
                     */
                    public getContext(request: google.cloud.dialogflow.v2.IGetContextRequest, callback: google.cloud.dialogflow.v2.Contexts.GetContextCallback): void;

                    /**
                     * Calls GetContext.
                     * @param request GetContextRequest message or plain object
                     * @returns Promise
                     */
                    public getContext(request: google.cloud.dialogflow.v2.IGetContextRequest): Promise<google.cloud.dialogflow.v2.Context>;

                    /**
                     * Calls CreateContext.
                     * @param request CreateContextRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Context
                     */
                    public createContext(request: google.cloud.dialogflow.v2.ICreateContextRequest, callback: google.cloud.dialogflow.v2.Contexts.CreateContextCallback): void;

                    /**
                     * Calls CreateContext.
                     * @param request CreateContextRequest message or plain object
                     * @returns Promise
                     */
                    public createContext(request: google.cloud.dialogflow.v2.ICreateContextRequest): Promise<google.cloud.dialogflow.v2.Context>;

                    /**
                     * Calls UpdateContext.
                     * @param request UpdateContextRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Context
                     */
                    public updateContext(request: google.cloud.dialogflow.v2.IUpdateContextRequest, callback: google.cloud.dialogflow.v2.Contexts.UpdateContextCallback): void;

                    /**
                     * Calls UpdateContext.
                     * @param request UpdateContextRequest message or plain object
                     * @returns Promise
                     */
                    public updateContext(request: google.cloud.dialogflow.v2.IUpdateContextRequest): Promise<google.cloud.dialogflow.v2.Context>;

                    /**
                     * Calls DeleteContext.
                     * @param request DeleteContextRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Empty
                     */
                    public deleteContext(request: google.cloud.dialogflow.v2.IDeleteContextRequest, callback: google.cloud.dialogflow.v2.Contexts.DeleteContextCallback): void;

                    /**
                     * Calls DeleteContext.
                     * @param request DeleteContextRequest message or plain object
                     * @returns Promise
                     */
                    public deleteContext(request: google.cloud.dialogflow.v2.IDeleteContextRequest): Promise<google.protobuf.Empty>;

                    /**
                     * Calls DeleteAllContexts.
                     * @param request DeleteAllContextsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Empty
                     */
                    public deleteAllContexts(request: google.cloud.dialogflow.v2.IDeleteAllContextsRequest, callback: google.cloud.dialogflow.v2.Contexts.DeleteAllContextsCallback): void;

                    /**
                     * Calls DeleteAllContexts.
                     * @param request DeleteAllContextsRequest message or plain object
                     * @returns Promise
                     */
                    public deleteAllContexts(request: google.cloud.dialogflow.v2.IDeleteAllContextsRequest): Promise<google.protobuf.Empty>;
                }

                namespace Contexts {

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2.Contexts|listContexts}.
                     * @param error Error, if any
                     * @param [response] ListContextsResponse
                     */
                    type ListContextsCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2.ListContextsResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2.Contexts|getContext}.
                     * @param error Error, if any
                     * @param [response] Context
                     */
                    type GetContextCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2.Context) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2.Contexts|createContext}.
                     * @param error Error, if any
                     * @param [response] Context
                     */
                    type CreateContextCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2.Context) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2.Contexts|updateContext}.
                     * @param error Error, if any
                     * @param [response] Context
                     */
                    type UpdateContextCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2.Context) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2.Contexts|deleteContext}.
                     * @param error Error, if any
                     * @param [response] Empty
                     */
                    type DeleteContextCallback = (error: (Error|null), response?: google.protobuf.Empty) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2.Contexts|deleteAllContexts}.
                     * @param error Error, if any
                     * @param [response] Empty
                     */
                    type DeleteAllContextsCallback = (error: (Error|null), response?: google.protobuf.Empty) => void;
                }

                /** Properties of a Context. */
                interface IContext {

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

                    /** Context lifespanCount */
                    lifespanCount?: (number|null);

                    /** Context parameters */
                    parameters?: (google.protobuf.IStruct|null);
                }

                /** Represents a Context. */
                class Context implements IContext {

                    /**
                     * Constructs a new Context.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IContext);

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

                    /** Context lifespanCount. */
                    public lifespanCount: number;

                    /** Context parameters. */
                    public parameters?: (google.protobuf.IStruct|null);

                    /**
                     * Creates a new Context instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Context instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IContext): google.cloud.dialogflow.v2.Context;

                    /**
                     * Encodes the specified Context message. Does not implicitly {@link google.cloud.dialogflow.v2.Context.verify|verify} messages.
                     * @param message Context message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IContext, writer?: $protobuf.Writer): $protobuf.Writer;

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

                    /**
                     * Decodes a Context message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Context
                     * @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.cloud.dialogflow.v2.Context;

                    /**
                     * Decodes a Context message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Context
                     * @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.cloud.dialogflow.v2.Context;

                    /**
                     * Verifies a Context 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 Context message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Context
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.Context;

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

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

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

                /** Properties of a ListContextsRequest. */
                interface IListContextsRequest {

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

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

                    /** ListContextsRequest pageToken */
                    pageToken?: (string|null);
                }

                /** Represents a ListContextsRequest. */
                class ListContextsRequest implements IListContextsRequest {

                    /**
                     * Constructs a new ListContextsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IListContextsRequest);

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

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

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

                    /**
                     * Creates a new ListContextsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListContextsRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IListContextsRequest): google.cloud.dialogflow.v2.ListContextsRequest;

                    /**
                     * Encodes the specified ListContextsRequest message. Does not implicitly {@link google.cloud.dialogflow.v2.ListContextsRequest.verify|verify} messages.
                     * @param message ListContextsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IListContextsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

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

                    /**
                     * Decodes a ListContextsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListContextsRequest
                     * @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.cloud.dialogflow.v2.ListContextsRequest;

                    /**
                     * Decodes a ListContextsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListContextsRequest
                     * @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.cloud.dialogflow.v2.ListContextsRequest;

                    /**
                     * Verifies a ListContextsRequest 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 ListContextsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListContextsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.ListContextsRequest;

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

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

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

                /** Properties of a ListContextsResponse. */
                interface IListContextsResponse {

                    /** ListContextsResponse contexts */
                    contexts?: (google.cloud.dialogflow.v2.IContext[]|null);

                    /** ListContextsResponse nextPageToken */
                    nextPageToken?: (string|null);
                }

                /** Represents a ListContextsResponse. */
                class ListContextsResponse implements IListContextsResponse {

                    /**
                     * Constructs a new ListContextsResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IListContextsResponse);

                    /** ListContextsResponse contexts. */
                    public contexts: google.cloud.dialogflow.v2.IContext[];

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

                    /**
                     * Creates a new ListContextsResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListContextsResponse instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IListContextsResponse): google.cloud.dialogflow.v2.ListContextsResponse;

                    /**
                     * Encodes the specified ListContextsResponse message. Does not implicitly {@link google.cloud.dialogflow.v2.ListContextsResponse.verify|verify} messages.
                     * @param message ListContextsResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IListContextsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

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

                    /**
                     * Decodes a ListContextsResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListContextsResponse
                     * @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.cloud.dialogflow.v2.ListContextsResponse;

                    /**
                     * Decodes a ListContextsResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListContextsResponse
                     * @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.cloud.dialogflow.v2.ListContextsResponse;

                    /**
                     * Verifies a ListContextsResponse 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 ListContextsResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListContextsResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.ListContextsResponse;

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

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

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

                /** Properties of a GetContextRequest. */
                interface IGetContextRequest {

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

                /** Represents a GetContextRequest. */
                class GetContextRequest implements IGetContextRequest {

                    /**
                     * Constructs a new GetContextRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IGetContextRequest);

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

                    /**
                     * Creates a new GetContextRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetContextRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IGetContextRequest): google.cloud.dialogflow.v2.GetContextRequest;

                    /**
                     * Encodes the specified GetContextRequest message. Does not implicitly {@link google.cloud.dialogflow.v2.GetContextRequest.verify|verify} messages.
                     * @param message GetContextRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IGetContextRequest, writer?: $protobuf.Writer): $protobuf.Writer;

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

                    /**
                     * Decodes a GetContextRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetContextRequest
                     * @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.cloud.dialogflow.v2.GetContextRequest;

                    /**
                     * Decodes a GetContextRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetContextRequest
                     * @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.cloud.dialogflow.v2.GetContextRequest;

                    /**
                     * Verifies a GetContextRequest 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 GetContextRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetContextRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.GetContextRequest;

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

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

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

                /** Properties of a CreateContextRequest. */
                interface ICreateContextRequest {

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

                    /** CreateContextRequest context */
                    context?: (google.cloud.dialogflow.v2.IContext|null);
                }

                /** Represents a CreateContextRequest. */
                class CreateContextRequest implements ICreateContextRequest {

                    /**
                     * Constructs a new CreateContextRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.ICreateContextRequest);

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

                    /** CreateContextRequest context. */
                    public context?: (google.cloud.dialogflow.v2.IContext|null);

                    /**
                     * Creates a new CreateContextRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CreateContextRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.ICreateContextRequest): google.cloud.dialogflow.v2.CreateContextRequest;

                    /**
                     * Encodes the specified CreateContextRequest message. Does not implicitly {@link google.cloud.dialogflow.v2.CreateContextRequest.verify|verify} messages.
                     * @param message CreateContextRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.ICreateContextRequest, writer?: $protobuf.Writer): $protobuf.Writer;

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

                    /**
                     * Decodes a CreateContextRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CreateContextRequest
                     * @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.cloud.dialogflow.v2.CreateContextRequest;

                    /**
                     * Decodes a CreateContextRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CreateContextRequest
                     * @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.cloud.dialogflow.v2.CreateContextRequest;

                    /**
                     * Verifies a CreateContextRequest 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 CreateContextRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CreateContextRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.CreateContextRequest;

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

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

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

                /** Properties of an UpdateContextRequest. */
                interface IUpdateContextRequest {

                    /** UpdateContextRequest context */
                    context?: (google.cloud.dialogflow.v2.IContext|null);

                    /** UpdateContextRequest updateMask */
                    updateMask?: (google.protobuf.IFieldMask|null);
                }

                /** Represents an UpdateContextRequest. */
                class UpdateContextRequest implements IUpdateContextRequest {

                    /**
                     * Constructs a new UpdateContextRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IUpdateContextRequest);

                    /** UpdateContextRequest context. */
                    public context?: (google.cloud.dialogflow.v2.IContext|null);

                    /** UpdateContextRequest updateMask. */
                    public updateMask?: (google.protobuf.IFieldMask|null);

                    /**
                     * Creates a new UpdateContextRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UpdateContextRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IUpdateContextRequest): google.cloud.dialogflow.v2.UpdateContextRequest;

                    /**
                     * Encodes the specified UpdateContextRequest message. Does not implicitly {@link google.cloud.dialogflow.v2.UpdateContextRequest.verify|verify} messages.
                     * @param message UpdateContextRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IUpdateContextRequest, writer?: $protobuf.Writer): $protobuf.Writer;

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

                    /**
                     * Decodes an UpdateContextRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns UpdateContextRequest
                     * @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.cloud.dialogflow.v2.UpdateContextRequest;

                    /**
                     * Decodes an UpdateContextRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns UpdateContextRequest
                     * @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.cloud.dialogflow.v2.UpdateContextRequest;

                    /**
                     * Verifies an UpdateContextRequest 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 UpdateContextRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UpdateContextRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.UpdateContextRequest;

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

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

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

                /** Properties of a DeleteContextRequest. */
                interface IDeleteContextRequest {

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

                /** Represents a DeleteContextRequest. */
                class DeleteContextRequest implements IDeleteContextRequest {

                    /**
                     * Constructs a new DeleteContextRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IDeleteContextRequest);

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

                    /**
                     * Creates a new DeleteContextRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteContextRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IDeleteContextRequest): google.cloud.dialogflow.v2.DeleteContextRequest;

                    /**
                     * Encodes the specified DeleteContextRequest message. Does not implicitly {@link google.cloud.dialogflow.v2.DeleteContextRequest.verify|verify} messages.
                     * @param message DeleteContextRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IDeleteContextRequest, writer?: $protobuf.Writer): $protobuf.Writer;

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

                    /**
                     * Decodes a DeleteContextRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteContextRequest
                     * @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.cloud.dialogflow.v2.DeleteContextRequest;

                    /**
                     * Decodes a DeleteContextRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteContextRequest
                     * @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.cloud.dialogflow.v2.DeleteContextRequest;

                    /**
                     * Verifies a DeleteContextRequest 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 DeleteContextRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteContextRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.DeleteContextRequest;

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

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

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

                /** Properties of a DeleteAllContextsRequest. */
                interface IDeleteAllContextsRequest {

                    /** DeleteAllContextsRequest parent */
                    parent?: (string|null);
                }

                /** Represents a DeleteAllContextsRequest. */
                class DeleteAllContextsRequest implements IDeleteAllContextsRequest {

                    /**
                     * Constructs a new DeleteAllContextsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IDeleteAllContextsRequest);

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

                    /**
                     * Creates a new DeleteAllContextsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteAllContextsRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IDeleteAllContextsRequest): google.cloud.dialogflow.v2.DeleteAllContextsRequest;

                    /**
                     * Encodes the specified DeleteAllContextsRequest message. Does not implicitly {@link google.cloud.dialogflow.v2.DeleteAllContextsRequest.verify|verify} messages.
                     * @param message DeleteAllContextsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IDeleteAllContextsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

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

                    /**
                     * Decodes a DeleteAllContextsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteAllContextsRequest
                     * @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.cloud.dialogflow.v2.DeleteAllContextsRequest;

                    /**
                     * Decodes a DeleteAllContextsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteAllContextsRequest
                     * @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.cloud.dialogflow.v2.DeleteAllContextsRequest;

                    /**
                     * Verifies a DeleteAllContextsRequest 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 DeleteAllContextsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteAllContextsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.DeleteAllContextsRequest;

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

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

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

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

                    /**
                     * Constructs a new Intents 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 Intents 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): Intents;

                    /**
                     * Calls ListIntents.
                     * @param request ListIntentsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ListIntentsResponse
                     */
                    public listIntents(request: google.cloud.dialogflow.v2.IListIntentsRequest, callback: google.cloud.dialogflow.v2.Intents.ListIntentsCallback): void;

                    /**
                     * Calls ListIntents.
                     * @param request ListIntentsRequest message or plain object
                     * @returns Promise
                     */
                    public listIntents(request: google.cloud.dialogflow.v2.IListIntentsRequest): Promise<google.cloud.dialogflow.v2.ListIntentsResponse>;

                    /**
                     * Calls GetIntent.
                     * @param request GetIntentRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Intent
                     */
                    public getIntent(request: google.cloud.dialogflow.v2.IGetIntentRequest, callback: google.cloud.dialogflow.v2.Intents.GetIntentCallback): void;

                    /**
                     * Calls GetIntent.
                     * @param request GetIntentRequest message or plain object
                     * @returns Promise
                     */
                    public getIntent(request: google.cloud.dialogflow.v2.IGetIntentRequest): Promise<google.cloud.dialogflow.v2.Intent>;

                    /**
                     * Calls CreateIntent.
                     * @param request CreateIntentRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Intent
                     */
                    public createIntent(request: google.cloud.dialogflow.v2.ICreateIntentRequest, callback: google.cloud.dialogflow.v2.Intents.CreateIntentCallback): void;

                    /**
                     * Calls CreateIntent.
                     * @param request CreateIntentRequest message or plain object
                     * @returns Promise
                     */
                    public createIntent(request: google.cloud.dialogflow.v2.ICreateIntentRequest): Promise<google.cloud.dialogflow.v2.Intent>;

                    /**
                     * Calls UpdateIntent.
                     * @param request UpdateIntentRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Intent
                     */
                    public updateIntent(request: google.cloud.dialogflow.v2.IUpdateIntentRequest, callback: google.cloud.dialogflow.v2.Intents.UpdateIntentCallback): void;

                    /**
                     * Calls UpdateIntent.
                     * @param request UpdateIntentRequest message or plain object
                     * @returns Promise
                     */
                    public updateIntent(request: google.cloud.dialogflow.v2.IUpdateIntentRequest): Promise<google.cloud.dialogflow.v2.Intent>;

                    /**
                     * Calls DeleteIntent.
                     * @param request DeleteIntentRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Empty
                     */
                    public deleteIntent(request: google.cloud.dialogflow.v2.IDeleteIntentRequest, callback: google.cloud.dialogflow.v2.Intents.DeleteIntentCallback): void;

                    /**
                     * Calls DeleteIntent.
                     * @param request DeleteIntentRequest message or plain object
                     * @returns Promise
                     */
                    public deleteIntent(request: google.cloud.dialogflow.v2.IDeleteIntentRequest): Promise<google.protobuf.Empty>;

                    /**
                     * Calls BatchUpdateIntents.
                     * @param request BatchUpdateIntentsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public batchUpdateIntents(request: google.cloud.dialogflow.v2.IBatchUpdateIntentsRequest, callback: google.cloud.dialogflow.v2.Intents.BatchUpdateIntentsCallback): void;

                    /**
                     * Calls BatchUpdateIntents.
                     * @param request BatchUpdateIntentsRequest message or plain object
                     * @returns Promise
                     */
                    public batchUpdateIntents(request: google.cloud.dialogflow.v2.IBatchUpdateIntentsRequest): Promise<google.longrunning.Operation>;

                    /**
                     * Calls BatchDeleteIntents.
                     * @param request BatchDeleteIntentsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public batchDeleteIntents(request: google.cloud.dialogflow.v2.IBatchDeleteIntentsRequest, callback: google.cloud.dialogflow.v2.Intents.BatchDeleteIntentsCallback): void;

                    /**
                     * Calls BatchDeleteIntents.
                     * @param request BatchDeleteIntentsRequest message or plain object
                     * @returns Promise
                     */
                    public batchDeleteIntents(request: google.cloud.dialogflow.v2.IBatchDeleteIntentsRequest): Promise<google.longrunning.Operation>;
                }

                namespace Intents {

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2.Intents|listIntents}.
                     * @param error Error, if any
                     * @param [response] ListIntentsResponse
                     */
                    type ListIntentsCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2.ListIntentsResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2.Intents|getIntent}.
                     * @param error Error, if any
                     * @param [response] Intent
                     */
                    type GetIntentCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2.Intent) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2.Intents|createIntent}.
                     * @param error Error, if any
                     * @param [response] Intent
                     */
                    type CreateIntentCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2.Intent) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2.Intents|updateIntent}.
                     * @param error Error, if any
                     * @param [response] Intent
                     */
                    type UpdateIntentCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2.Intent) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2.Intents|deleteIntent}.
                     * @param error Error, if any
                     * @param [response] Empty
                     */
                    type DeleteIntentCallback = (error: (Error|null), response?: google.protobuf.Empty) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2.Intents|batchUpdateIntents}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type BatchUpdateIntentsCallback = (error: (Error|null), response?: google.longrunning.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2.Intents|batchDeleteIntents}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type BatchDeleteIntentsCallback = (error: (Error|null), response?: google.longrunning.Operation) => void;
                }

                /** Properties of an Intent. */
                interface IIntent {

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

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

                    /** Intent webhookState */
                    webhookState?: (google.cloud.dialogflow.v2.Intent.WebhookState|keyof typeof google.cloud.dialogflow.v2.Intent.WebhookState|null);

                    /** Intent priority */
                    priority?: (number|null);

                    /** Intent isFallback */
                    isFallback?: (boolean|null);

                    /** Intent mlDisabled */
                    mlDisabled?: (boolean|null);

                    /** Intent liveAgentHandoff */
                    liveAgentHandoff?: (boolean|null);

                    /** Intent endInteraction */
                    endInteraction?: (boolean|null);

                    /** Intent inputContextNames */
                    inputContextNames?: (string[]|null);

                    /** Intent events */
                    events?: (string[]|null);

                    /** Intent trainingPhrases */
                    trainingPhrases?: (google.cloud.dialogflow.v2.Intent.ITrainingPhrase[]|null);

                    /** Intent action */
                    action?: (string|null);

                    /** Intent outputContexts */
                    outputContexts?: (google.cloud.dialogflow.v2.IContext[]|null);

                    /** Intent resetContexts */
                    resetContexts?: (boolean|null);

                    /** Intent parameters */
                    parameters?: (google.cloud.dialogflow.v2.Intent.IParameter[]|null);

                    /** Intent messages */
                    messages?: (google.cloud.dialogflow.v2.Intent.IMessage[]|null);

                    /** Intent defaultResponsePlatforms */
                    defaultResponsePlatforms?: (google.cloud.dialogflow.v2.Intent.Message.Platform[]|null);

                    /** Intent rootFollowupIntentName */
                    rootFollowupIntentName?: (string|null);

                    /** Intent parentFollowupIntentName */
                    parentFollowupIntentName?: (string|null);

                    /** Intent followupIntentInfo */
                    followupIntentInfo?: (google.cloud.dialogflow.v2.Intent.IFollowupIntentInfo[]|null);
                }

                /** Represents an Intent. */
                class Intent implements IIntent {

                    /**
                     * Constructs a new Intent.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IIntent);

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

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

                    /** Intent webhookState. */
                    public webhookState: (google.cloud.dialogflow.v2.Intent.WebhookState|keyof typeof google.cloud.dialogflow.v2.Intent.WebhookState);

                    /** Intent priority. */
                    public priority: number;

                    /** Intent isFallback. */
                    public isFallback: boolean;

                    /** Intent mlDisabled. */
                    public mlDisabled: boolean;

                    /** Intent liveAgentHandoff. */
                    public liveAgentHandoff: boolean;

                    /** Intent endInteraction. */
                    public endInteraction: boolean;

                    /** Intent inputContextNames. */
                    public inputContextNames: string[];

                    /** Intent events. */
                    public events: string[];

                    /** Intent trainingPhrases. */
                    public trainingPhrases: google.cloud.dialogflow.v2.Intent.ITrainingPhrase[];

                    /** Intent action. */
                    public action: string;

                    /** Intent outputContexts. */
                    public outputContexts: google.cloud.dialogflow.v2.IContext[];

                    /** Intent resetContexts. */
                    public resetContexts: boolean;

                    /** Intent parameters. */
                    public parameters: google.cloud.dialogflow.v2.Intent.IParameter[];

                    /** Intent messages. */
                    public messages: google.cloud.dialogflow.v2.Intent.IMessage[];

                    /** Intent defaultResponsePlatforms. */
                    public defaultResponsePlatforms: google.cloud.dialogflow.v2.Intent.Message.Platform[];

                    /** Intent rootFollowupIntentName. */
                    public rootFollowupIntentName: string;

                    /** Intent parentFollowupIntentName. */
                    public parentFollowupIntentName: string;

                    /** Intent followupIntentInfo. */
                    public followupIntentInfo: google.cloud.dialogflow.v2.Intent.IFollowupIntentInfo[];

                    /**
                     * Creates a new Intent instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Intent instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IIntent): google.cloud.dialogflow.v2.Intent;

                    /**
                     * Encodes the specified Intent message. Does not implicitly {@link google.cloud.dialogflow.v2.Intent.verify|verify} messages.
                     * @param message Intent message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IIntent, writer?: $protobuf.Writer): $protobuf.Writer;

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

                    /**
                     * Decodes an Intent message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Intent
                     * @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.cloud.dialogflow.v2.Intent;

                    /**
                     * Decodes an Intent message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Intent
                     * @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.cloud.dialogflow.v2.Intent;

                    /**
                     * Verifies an Intent 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 Intent message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Intent
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.Intent;

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

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

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

                namespace Intent {

                    /** WebhookState enum. */
                    enum WebhookState {
                        WEBHOOK_STATE_UNSPECIFIED = 0,
                        WEBHOOK_STATE_ENABLED = 1,
                        WEBHOOK_STATE_ENABLED_FOR_SLOT_FILLING = 2
                    }

                    /** Properties of a TrainingPhrase. */
                    interface ITrainingPhrase {

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

                        /** TrainingPhrase type */
                        type?: (google.cloud.dialogflow.v2.Intent.TrainingPhrase.Type|keyof typeof google.cloud.dialogflow.v2.Intent.TrainingPhrase.Type|null);

                        /** TrainingPhrase parts */
                        parts?: (google.cloud.dialogflow.v2.Intent.TrainingPhrase.IPart[]|null);

                        /** TrainingPhrase timesAddedCount */
                        timesAddedCount?: (number|null);
                    }

                    /** Represents a TrainingPhrase. */
                    class TrainingPhrase implements ITrainingPhrase {

                        /**
                         * Constructs a new TrainingPhrase.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2.Intent.ITrainingPhrase);

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

                        /** TrainingPhrase type. */
                        public type: (google.cloud.dialogflow.v2.Intent.TrainingPhrase.Type|keyof typeof google.cloud.dialogflow.v2.Intent.TrainingPhrase.Type);

                        /** TrainingPhrase parts. */
                        public parts: google.cloud.dialogflow.v2.Intent.TrainingPhrase.IPart[];

                        /** TrainingPhrase timesAddedCount. */
                        public timesAddedCount: number;

                        /**
                         * Creates a new TrainingPhrase instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns TrainingPhrase instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2.Intent.ITrainingPhrase): google.cloud.dialogflow.v2.Intent.TrainingPhrase;

                        /**
                         * Encodes the specified TrainingPhrase message. Does not implicitly {@link google.cloud.dialogflow.v2.Intent.TrainingPhrase.verify|verify} messages.
                         * @param message TrainingPhrase message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2.Intent.ITrainingPhrase, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified TrainingPhrase message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.Intent.TrainingPhrase.verify|verify} messages.
                         * @param message TrainingPhrase message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2.Intent.ITrainingPhrase, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a TrainingPhrase message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns TrainingPhrase
                         * @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.cloud.dialogflow.v2.Intent.TrainingPhrase;

                        /**
                         * Decodes a TrainingPhrase message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns TrainingPhrase
                         * @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.cloud.dialogflow.v2.Intent.TrainingPhrase;

                        /**
                         * Verifies a TrainingPhrase 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 TrainingPhrase message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns TrainingPhrase
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.Intent.TrainingPhrase;

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

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

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

                    namespace TrainingPhrase {

                        /** Type enum. */
                        enum Type {
                            TYPE_UNSPECIFIED = 0,
                            EXAMPLE = 1,
                            TEMPLATE = 2
                        }

                        /** Properties of a Part. */
                        interface IPart {

                            /** Part text */
                            text?: (string|null);

                            /** Part entityType */
                            entityType?: (string|null);

                            /** Part alias */
                            alias?: (string|null);

                            /** Part userDefined */
                            userDefined?: (boolean|null);
                        }

                        /** Represents a Part. */
                        class Part implements IPart {

                            /**
                             * Constructs a new Part.
                             * @param [properties] Properties to set
                             */
                            constructor(properties?: google.cloud.dialogflow.v2.Intent.TrainingPhrase.IPart);

                            /** Part text. */
                            public text: string;

                            /** Part entityType. */
                            public entityType: string;

                            /** Part alias. */
                            public alias: string;

                            /** Part userDefined. */
                            public userDefined: boolean;

                            /**
                             * Creates a new Part instance using the specified properties.
                             * @param [properties] Properties to set
                             * @returns Part instance
                             */
                            public static create(properties?: google.cloud.dialogflow.v2.Intent.TrainingPhrase.IPart): google.cloud.dialogflow.v2.Intent.TrainingPhrase.Part;

                            /**
                             * Encodes the specified Part message. Does not implicitly {@link google.cloud.dialogflow.v2.Intent.TrainingPhrase.Part.verify|verify} messages.
                             * @param message Part message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encode(message: google.cloud.dialogflow.v2.Intent.TrainingPhrase.IPart, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Encodes the specified Part message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.Intent.TrainingPhrase.Part.verify|verify} messages.
                             * @param message Part message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encodeDelimited(message: google.cloud.dialogflow.v2.Intent.TrainingPhrase.IPart, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Decodes a Part message from the specified reader or buffer.
                             * @param reader Reader or buffer to decode from
                             * @param [length] Message length if known beforehand
                             * @returns Part
                             * @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.cloud.dialogflow.v2.Intent.TrainingPhrase.Part;

                            /**
                             * Decodes a Part message from the specified reader or buffer, length delimited.
                             * @param reader Reader or buffer to decode from
                             * @returns Part
                             * @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.cloud.dialogflow.v2.Intent.TrainingPhrase.Part;

                            /**
                             * Verifies a Part 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 Part message from a plain object. Also converts values to their respective internal types.
                             * @param object Plain object
                             * @returns Part
                             */
                            public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.Intent.TrainingPhrase.Part;

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

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

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

                    /** Properties of a Parameter. */
                    interface IParameter {

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

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

                        /** Parameter value */
                        value?: (string|null);

                        /** Parameter defaultValue */
                        defaultValue?: (string|null);

                        /** Parameter entityTypeDisplayName */
                        entityTypeDisplayName?: (string|null);

                        /** Parameter mandatory */
                        mandatory?: (boolean|null);

                        /** Parameter prompts */
                        prompts?: (string[]|null);

                        /** Parameter isList */
                        isList?: (boolean|null);
                    }

                    /** Represents a Parameter. */
                    class Parameter implements IParameter {

                        /**
                         * Constructs a new Parameter.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2.Intent.IParameter);

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

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

                        /** Parameter value. */
                        public value: string;

                        /** Parameter defaultValue. */
                        public defaultValue: string;

                        /** Parameter entityTypeDisplayName. */
                        public entityTypeDisplayName: string;

                        /** Parameter mandatory. */
                        public mandatory: boolean;

                        /** Parameter prompts. */
                        public prompts: string[];

                        /** Parameter isList. */
                        public isList: boolean;

                        /**
                         * Creates a new Parameter instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns Parameter instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2.Intent.IParameter): google.cloud.dialogflow.v2.Intent.Parameter;

                        /**
                         * Encodes the specified Parameter message. Does not implicitly {@link google.cloud.dialogflow.v2.Intent.Parameter.verify|verify} messages.
                         * @param message Parameter message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2.Intent.IParameter, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified Parameter message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.Intent.Parameter.verify|verify} messages.
                         * @param message Parameter message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2.Intent.IParameter, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a Parameter message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns Parameter
                         * @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.cloud.dialogflow.v2.Intent.Parameter;

                        /**
                         * Decodes a Parameter message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns Parameter
                         * @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.cloud.dialogflow.v2.Intent.Parameter;

                        /**
                         * Verifies a Parameter 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 Parameter message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns Parameter
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.Intent.Parameter;

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

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

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

                    /** Properties of a Message. */
                    interface IMessage {

                        /** Message text */
                        text?: (google.cloud.dialogflow.v2.Intent.Message.IText|null);

                        /** Message image */
                        image?: (google.cloud.dialogflow.v2.Intent.Message.IImage|null);

                        /** Message quickReplies */
                        quickReplies?: (google.cloud.dialogflow.v2.Intent.Message.IQuickReplies|null);

                        /** Message card */
                        card?: (google.cloud.dialogflow.v2.Intent.Message.ICard|null);

                        /** Message payload */
                        payload?: (google.protobuf.IStruct|null);

                        /** Message simpleResponses */
                        simpleResponses?: (google.cloud.dialogflow.v2.Intent.Message.ISimpleResponses|null);

                        /** Message basicCard */
                        basicCard?: (google.cloud.dialogflow.v2.Intent.Message.IBasicCard|null);

                        /** Message suggestions */
                        suggestions?: (google.cloud.dialogflow.v2.Intent.Message.ISuggestions|null);

                        /** Message linkOutSuggestion */
                        linkOutSuggestion?: (google.cloud.dialogflow.v2.Intent.Message.ILinkOutSuggestion|null);

                        /** Message listSelect */
                        listSelect?: (google.cloud.dialogflow.v2.Intent.Message.IListSelect|null);

                        /** Message carouselSelect */
                        carouselSelect?: (google.cloud.dialogflow.v2.Intent.Message.ICarouselSelect|null);

                        /** Message browseCarouselCard */
                        browseCarouselCard?: (google.cloud.dialogflow.v2.Intent.Message.IBrowseCarouselCard|null);

                        /** Message tableCard */
                        tableCard?: (google.cloud.dialogflow.v2.Intent.Message.ITableCard|null);

                        /** Message mediaContent */
                        mediaContent?: (google.cloud.dialogflow.v2.Intent.Message.IMediaContent|null);

                        /** Message platform */
                        platform?: (google.cloud.dialogflow.v2.Intent.Message.Platform|keyof typeof google.cloud.dialogflow.v2.Intent.Message.Platform|null);
                    }

                    /** Represents a Message. */
                    class Message implements IMessage {

                        /**
                         * Constructs a new Message.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2.Intent.IMessage);

                        /** Message text. */
                        public text?: (google.cloud.dialogflow.v2.Intent.Message.IText|null);

                        /** Message image. */
                        public image?: (google.cloud.dialogflow.v2.Intent.Message.IImage|null);

                        /** Message quickReplies. */
                        public quickReplies?: (google.cloud.dialogflow.v2.Intent.Message.IQuickReplies|null);

                        /** Message card. */
                        public card?: (google.cloud.dialogflow.v2.Intent.Message.ICard|null);

                        /** Message payload. */
                        public payload?: (google.protobuf.IStruct|null);

                        /** Message simpleResponses. */
                        public simpleResponses?: (google.cloud.dialogflow.v2.Intent.Message.ISimpleResponses|null);

                        /** Message basicCard. */
                        public basicCard?: (google.cloud.dialogflow.v2.Intent.Message.IBasicCard|null);

                        /** Message suggestions. */
                        public suggestions?: (google.cloud.dialogflow.v2.Intent.Message.ISuggestions|null);

                        /** Message linkOutSuggestion. */
                        public linkOutSuggestion?: (google.cloud.dialogflow.v2.Intent.Message.ILinkOutSuggestion|null);

                        /** Message listSelect. */
                        public listSelect?: (google.cloud.dialogflow.v2.Intent.Message.IListSelect|null);

                        /** Message carouselSelect. */
                        public carouselSelect?: (google.cloud.dialogflow.v2.Intent.Message.ICarouselSelect|null);

                        /** Message browseCarouselCard. */
                        public browseCarouselCard?: (google.cloud.dialogflow.v2.Intent.Message.IBrowseCarouselCard|null);

                        /** Message tableCard. */
                        public tableCard?: (google.cloud.dialogflow.v2.Intent.Message.ITableCard|null);

                        /** Message mediaContent. */
                        public mediaContent?: (google.cloud.dialogflow.v2.Intent.Message.IMediaContent|null);

                        /** Message platform. */
                        public platform: (google.cloud.dialogflow.v2.Intent.Message.Platform|keyof typeof google.cloud.dialogflow.v2.Intent.Message.Platform);

                        /** Message message. */
                        public message?: ("text"|"image"|"quickReplies"|"card"|"payload"|"simpleResponses"|"basicCard"|"suggestions"|"linkOutSuggestion"|"listSelect"|"carouselSelect"|"browseCarouselCard"|"tableCard"|"mediaContent");

                        /**
                         * Creates a new Message instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns Message instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2.Intent.IMessage): google.cloud.dialogflow.v2.Intent.Message;

                        /**
                         * Encodes the specified Message message. Does not implicitly {@link google.cloud.dialogflow.v2.Intent.Message.verify|verify} messages.
                         * @param message Message message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2.Intent.IMessage, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified Message message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.Intent.Message.verify|verify} messages.
                         * @param message Message message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2.Intent.IMessage, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a Message message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns Message
                         * @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.cloud.dialogflow.v2.Intent.Message;

                        /**
                         * Decodes a Message message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns Message
                         * @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.cloud.dialogflow.v2.Intent.Message;

                        /**
                         * Verifies a Message 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 Message message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns Message
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.Intent.Message;

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

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

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

                    namespace Message {

                        /** Platform enum. */
                        enum Platform {
                            PLATFORM_UNSPECIFIED = 0,
                            FACEBOOK = 1,
                            SLACK = 2,
                            TELEGRAM = 3,
                            KIK = 4,
                            SKYPE = 5,
                            LINE = 6,
                            VIBER = 7,
                            ACTIONS_ON_GOOGLE = 8,
                            GOOGLE_HANGOUTS = 11
                        }

                        /** Properties of a Text. */
                        interface IText {

                            /** Text text */
                            text?: (string[]|null);
                        }

                        /** Represents a Text. */
                        class Text implements IText {

                            /**
                             * Constructs a new Text.
                             * @param [properties] Properties to set
                             */
                            constructor(properties?: google.cloud.dialogflow.v2.Intent.Message.IText);

                            /** Text text. */
                            public text: string[];

                            /**
                             * Creates a new Text instance using the specified properties.
                             * @param [properties] Properties to set
                             * @returns Text instance
                             */
                            public static create(properties?: google.cloud.dialogflow.v2.Intent.Message.IText): google.cloud.dialogflow.v2.Intent.Message.Text;

                            /**
                             * Encodes the specified Text message. Does not implicitly {@link google.cloud.dialogflow.v2.Intent.Message.Text.verify|verify} messages.
                             * @param message Text message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encode(message: google.cloud.dialogflow.v2.Intent.Message.IText, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Encodes the specified Text message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.Intent.Message.Text.verify|verify} messages.
                             * @param message Text message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encodeDelimited(message: google.cloud.dialogflow.v2.Intent.Message.IText, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Decodes a Text message from the specified reader or buffer.
                             * @param reader Reader or buffer to decode from
                             * @param [length] Message length if known beforehand
                             * @returns Text
                             * @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.cloud.dialogflow.v2.Intent.Message.Text;

                            /**
                             * Decodes a Text message from the specified reader or buffer, length delimited.
                             * @param reader Reader or buffer to decode from
                             * @returns Text
                             * @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.cloud.dialogflow.v2.Intent.Message.Text;

                            /**
                             * Verifies a Text 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 Text message from a plain object. Also converts values to their respective internal types.
                             * @param object Plain object
                             * @returns Text
                             */
                            public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.Intent.Message.Text;

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

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

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

                        /** Properties of an Image. */
                        interface IImage {

                            /** Image imageUri */
                            imageUri?: (string|null);

                            /** Image accessibilityText */
                            accessibilityText?: (string|null);
                        }

                        /** Represents an Image. */
                        class Image implements IImage {

                            /**
                             * Constructs a new Image.
                             * @param [properties] Properties to set
                             */
                            constructor(properties?: google.cloud.dialogflow.v2.Intent.Message.IImage);

                            /** Image imageUri. */
                            public imageUri: string;

                            /** Image accessibilityText. */
                            public accessibilityText: string;

                            /**
                             * Creates a new Image instance using the specified properties.
                             * @param [properties] Properties to set
                             * @returns Image instance
                             */
                            public static create(properties?: google.cloud.dialogflow.v2.Intent.Message.IImage): google.cloud.dialogflow.v2.Intent.Message.Image;

                            /**
                             * Encodes the specified Image message. Does not implicitly {@link google.cloud.dialogflow.v2.Intent.Message.Image.verify|verify} messages.
                             * @param message Image message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encode(message: google.cloud.dialogflow.v2.Intent.Message.IImage, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Encodes the specified Image message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.Intent.Message.Image.verify|verify} messages.
                             * @param message Image message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encodeDelimited(message: google.cloud.dialogflow.v2.Intent.Message.IImage, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Decodes an Image message from the specified reader or buffer.
                             * @param reader Reader or buffer to decode from
                             * @param [length] Message length if known beforehand
                             * @returns Image
                             * @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.cloud.dialogflow.v2.Intent.Message.Image;

                            /**
                             * Decodes an Image message from the specified reader or buffer, length delimited.
                             * @param reader Reader or buffer to decode from
                             * @returns Image
                             * @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.cloud.dialogflow.v2.Intent.Message.Image;

                            /**
                             * Verifies an Image 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 Image message from a plain object. Also converts values to their respective internal types.
                             * @param object Plain object
                             * @returns Image
                             */
                            public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.Intent.Message.Image;

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

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

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

                        /** Properties of a QuickReplies. */
                        interface IQuickReplies {

                            /** QuickReplies title */
                            title?: (string|null);

                            /** QuickReplies quickReplies */
                            quickReplies?: (string[]|null);
                        }

                        /** Represents a QuickReplies. */
                        class QuickReplies implements IQuickReplies {

                            /**
                             * Constructs a new QuickReplies.
                             * @param [properties] Properties to set
                             */
                            constructor(properties?: google.cloud.dialogflow.v2.Intent.Message.IQuickReplies);

                            /** QuickReplies title. */
                            public title: string;

                            /** QuickReplies quickReplies. */
                            public quickReplies: string[];

                            /**
                             * Creates a new QuickReplies instance using the specified properties.
                             * @param [properties] Properties to set
                             * @returns QuickReplies instance
                             */
                            public static create(properties?: google.cloud.dialogflow.v2.Intent.Message.IQuickReplies): google.cloud.dialogflow.v2.Intent.Message.QuickReplies;

                            /**
                             * Encodes the specified QuickReplies message. Does not implicitly {@link google.cloud.dialogflow.v2.Intent.Message.QuickReplies.verify|verify} messages.
                             * @param message QuickReplies message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encode(message: google.cloud.dialogflow.v2.Intent.Message.IQuickReplies, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Encodes the specified QuickReplies message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.Intent.Message.QuickReplies.verify|verify} messages.
                             * @param message QuickReplies message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encodeDelimited(message: google.cloud.dialogflow.v2.Intent.Message.IQuickReplies, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Decodes a QuickReplies message from the specified reader or buffer.
                             * @param reader Reader or buffer to decode from
                             * @param [length] Message length if known beforehand
                             * @returns QuickReplies
                             * @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.cloud.dialogflow.v2.Intent.Message.QuickReplies;

                            /**
                             * Decodes a QuickReplies message from the specified reader or buffer, length delimited.
                             * @param reader Reader or buffer to decode from
                             * @returns QuickReplies
                             * @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.cloud.dialogflow.v2.Intent.Message.QuickReplies;

                            /**
                             * Verifies a QuickReplies 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 QuickReplies message from a plain object. Also converts values to their respective internal types.
                             * @param object Plain object
                             * @returns QuickReplies
                             */
                            public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.Intent.Message.QuickReplies;

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

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

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

                        /** Properties of a Card. */
                        interface ICard {

                            /** Card title */
                            title?: (string|null);

                            /** Card subtitle */
                            subtitle?: (string|null);

                            /** Card imageUri */
                            imageUri?: (string|null);

                            /** Card buttons */
                            buttons?: (google.cloud.dialogflow.v2.Intent.Message.Card.IButton[]|null);
                        }

                        /** Represents a Card. */
                        class Card implements ICard {

                            /**
                             * Constructs a new Card.
                             * @param [properties] Properties to set
                             */
                            constructor(properties?: google.cloud.dialogflow.v2.Intent.Message.ICard);

                            /** Card title. */
                            public title: string;

                            /** Card subtitle. */
                            public subtitle: string;

                            /** Card imageUri. */
                            public imageUri: string;

                            /** Card buttons. */
                            public buttons: google.cloud.dialogflow.v2.Intent.Message.Card.IButton[];

                            /**
                             * Creates a new Card instance using the specified properties.
                             * @param [properties] Properties to set
                             * @returns Card instance
                             */
                            public static create(properties?: google.cloud.dialogflow.v2.Intent.Message.ICard): google.cloud.dialogflow.v2.Intent.Message.Card;

                            /**
                             * Encodes the specified Card message. Does not implicitly {@link google.cloud.dialogflow.v2.Intent.Message.Card.verify|verify} messages.
                             * @param message Card message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encode(message: google.cloud.dialogflow.v2.Intent.Message.ICard, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Encodes the specified Card message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.Intent.Message.Card.verify|verify} messages.
                             * @param message Card message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encodeDelimited(message: google.cloud.dialogflow.v2.Intent.Message.ICard, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Decodes a Card message from the specified reader or buffer.
                             * @param reader Reader or buffer to decode from
                             * @param [length] Message length if known beforehand
                             * @returns Card
                             * @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.cloud.dialogflow.v2.Intent.Message.Card;

                            /**
                             * Decodes a Card message from the specified reader or buffer, length delimited.
                             * @param reader Reader or buffer to decode from
                             * @returns Card
                             * @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.cloud.dialogflow.v2.Intent.Message.Card;

                            /**
                             * Verifies a Card 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 Card message from a plain object. Also converts values to their respective internal types.
                             * @param object Plain object
                             * @returns Card
                             */
                            public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.Intent.Message.Card;

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

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

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

                        namespace Card {

                            /** Properties of a Button. */
                            interface IButton {

                                /** Button text */
                                text?: (string|null);

                                /** Button postback */
                                postback?: (string|null);
                            }

                            /** Represents a Button. */
                            class Button implements IButton {

                                /**
                                 * Constructs a new Button.
                                 * @param [properties] Properties to set
                                 */
                                constructor(properties?: google.cloud.dialogflow.v2.Intent.Message.Card.IButton);

                                /** Button text. */
                                public text: string;

                                /** Button postback. */
                                public postback: string;

                                /**
                                 * Creates a new Button instance using the specified properties.
                                 * @param [properties] Properties to set
                                 * @returns Button instance
                                 */
                                public static create(properties?: google.cloud.dialogflow.v2.Intent.Message.Card.IButton): google.cloud.dialogflow.v2.Intent.Message.Card.Button;

                                /**
                                 * Encodes the specified Button message. Does not implicitly {@link google.cloud.dialogflow.v2.Intent.Message.Card.Button.verify|verify} messages.
                                 * @param message Button message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encode(message: google.cloud.dialogflow.v2.Intent.Message.Card.IButton, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Encodes the specified Button message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.Intent.Message.Card.Button.verify|verify} messages.
                                 * @param message Button message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encodeDelimited(message: google.cloud.dialogflow.v2.Intent.Message.Card.IButton, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Decodes a Button message from the specified reader or buffer.
                                 * @param reader Reader or buffer to decode from
                                 * @param [length] Message length if known beforehand
                                 * @returns Button
                                 * @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.cloud.dialogflow.v2.Intent.Message.Card.Button;

                                /**
                                 * Decodes a Button message from the specified reader or buffer, length delimited.
                                 * @param reader Reader or buffer to decode from
                                 * @returns Button
                                 * @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.cloud.dialogflow.v2.Intent.Message.Card.Button;

                                /**
                                 * Verifies a Button 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 Button message from a plain object. Also converts values to their respective internal types.
                                 * @param object Plain object
                                 * @returns Button
                                 */
                                public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.Intent.Message.Card.Button;

                                /**
                                 * Creates a plain object from a Button message. Also converts values to other types if specified.
                                 * @param message Button
                                 * @param [options] Conversion options
                                 * @returns Plain object
                                 */
                                public static toObject(message: google.cloud.dialogflow.v2.Intent.Message.Card.Button, options?: $protobuf.IConversionOptions): { [k: string]: any };

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

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

                        /** Properties of a SimpleResponse. */
                        interface ISimpleResponse {

                            /** SimpleResponse textToSpeech */
                            textToSpeech?: (string|null);

                            /** SimpleResponse ssml */
                            ssml?: (string|null);

                            /** SimpleResponse displayText */
                            displayText?: (string|null);
                        }

                        /** Represents a SimpleResponse. */
                        class SimpleResponse implements ISimpleResponse {

                            /**
                             * Constructs a new SimpleResponse.
                             * @param [properties] Properties to set
                             */
                            constructor(properties?: google.cloud.dialogflow.v2.Intent.Message.ISimpleResponse);

                            /** SimpleResponse textToSpeech. */
                            public textToSpeech: string;

                            /** SimpleResponse ssml. */
                            public ssml: string;

                            /** SimpleResponse displayText. */
                            public displayText: string;

                            /**
                             * Creates a new SimpleResponse instance using the specified properties.
                             * @param [properties] Properties to set
                             * @returns SimpleResponse instance
                             */
                            public static create(properties?: google.cloud.dialogflow.v2.Intent.Message.ISimpleResponse): google.cloud.dialogflow.v2.Intent.Message.SimpleResponse;

                            /**
                             * Encodes the specified SimpleResponse message. Does not implicitly {@link google.cloud.dialogflow.v2.Intent.Message.SimpleResponse.verify|verify} messages.
                             * @param message SimpleResponse message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encode(message: google.cloud.dialogflow.v2.Intent.Message.ISimpleResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Encodes the specified SimpleResponse message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.Intent.Message.SimpleResponse.verify|verify} messages.
                             * @param message SimpleResponse message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encodeDelimited(message: google.cloud.dialogflow.v2.Intent.Message.ISimpleResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Decodes a SimpleResponse message from the specified reader or buffer.
                             * @param reader Reader or buffer to decode from
                             * @param [length] Message length if known beforehand
                             * @returns SimpleResponse
                             * @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.cloud.dialogflow.v2.Intent.Message.SimpleResponse;

                            /**
                             * Decodes a SimpleResponse message from the specified reader or buffer, length delimited.
                             * @param reader Reader or buffer to decode from
                             * @returns SimpleResponse
                             * @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.cloud.dialogflow.v2.Intent.Message.SimpleResponse;

                            /**
                             * Verifies a SimpleResponse 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 SimpleResponse message from a plain object. Also converts values to their respective internal types.
                             * @param object Plain object
                             * @returns SimpleResponse
                             */
                            public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.Intent.Message.SimpleResponse;

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

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

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

                        /** Properties of a SimpleResponses. */
                        interface ISimpleResponses {

                            /** SimpleResponses simpleResponses */
                            simpleResponses?: (google.cloud.dialogflow.v2.Intent.Message.ISimpleResponse[]|null);
                        }

                        /** Represents a SimpleResponses. */
                        class SimpleResponses implements ISimpleResponses {

                            /**
                             * Constructs a new SimpleResponses.
                             * @param [properties] Properties to set
                             */
                            constructor(properties?: google.cloud.dialogflow.v2.Intent.Message.ISimpleResponses);

                            /** SimpleResponses simpleResponses. */
                            public simpleResponses: google.cloud.dialogflow.v2.Intent.Message.ISimpleResponse[];

                            /**
                             * Creates a new SimpleResponses instance using the specified properties.
                             * @param [properties] Properties to set
                             * @returns SimpleResponses instance
                             */
                            public static create(properties?: google.cloud.dialogflow.v2.Intent.Message.ISimpleResponses): google.cloud.dialogflow.v2.Intent.Message.SimpleResponses;

                            /**
                             * Encodes the specified SimpleResponses message. Does not implicitly {@link google.cloud.dialogflow.v2.Intent.Message.SimpleResponses.verify|verify} messages.
                             * @param message SimpleResponses message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encode(message: google.cloud.dialogflow.v2.Intent.Message.ISimpleResponses, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Encodes the specified SimpleResponses message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.Intent.Message.SimpleResponses.verify|verify} messages.
                             * @param message SimpleResponses message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encodeDelimited(message: google.cloud.dialogflow.v2.Intent.Message.ISimpleResponses, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Decodes a SimpleResponses message from the specified reader or buffer.
                             * @param reader Reader or buffer to decode from
                             * @param [length] Message length if known beforehand
                             * @returns SimpleResponses
                             * @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.cloud.dialogflow.v2.Intent.Message.SimpleResponses;

                            /**
                             * Decodes a SimpleResponses message from the specified reader or buffer, length delimited.
                             * @param reader Reader or buffer to decode from
                             * @returns SimpleResponses
                             * @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.cloud.dialogflow.v2.Intent.Message.SimpleResponses;

                            /**
                             * Verifies a SimpleResponses 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 SimpleResponses message from a plain object. Also converts values to their respective internal types.
                             * @param object Plain object
                             * @returns SimpleResponses
                             */
                            public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.Intent.Message.SimpleResponses;

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

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

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

                        /** Properties of a BasicCard. */
                        interface IBasicCard {

                            /** BasicCard title */
                            title?: (string|null);

                            /** BasicCard subtitle */
                            subtitle?: (string|null);

                            /** BasicCard formattedText */
                            formattedText?: (string|null);

                            /** BasicCard image */
                            image?: (google.cloud.dialogflow.v2.Intent.Message.IImage|null);

                            /** BasicCard buttons */
                            buttons?: (google.cloud.dialogflow.v2.Intent.Message.BasicCard.IButton[]|null);
                        }

                        /** Represents a BasicCard. */
                        class BasicCard implements IBasicCard {

                            /**
                             * Constructs a new BasicCard.
                             * @param [properties] Properties to set
                             */
                            constructor(properties?: google.cloud.dialogflow.v2.Intent.Message.IBasicCard);

                            /** BasicCard title. */
                            public title: string;

                            /** BasicCard subtitle. */
                            public subtitle: string;

                            /** BasicCard formattedText. */
                            public formattedText: string;

                            /** BasicCard image. */
                            public image?: (google.cloud.dialogflow.v2.Intent.Message.IImage|null);

                            /** BasicCard buttons. */
                            public buttons: google.cloud.dialogflow.v2.Intent.Message.BasicCard.IButton[];

                            /**
                             * Creates a new BasicCard instance using the specified properties.
                             * @param [properties] Properties to set
                             * @returns BasicCard instance
                             */
                            public static create(properties?: google.cloud.dialogflow.v2.Intent.Message.IBasicCard): google.cloud.dialogflow.v2.Intent.Message.BasicCard;

                            /**
                             * Encodes the specified BasicCard message. Does not implicitly {@link google.cloud.dialogflow.v2.Intent.Message.BasicCard.verify|verify} messages.
                             * @param message BasicCard message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encode(message: google.cloud.dialogflow.v2.Intent.Message.IBasicCard, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Encodes the specified BasicCard message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.Intent.Message.BasicCard.verify|verify} messages.
                             * @param message BasicCard message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encodeDelimited(message: google.cloud.dialogflow.v2.Intent.Message.IBasicCard, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Decodes a BasicCard message from the specified reader or buffer.
                             * @param reader Reader or buffer to decode from
                             * @param [length] Message length if known beforehand
                             * @returns BasicCard
                             * @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.cloud.dialogflow.v2.Intent.Message.BasicCard;

                            /**
                             * Decodes a BasicCard message from the specified reader or buffer, length delimited.
                             * @param reader Reader or buffer to decode from
                             * @returns BasicCard
                             * @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.cloud.dialogflow.v2.Intent.Message.BasicCard;

                            /**
                             * Verifies a BasicCard 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 BasicCard message from a plain object. Also converts values to their respective internal types.
                             * @param object Plain object
                             * @returns BasicCard
                             */
                            public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.Intent.Message.BasicCard;

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

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

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

                        namespace BasicCard {

                            /** Properties of a Button. */
                            interface IButton {

                                /** Button title */
                                title?: (string|null);

                                /** Button openUriAction */
                                openUriAction?: (google.cloud.dialogflow.v2.Intent.Message.BasicCard.Button.IOpenUriAction|null);
                            }

                            /** Represents a Button. */
                            class Button implements IButton {

                                /**
                                 * Constructs a new Button.
                                 * @param [properties] Properties to set
                                 */
                                constructor(properties?: google.cloud.dialogflow.v2.Intent.Message.BasicCard.IButton);

                                /** Button title. */
                                public title: string;

                                /** Button openUriAction. */
                                public openUriAction?: (google.cloud.dialogflow.v2.Intent.Message.BasicCard.Button.IOpenUriAction|null);

                                /**
                                 * Creates a new Button instance using the specified properties.
                                 * @param [properties] Properties to set
                                 * @returns Button instance
                                 */
                                public static create(properties?: google.cloud.dialogflow.v2.Intent.Message.BasicCard.IButton): google.cloud.dialogflow.v2.Intent.Message.BasicCard.Button;

                                /**
                                 * Encodes the specified Button message. Does not implicitly {@link google.cloud.dialogflow.v2.Intent.Message.BasicCard.Button.verify|verify} messages.
                                 * @param message Button message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encode(message: google.cloud.dialogflow.v2.Intent.Message.BasicCard.IButton, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Encodes the specified Button message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.Intent.Message.BasicCard.Button.verify|verify} messages.
                                 * @param message Button message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encodeDelimited(message: google.cloud.dialogflow.v2.Intent.Message.BasicCard.IButton, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Decodes a Button message from the specified reader or buffer.
                                 * @param reader Reader or buffer to decode from
                                 * @param [length] Message length if known beforehand
                                 * @returns Button
                                 * @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.cloud.dialogflow.v2.Intent.Message.BasicCard.Button;

                                /**
                                 * Decodes a Button message from the specified reader or buffer, length delimited.
                                 * @param reader Reader or buffer to decode from
                                 * @returns Button
                                 * @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.cloud.dialogflow.v2.Intent.Message.BasicCard.Button;

                                /**
                                 * Verifies a Button 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 Button message from a plain object. Also converts values to their respective internal types.
                                 * @param object Plain object
                                 * @returns Button
                                 */
                                public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.Intent.Message.BasicCard.Button;

                                /**
                                 * Creates a plain object from a Button message. Also converts values to other types if specified.
                                 * @param message Button
                                 * @param [options] Conversion options
                                 * @returns Plain object
                                 */
                                public static toObject(message: google.cloud.dialogflow.v2.Intent.Message.BasicCard.Button, options?: $protobuf.IConversionOptions): { [k: string]: any };

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

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

                            namespace Button {

                                /** Properties of an OpenUriAction. */
                                interface IOpenUriAction {

                                    /** OpenUriAction uri */
                                    uri?: (string|null);
                                }

                                /** Represents an OpenUriAction. */
                                class OpenUriAction implements IOpenUriAction {

                                    /**
                                     * Constructs a new OpenUriAction.
                                     * @param [properties] Properties to set
                                     */
                                    constructor(properties?: google.cloud.dialogflow.v2.Intent.Message.BasicCard.Button.IOpenUriAction);

                                    /** OpenUriAction uri. */
                                    public uri: string;

                                    /**
                                     * Creates a new OpenUriAction instance using the specified properties.
                                     * @param [properties] Properties to set
                                     * @returns OpenUriAction instance
                                     */
                                    public static create(properties?: google.cloud.dialogflow.v2.Intent.Message.BasicCard.Button.IOpenUriAction): google.cloud.dialogflow.v2.Intent.Message.BasicCard.Button.OpenUriAction;

                                    /**
                                     * Encodes the specified OpenUriAction message. Does not implicitly {@link google.cloud.dialogflow.v2.Intent.Message.BasicCard.Button.OpenUriAction.verify|verify} messages.
                                     * @param message OpenUriAction message or plain object to encode
                                     * @param [writer] Writer to encode to
                                     * @returns Writer
                                     */
                                    public static encode(message: google.cloud.dialogflow.v2.Intent.Message.BasicCard.Button.IOpenUriAction, writer?: $protobuf.Writer): $protobuf.Writer;

                                    /**
                                     * Encodes the specified OpenUriAction message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.Intent.Message.BasicCard.Button.OpenUriAction.verify|verify} messages.
                                     * @param message OpenUriAction message or plain object to encode
                                     * @param [writer] Writer to encode to
                                     * @returns Writer
                                     */
                                    public static encodeDelimited(message: google.cloud.dialogflow.v2.Intent.Message.BasicCard.Button.IOpenUriAction, writer?: $protobuf.Writer): $protobuf.Writer;

                                    /**
                                     * Decodes an OpenUriAction message from the specified reader or buffer.
                                     * @param reader Reader or buffer to decode from
                                     * @param [length] Message length if known beforehand
                                     * @returns OpenUriAction
                                     * @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.cloud.dialogflow.v2.Intent.Message.BasicCard.Button.OpenUriAction;

                                    /**
                                     * Decodes an OpenUriAction message from the specified reader or buffer, length delimited.
                                     * @param reader Reader or buffer to decode from
                                     * @returns OpenUriAction
                                     * @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.cloud.dialogflow.v2.Intent.Message.BasicCard.Button.OpenUriAction;

                                    /**
                                     * Verifies an OpenUriAction 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 OpenUriAction message from a plain object. Also converts values to their respective internal types.
                                     * @param object Plain object
                                     * @returns OpenUriAction
                                     */
                                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.Intent.Message.BasicCard.Button.OpenUriAction;

                                    /**
                                     * Creates a plain object from an OpenUriAction message. Also converts values to other types if specified.
                                     * @param message OpenUriAction
                                     * @param [options] Conversion options
                                     * @returns Plain object
                                     */
                                    public static toObject(message: google.cloud.dialogflow.v2.Intent.Message.BasicCard.Button.OpenUriAction, options?: $protobuf.IConversionOptions): { [k: string]: any };

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

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

                        /** Properties of a Suggestion. */
                        interface ISuggestion {

                            /** Suggestion title */
                            title?: (string|null);
                        }

                        /** Represents a Suggestion. */
                        class Suggestion implements ISuggestion {

                            /**
                             * Constructs a new Suggestion.
                             * @param [properties] Properties to set
                             */
                            constructor(properties?: google.cloud.dialogflow.v2.Intent.Message.ISuggestion);

                            /** Suggestion title. */
                            public title: string;

                            /**
                             * Creates a new Suggestion instance using the specified properties.
                             * @param [properties] Properties to set
                             * @returns Suggestion instance
                             */
                            public static create(properties?: google.cloud.dialogflow.v2.Intent.Message.ISuggestion): google.cloud.dialogflow.v2.Intent.Message.Suggestion;

                            /**
                             * Encodes the specified Suggestion message. Does not implicitly {@link google.cloud.dialogflow.v2.Intent.Message.Suggestion.verify|verify} messages.
                             * @param message Suggestion message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encode(message: google.cloud.dialogflow.v2.Intent.Message.ISuggestion, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Encodes the specified Suggestion message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.Intent.Message.Suggestion.verify|verify} messages.
                             * @param message Suggestion message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encodeDelimited(message: google.cloud.dialogflow.v2.Intent.Message.ISuggestion, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Decodes a Suggestion message from the specified reader or buffer.
                             * @param reader Reader or buffer to decode from
                             * @param [length] Message length if known beforehand
                             * @returns Suggestion
                             * @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.cloud.dialogflow.v2.Intent.Message.Suggestion;

                            /**
                             * Decodes a Suggestion message from the specified reader or buffer, length delimited.
                             * @param reader Reader or buffer to decode from
                             * @returns Suggestion
                             * @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.cloud.dialogflow.v2.Intent.Message.Suggestion;

                            /**
                             * Verifies a Suggestion 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 Suggestion message from a plain object. Also converts values to their respective internal types.
                             * @param object Plain object
                             * @returns Suggestion
                             */
                            public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.Intent.Message.Suggestion;

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

                            /**
                             * Converts this Suggestion to JSON.
                             * @returns JSON object
                             */
                            public toJSON(): { [k: string]: any };

                            /**
                             * Gets the default type url for Suggestion
                             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                             * @returns The default type url
                             */
                            public static getTypeUrl(typeUrlPrefix?: string): string;
                        }

                        /** Properties of a Suggestions. */
                        interface ISuggestions {

                            /** Suggestions suggestions */
                            suggestions?: (google.cloud.dialogflow.v2.Intent.Message.ISuggestion[]|null);
                        }

                        /** Represents a Suggestions. */
                        class Suggestions implements ISuggestions {

                            /**
                             * Constructs a new Suggestions.
                             * @param [properties] Properties to set
                             */
                            constructor(properties?: google.cloud.dialogflow.v2.Intent.Message.ISuggestions);

                            /** Suggestions suggestions. */
                            public suggestions: google.cloud.dialogflow.v2.Intent.Message.ISuggestion[];

                            /**
                             * Creates a new Suggestions instance using the specified properties.
                             * @param [properties] Properties to set
                             * @returns Suggestions instance
                             */
                            public static create(properties?: google.cloud.dialogflow.v2.Intent.Message.ISuggestions): google.cloud.dialogflow.v2.Intent.Message.Suggestions;

                            /**
                             * Encodes the specified Suggestions message. Does not implicitly {@link google.cloud.dialogflow.v2.Intent.Message.Suggestions.verify|verify} messages.
                             * @param message Suggestions message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encode(message: google.cloud.dialogflow.v2.Intent.Message.ISuggestions, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Encodes the specified Suggestions message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.Intent.Message.Suggestions.verify|verify} messages.
                             * @param message Suggestions message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encodeDelimited(message: google.cloud.dialogflow.v2.Intent.Message.ISuggestions, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Decodes a Suggestions message from the specified reader or buffer.
                             * @param reader Reader or buffer to decode from
                             * @param [length] Message length if known beforehand
                             * @returns Suggestions
                             * @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.cloud.dialogflow.v2.Intent.Message.Suggestions;

                            /**
                             * Decodes a Suggestions message from the specified reader or buffer, length delimited.
                             * @param reader Reader or buffer to decode from
                             * @returns Suggestions
                             * @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.cloud.dialogflow.v2.Intent.Message.Suggestions;

                            /**
                             * Verifies a Suggestions 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 Suggestions message from a plain object. Also converts values to their respective internal types.
                             * @param object Plain object
                             * @returns Suggestions
                             */
                            public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.Intent.Message.Suggestions;

                            /**
                             * Creates a plain object from a Suggestions message. Also converts values to other types if specified.
                             * @param message Suggestions
                             * @param [options] Conversion options
                             * @returns Plain object
                             */
                            public static toObject(message: google.cloud.dialogflow.v2.Intent.Message.Suggestions, options?: $protobuf.IConversionOptions): { [k: string]: any };

                            /**
                             * Converts this Suggestions to JSON.
                             * @returns JSON object
                             */
                            public toJSON(): { [k: string]: any };

                            /**
                             * Gets the default type url for Suggestions
                             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                             * @returns The default type url
                             */
                            public static getTypeUrl(typeUrlPrefix?: string): string;
                        }

                        /** Properties of a LinkOutSuggestion. */
                        interface ILinkOutSuggestion {

                            /** LinkOutSuggestion destinationName */
                            destinationName?: (string|null);

                            /** LinkOutSuggestion uri */
                            uri?: (string|null);
                        }

                        /** Represents a LinkOutSuggestion. */
                        class LinkOutSuggestion implements ILinkOutSuggestion {

                            /**
                             * Constructs a new LinkOutSuggestion.
                             * @param [properties] Properties to set
                             */
                            constructor(properties?: google.cloud.dialogflow.v2.Intent.Message.ILinkOutSuggestion);

                            /** LinkOutSuggestion destinationName. */
                            public destinationName: string;

                            /** LinkOutSuggestion uri. */
                            public uri: string;

                            /**
                             * Creates a new LinkOutSuggestion instance using the specified properties.
                             * @param [properties] Properties to set
                             * @returns LinkOutSuggestion instance
                             */
                            public static create(properties?: google.cloud.dialogflow.v2.Intent.Message.ILinkOutSuggestion): google.cloud.dialogflow.v2.Intent.Message.LinkOutSuggestion;

                            /**
                             * Encodes the specified LinkOutSuggestion message. Does not implicitly {@link google.cloud.dialogflow.v2.Intent.Message.LinkOutSuggestion.verify|verify} messages.
                             * @param message LinkOutSuggestion message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encode(message: google.cloud.dialogflow.v2.Intent.Message.ILinkOutSuggestion, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Encodes the specified LinkOutSuggestion message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.Intent.Message.LinkOutSuggestion.verify|verify} messages.
                             * @param message LinkOutSuggestion message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encodeDelimited(message: google.cloud.dialogflow.v2.Intent.Message.ILinkOutSuggestion, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Decodes a LinkOutSuggestion message from the specified reader or buffer.
                             * @param reader Reader or buffer to decode from
                             * @param [length] Message length if known beforehand
                             * @returns LinkOutSuggestion
                             * @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.cloud.dialogflow.v2.Intent.Message.LinkOutSuggestion;

                            /**
                             * Decodes a LinkOutSuggestion message from the specified reader or buffer, length delimited.
                             * @param reader Reader or buffer to decode from
                             * @returns LinkOutSuggestion
                             * @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.cloud.dialogflow.v2.Intent.Message.LinkOutSuggestion;

                            /**
                             * Verifies a LinkOutSuggestion 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 LinkOutSuggestion message from a plain object. Also converts values to their respective internal types.
                             * @param object Plain object
                             * @returns LinkOutSuggestion
                             */
                            public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.Intent.Message.LinkOutSuggestion;

                            /**
                             * Creates a plain object from a LinkOutSuggestion message. Also converts values to other types if specified.
                             * @param message LinkOutSuggestion
                             * @param [options] Conversion options
                             * @returns Plain object
                             */
                            public static toObject(message: google.cloud.dialogflow.v2.Intent.Message.LinkOutSuggestion, options?: $protobuf.IConversionOptions): { [k: string]: any };

                            /**
                             * Converts this LinkOutSuggestion to JSON.
                             * @returns JSON object
                             */
                            public toJSON(): { [k: string]: any };

                            /**
                             * Gets the default type url for LinkOutSuggestion
                             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                             * @returns The default type url
                             */
                            public static getTypeUrl(typeUrlPrefix?: string): string;
                        }

                        /** Properties of a ListSelect. */
                        interface IListSelect {

                            /** ListSelect title */
                            title?: (string|null);

                            /** ListSelect items */
                            items?: (google.cloud.dialogflow.v2.Intent.Message.ListSelect.IItem[]|null);

                            /** ListSelect subtitle */
                            subtitle?: (string|null);
                        }

                        /** Represents a ListSelect. */
                        class ListSelect implements IListSelect {

                            /**
                             * Constructs a new ListSelect.
                             * @param [properties] Properties to set
                             */
                            constructor(properties?: google.cloud.dialogflow.v2.Intent.Message.IListSelect);

                            /** ListSelect title. */
                            public title: string;

                            /** ListSelect items. */
                            public items: google.cloud.dialogflow.v2.Intent.Message.ListSelect.IItem[];

                            /** ListSelect subtitle. */
                            public subtitle: string;

                            /**
                             * Creates a new ListSelect instance using the specified properties.
                             * @param [properties] Properties to set
                             * @returns ListSelect instance
                             */
                            public static create(properties?: google.cloud.dialogflow.v2.Intent.Message.IListSelect): google.cloud.dialogflow.v2.Intent.Message.ListSelect;

                            /**
                             * Encodes the specified ListSelect message. Does not implicitly {@link google.cloud.dialogflow.v2.Intent.Message.ListSelect.verify|verify} messages.
                             * @param message ListSelect message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encode(message: google.cloud.dialogflow.v2.Intent.Message.IListSelect, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Encodes the specified ListSelect message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.Intent.Message.ListSelect.verify|verify} messages.
                             * @param message ListSelect message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encodeDelimited(message: google.cloud.dialogflow.v2.Intent.Message.IListSelect, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Decodes a ListSelect message from the specified reader or buffer.
                             * @param reader Reader or buffer to decode from
                             * @param [length] Message length if known beforehand
                             * @returns ListSelect
                             * @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.cloud.dialogflow.v2.Intent.Message.ListSelect;

                            /**
                             * Decodes a ListSelect message from the specified reader or buffer, length delimited.
                             * @param reader Reader or buffer to decode from
                             * @returns ListSelect
                             * @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.cloud.dialogflow.v2.Intent.Message.ListSelect;

                            /**
                             * Verifies a ListSelect 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 ListSelect message from a plain object. Also converts values to their respective internal types.
                             * @param object Plain object
                             * @returns ListSelect
                             */
                            public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.Intent.Message.ListSelect;

                            /**
                             * Creates a plain object from a ListSelect message. Also converts values to other types if specified.
                             * @param message ListSelect
                             * @param [options] Conversion options
                             * @returns Plain object
                             */
                            public static toObject(message: google.cloud.dialogflow.v2.Intent.Message.ListSelect, options?: $protobuf.IConversionOptions): { [k: string]: any };

                            /**
                             * Converts this ListSelect to JSON.
                             * @returns JSON object
                             */
                            public toJSON(): { [k: string]: any };

                            /**
                             * Gets the default type url for ListSelect
                             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                             * @returns The default type url
                             */
                            public static getTypeUrl(typeUrlPrefix?: string): string;
                        }

                        namespace ListSelect {

                            /** Properties of an Item. */
                            interface IItem {

                                /** Item info */
                                info?: (google.cloud.dialogflow.v2.Intent.Message.ISelectItemInfo|null);

                                /** Item title */
                                title?: (string|null);

                                /** Item description */
                                description?: (string|null);

                                /** Item image */
                                image?: (google.cloud.dialogflow.v2.Intent.Message.IImage|null);
                            }

                            /** Represents an Item. */
                            class Item implements IItem {

                                /**
                                 * Constructs a new Item.
                                 * @param [properties] Properties to set
                                 */
                                constructor(properties?: google.cloud.dialogflow.v2.Intent.Message.ListSelect.IItem);

                                /** Item info. */
                                public info?: (google.cloud.dialogflow.v2.Intent.Message.ISelectItemInfo|null);

                                /** Item title. */
                                public title: string;

                                /** Item description. */
                                public description: string;

                                /** Item image. */
                                public image?: (google.cloud.dialogflow.v2.Intent.Message.IImage|null);

                                /**
                                 * Creates a new Item instance using the specified properties.
                                 * @param [properties] Properties to set
                                 * @returns Item instance
                                 */
                                public static create(properties?: google.cloud.dialogflow.v2.Intent.Message.ListSelect.IItem): google.cloud.dialogflow.v2.Intent.Message.ListSelect.Item;

                                /**
                                 * Encodes the specified Item message. Does not implicitly {@link google.cloud.dialogflow.v2.Intent.Message.ListSelect.Item.verify|verify} messages.
                                 * @param message Item message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encode(message: google.cloud.dialogflow.v2.Intent.Message.ListSelect.IItem, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Encodes the specified Item message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.Intent.Message.ListSelect.Item.verify|verify} messages.
                                 * @param message Item message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encodeDelimited(message: google.cloud.dialogflow.v2.Intent.Message.ListSelect.IItem, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Decodes an Item message from the specified reader or buffer.
                                 * @param reader Reader or buffer to decode from
                                 * @param [length] Message length if known beforehand
                                 * @returns Item
                                 * @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.cloud.dialogflow.v2.Intent.Message.ListSelect.Item;

                                /**
                                 * Decodes an Item message from the specified reader or buffer, length delimited.
                                 * @param reader Reader or buffer to decode from
                                 * @returns Item
                                 * @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.cloud.dialogflow.v2.Intent.Message.ListSelect.Item;

                                /**
                                 * Verifies an Item 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 Item message from a plain object. Also converts values to their respective internal types.
                                 * @param object Plain object
                                 * @returns Item
                                 */
                                public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.Intent.Message.ListSelect.Item;

                                /**
                                 * Creates a plain object from an Item message. Also converts values to other types if specified.
                                 * @param message Item
                                 * @param [options] Conversion options
                                 * @returns Plain object
                                 */
                                public static toObject(message: google.cloud.dialogflow.v2.Intent.Message.ListSelect.Item, options?: $protobuf.IConversionOptions): { [k: string]: any };

                                /**
                                 * Converts this Item to JSON.
                                 * @returns JSON object
                                 */
                                public toJSON(): { [k: string]: any };

                                /**
                                 * Gets the default type url for Item
                                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                                 * @returns The default type url
                                 */
                                public static getTypeUrl(typeUrlPrefix?: string): string;
                            }
                        }

                        /** Properties of a CarouselSelect. */
                        interface ICarouselSelect {

                            /** CarouselSelect items */
                            items?: (google.cloud.dialogflow.v2.Intent.Message.CarouselSelect.IItem[]|null);
                        }

                        /** Represents a CarouselSelect. */
                        class CarouselSelect implements ICarouselSelect {

                            /**
                             * Constructs a new CarouselSelect.
                             * @param [properties] Properties to set
                             */
                            constructor(properties?: google.cloud.dialogflow.v2.Intent.Message.ICarouselSelect);

                            /** CarouselSelect items. */
                            public items: google.cloud.dialogflow.v2.Intent.Message.CarouselSelect.IItem[];

                            /**
                             * Creates a new CarouselSelect instance using the specified properties.
                             * @param [properties] Properties to set
                             * @returns CarouselSelect instance
                             */
                            public static create(properties?: google.cloud.dialogflow.v2.Intent.Message.ICarouselSelect): google.cloud.dialogflow.v2.Intent.Message.CarouselSelect;

                            /**
                             * Encodes the specified CarouselSelect message. Does not implicitly {@link google.cloud.dialogflow.v2.Intent.Message.CarouselSelect.verify|verify} messages.
                             * @param message CarouselSelect message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encode(message: google.cloud.dialogflow.v2.Intent.Message.ICarouselSelect, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Encodes the specified CarouselSelect message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.Intent.Message.CarouselSelect.verify|verify} messages.
                             * @param message CarouselSelect message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encodeDelimited(message: google.cloud.dialogflow.v2.Intent.Message.ICarouselSelect, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Decodes a CarouselSelect message from the specified reader or buffer.
                             * @param reader Reader or buffer to decode from
                             * @param [length] Message length if known beforehand
                             * @returns CarouselSelect
                             * @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.cloud.dialogflow.v2.Intent.Message.CarouselSelect;

                            /**
                             * Decodes a CarouselSelect message from the specified reader or buffer, length delimited.
                             * @param reader Reader or buffer to decode from
                             * @returns CarouselSelect
                             * @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.cloud.dialogflow.v2.Intent.Message.CarouselSelect;

                            /**
                             * Verifies a CarouselSelect 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 CarouselSelect message from a plain object. Also converts values to their respective internal types.
                             * @param object Plain object
                             * @returns CarouselSelect
                             */
                            public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.Intent.Message.CarouselSelect;

                            /**
                             * Creates a plain object from a CarouselSelect message. Also converts values to other types if specified.
                             * @param message CarouselSelect
                             * @param [options] Conversion options
                             * @returns Plain object
                             */
                            public static toObject(message: google.cloud.dialogflow.v2.Intent.Message.CarouselSelect, options?: $protobuf.IConversionOptions): { [k: string]: any };

                            /**
                             * Converts this CarouselSelect to JSON.
                             * @returns JSON object
                             */
                            public toJSON(): { [k: string]: any };

                            /**
                             * Gets the default type url for CarouselSelect
                             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                             * @returns The default type url
                             */
                            public static getTypeUrl(typeUrlPrefix?: string): string;
                        }

                        namespace CarouselSelect {

                            /** Properties of an Item. */
                            interface IItem {

                                /** Item info */
                                info?: (google.cloud.dialogflow.v2.Intent.Message.ISelectItemInfo|null);

                                /** Item title */
                                title?: (string|null);

                                /** Item description */
                                description?: (string|null);

                                /** Item image */
                                image?: (google.cloud.dialogflow.v2.Intent.Message.IImage|null);
                            }

                            /** Represents an Item. */
                            class Item implements IItem {

                                /**
                                 * Constructs a new Item.
                                 * @param [properties] Properties to set
                                 */
                                constructor(properties?: google.cloud.dialogflow.v2.Intent.Message.CarouselSelect.IItem);

                                /** Item info. */
                                public info?: (google.cloud.dialogflow.v2.Intent.Message.ISelectItemInfo|null);

                                /** Item title. */
                                public title: string;

                                /** Item description. */
                                public description: string;

                                /** Item image. */
                                public image?: (google.cloud.dialogflow.v2.Intent.Message.IImage|null);

                                /**
                                 * Creates a new Item instance using the specified properties.
                                 * @param [properties] Properties to set
                                 * @returns Item instance
                                 */
                                public static create(properties?: google.cloud.dialogflow.v2.Intent.Message.CarouselSelect.IItem): google.cloud.dialogflow.v2.Intent.Message.CarouselSelect.Item;

                                /**
                                 * Encodes the specified Item message. Does not implicitly {@link google.cloud.dialogflow.v2.Intent.Message.CarouselSelect.Item.verify|verify} messages.
                                 * @param message Item message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encode(message: google.cloud.dialogflow.v2.Intent.Message.CarouselSelect.IItem, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Encodes the specified Item message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.Intent.Message.CarouselSelect.Item.verify|verify} messages.
                                 * @param message Item message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encodeDelimited(message: google.cloud.dialogflow.v2.Intent.Message.CarouselSelect.IItem, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Decodes an Item message from the specified reader or buffer.
                                 * @param reader Reader or buffer to decode from
                                 * @param [length] Message length if known beforehand
                                 * @returns Item
                                 * @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.cloud.dialogflow.v2.Intent.Message.CarouselSelect.Item;

                                /**
                                 * Decodes an Item message from the specified reader or buffer, length delimited.
                                 * @param reader Reader or buffer to decode from
                                 * @returns Item
                                 * @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.cloud.dialogflow.v2.Intent.Message.CarouselSelect.Item;

                                /**
                                 * Verifies an Item 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 Item message from a plain object. Also converts values to their respective internal types.
                                 * @param object Plain object
                                 * @returns Item
                                 */
                                public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.Intent.Message.CarouselSelect.Item;

                                /**
                                 * Creates a plain object from an Item message. Also converts values to other types if specified.
                                 * @param message Item
                                 * @param [options] Conversion options
                                 * @returns Plain object
                                 */
                                public static toObject(message: google.cloud.dialogflow.v2.Intent.Message.CarouselSelect.Item, options?: $protobuf.IConversionOptions): { [k: string]: any };

                                /**
                                 * Converts this Item to JSON.
                                 * @returns JSON object
                                 */
                                public toJSON(): { [k: string]: any };

                                /**
                                 * Gets the default type url for Item
                                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                                 * @returns The default type url
                                 */
                                public static getTypeUrl(typeUrlPrefix?: string): string;
                            }
                        }

                        /** Properties of a SelectItemInfo. */
                        interface ISelectItemInfo {

                            /** SelectItemInfo key */
                            key?: (string|null);

                            /** SelectItemInfo synonyms */
                            synonyms?: (string[]|null);
                        }

                        /** Represents a SelectItemInfo. */
                        class SelectItemInfo implements ISelectItemInfo {

                            /**
                             * Constructs a new SelectItemInfo.
                             * @param [properties] Properties to set
                             */
                            constructor(properties?: google.cloud.dialogflow.v2.Intent.Message.ISelectItemInfo);

                            /** SelectItemInfo key. */
                            public key: string;

                            /** SelectItemInfo synonyms. */
                            public synonyms: string[];

                            /**
                             * Creates a new SelectItemInfo instance using the specified properties.
                             * @param [properties] Properties to set
                             * @returns SelectItemInfo instance
                             */
                            public static create(properties?: google.cloud.dialogflow.v2.Intent.Message.ISelectItemInfo): google.cloud.dialogflow.v2.Intent.Message.SelectItemInfo;

                            /**
                             * Encodes the specified SelectItemInfo message. Does not implicitly {@link google.cloud.dialogflow.v2.Intent.Message.SelectItemInfo.verify|verify} messages.
                             * @param message SelectItemInfo message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encode(message: google.cloud.dialogflow.v2.Intent.Message.ISelectItemInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Encodes the specified SelectItemInfo message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.Intent.Message.SelectItemInfo.verify|verify} messages.
                             * @param message SelectItemInfo message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encodeDelimited(message: google.cloud.dialogflow.v2.Intent.Message.ISelectItemInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Decodes a SelectItemInfo message from the specified reader or buffer.
                             * @param reader Reader or buffer to decode from
                             * @param [length] Message length if known beforehand
                             * @returns SelectItemInfo
                             * @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.cloud.dialogflow.v2.Intent.Message.SelectItemInfo;

                            /**
                             * Decodes a SelectItemInfo message from the specified reader or buffer, length delimited.
                             * @param reader Reader or buffer to decode from
                             * @returns SelectItemInfo
                             * @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.cloud.dialogflow.v2.Intent.Message.SelectItemInfo;

                            /**
                             * Verifies a SelectItemInfo 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 SelectItemInfo message from a plain object. Also converts values to their respective internal types.
                             * @param object Plain object
                             * @returns SelectItemInfo
                             */
                            public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.Intent.Message.SelectItemInfo;

                            /**
                             * Creates a plain object from a SelectItemInfo message. Also converts values to other types if specified.
                             * @param message SelectItemInfo
                             * @param [options] Conversion options
                             * @returns Plain object
                             */
                            public static toObject(message: google.cloud.dialogflow.v2.Intent.Message.SelectItemInfo, options?: $protobuf.IConversionOptions): { [k: string]: any };

                            /**
                             * Converts this SelectItemInfo to JSON.
                             * @returns JSON object
                             */
                            public toJSON(): { [k: string]: any };

                            /**
                             * Gets the default type url for SelectItemInfo
                             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                             * @returns The default type url
                             */
                            public static getTypeUrl(typeUrlPrefix?: string): string;
                        }

                        /** Properties of a MediaContent. */
                        interface IMediaContent {

                            /** MediaContent mediaType */
                            mediaType?: (google.cloud.dialogflow.v2.Intent.Message.MediaContent.ResponseMediaType|keyof typeof google.cloud.dialogflow.v2.Intent.Message.MediaContent.ResponseMediaType|null);

                            /** MediaContent mediaObjects */
                            mediaObjects?: (google.cloud.dialogflow.v2.Intent.Message.MediaContent.IResponseMediaObject[]|null);
                        }

                        /** Represents a MediaContent. */
                        class MediaContent implements IMediaContent {

                            /**
                             * Constructs a new MediaContent.
                             * @param [properties] Properties to set
                             */
                            constructor(properties?: google.cloud.dialogflow.v2.Intent.Message.IMediaContent);

                            /** MediaContent mediaType. */
                            public mediaType: (google.cloud.dialogflow.v2.Intent.Message.MediaContent.ResponseMediaType|keyof typeof google.cloud.dialogflow.v2.Intent.Message.MediaContent.ResponseMediaType);

                            /** MediaContent mediaObjects. */
                            public mediaObjects: google.cloud.dialogflow.v2.Intent.Message.MediaContent.IResponseMediaObject[];

                            /**
                             * Creates a new MediaContent instance using the specified properties.
                             * @param [properties] Properties to set
                             * @returns MediaContent instance
                             */
                            public static create(properties?: google.cloud.dialogflow.v2.Intent.Message.IMediaContent): google.cloud.dialogflow.v2.Intent.Message.MediaContent;

                            /**
                             * Encodes the specified MediaContent message. Does not implicitly {@link google.cloud.dialogflow.v2.Intent.Message.MediaContent.verify|verify} messages.
                             * @param message MediaContent message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encode(message: google.cloud.dialogflow.v2.Intent.Message.IMediaContent, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Encodes the specified MediaContent message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.Intent.Message.MediaContent.verify|verify} messages.
                             * @param message MediaContent message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encodeDelimited(message: google.cloud.dialogflow.v2.Intent.Message.IMediaContent, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Decodes a MediaContent message from the specified reader or buffer.
                             * @param reader Reader or buffer to decode from
                             * @param [length] Message length if known beforehand
                             * @returns MediaContent
                             * @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.cloud.dialogflow.v2.Intent.Message.MediaContent;

                            /**
                             * Decodes a MediaContent message from the specified reader or buffer, length delimited.
                             * @param reader Reader or buffer to decode from
                             * @returns MediaContent
                             * @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.cloud.dialogflow.v2.Intent.Message.MediaContent;

                            /**
                             * Verifies a MediaContent 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 MediaContent message from a plain object. Also converts values to their respective internal types.
                             * @param object Plain object
                             * @returns MediaContent
                             */
                            public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.Intent.Message.MediaContent;

                            /**
                             * Creates a plain object from a MediaContent message. Also converts values to other types if specified.
                             * @param message MediaContent
                             * @param [options] Conversion options
                             * @returns Plain object
                             */
                            public static toObject(message: google.cloud.dialogflow.v2.Intent.Message.MediaContent, options?: $protobuf.IConversionOptions): { [k: string]: any };

                            /**
                             * Converts this MediaContent to JSON.
                             * @returns JSON object
                             */
                            public toJSON(): { [k: string]: any };

                            /**
                             * Gets the default type url for MediaContent
                             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                             * @returns The default type url
                             */
                            public static getTypeUrl(typeUrlPrefix?: string): string;
                        }

                        namespace MediaContent {

                            /** ResponseMediaType enum. */
                            enum ResponseMediaType {
                                RESPONSE_MEDIA_TYPE_UNSPECIFIED = 0,
                                AUDIO = 1
                            }

                            /** Properties of a ResponseMediaObject. */
                            interface IResponseMediaObject {

                                /** ResponseMediaObject name */
                                name?: (string|null);

                                /** ResponseMediaObject description */
                                description?: (string|null);

                                /** ResponseMediaObject largeImage */
                                largeImage?: (google.cloud.dialogflow.v2.Intent.Message.IImage|null);

                                /** ResponseMediaObject icon */
                                icon?: (google.cloud.dialogflow.v2.Intent.Message.IImage|null);

                                /** ResponseMediaObject contentUrl */
                                contentUrl?: (string|null);
                            }

                            /** Represents a ResponseMediaObject. */
                            class ResponseMediaObject implements IResponseMediaObject {

                                /**
                                 * Constructs a new ResponseMediaObject.
                                 * @param [properties] Properties to set
                                 */
                                constructor(properties?: google.cloud.dialogflow.v2.Intent.Message.MediaContent.IResponseMediaObject);

                                /** ResponseMediaObject name. */
                                public name: string;

                                /** ResponseMediaObject description. */
                                public description: string;

                                /** ResponseMediaObject largeImage. */
                                public largeImage?: (google.cloud.dialogflow.v2.Intent.Message.IImage|null);

                                /** ResponseMediaObject icon. */
                                public icon?: (google.cloud.dialogflow.v2.Intent.Message.IImage|null);

                                /** ResponseMediaObject contentUrl. */
                                public contentUrl: string;

                                /** ResponseMediaObject image. */
                                public image?: ("largeImage"|"icon");

                                /**
                                 * Creates a new ResponseMediaObject instance using the specified properties.
                                 * @param [properties] Properties to set
                                 * @returns ResponseMediaObject instance
                                 */
                                public static create(properties?: google.cloud.dialogflow.v2.Intent.Message.MediaContent.IResponseMediaObject): google.cloud.dialogflow.v2.Intent.Message.MediaContent.ResponseMediaObject;

                                /**
                                 * Encodes the specified ResponseMediaObject message. Does not implicitly {@link google.cloud.dialogflow.v2.Intent.Message.MediaContent.ResponseMediaObject.verify|verify} messages.
                                 * @param message ResponseMediaObject message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encode(message: google.cloud.dialogflow.v2.Intent.Message.MediaContent.IResponseMediaObject, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Encodes the specified ResponseMediaObject message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.Intent.Message.MediaContent.ResponseMediaObject.verify|verify} messages.
                                 * @param message ResponseMediaObject message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encodeDelimited(message: google.cloud.dialogflow.v2.Intent.Message.MediaContent.IResponseMediaObject, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Decodes a ResponseMediaObject message from the specified reader or buffer.
                                 * @param reader Reader or buffer to decode from
                                 * @param [length] Message length if known beforehand
                                 * @returns ResponseMediaObject
                                 * @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.cloud.dialogflow.v2.Intent.Message.MediaContent.ResponseMediaObject;

                                /**
                                 * Decodes a ResponseMediaObject message from the specified reader or buffer, length delimited.
                                 * @param reader Reader or buffer to decode from
                                 * @returns ResponseMediaObject
                                 * @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.cloud.dialogflow.v2.Intent.Message.MediaContent.ResponseMediaObject;

                                /**
                                 * Verifies a ResponseMediaObject 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 ResponseMediaObject message from a plain object. Also converts values to their respective internal types.
                                 * @param object Plain object
                                 * @returns ResponseMediaObject
                                 */
                                public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.Intent.Message.MediaContent.ResponseMediaObject;

                                /**
                                 * Creates a plain object from a ResponseMediaObject message. Also converts values to other types if specified.
                                 * @param message ResponseMediaObject
                                 * @param [options] Conversion options
                                 * @returns Plain object
                                 */
                                public static toObject(message: google.cloud.dialogflow.v2.Intent.Message.MediaContent.ResponseMediaObject, options?: $protobuf.IConversionOptions): { [k: string]: any };

                                /**
                                 * Converts this ResponseMediaObject to JSON.
                                 * @returns JSON object
                                 */
                                public toJSON(): { [k: string]: any };

                                /**
                                 * Gets the default type url for ResponseMediaObject
                                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                                 * @returns The default type url
                                 */
                                public static getTypeUrl(typeUrlPrefix?: string): string;
                            }
                        }

                        /** Properties of a BrowseCarouselCard. */
                        interface IBrowseCarouselCard {

                            /** BrowseCarouselCard items */
                            items?: (google.cloud.dialogflow.v2.Intent.Message.BrowseCarouselCard.IBrowseCarouselCardItem[]|null);

                            /** BrowseCarouselCard imageDisplayOptions */
                            imageDisplayOptions?: (google.cloud.dialogflow.v2.Intent.Message.BrowseCarouselCard.ImageDisplayOptions|keyof typeof google.cloud.dialogflow.v2.Intent.Message.BrowseCarouselCard.ImageDisplayOptions|null);
                        }

                        /** Represents a BrowseCarouselCard. */
                        class BrowseCarouselCard implements IBrowseCarouselCard {

                            /**
                             * Constructs a new BrowseCarouselCard.
                             * @param [properties] Properties to set
                             */
                            constructor(properties?: google.cloud.dialogflow.v2.Intent.Message.IBrowseCarouselCard);

                            /** BrowseCarouselCard items. */
                            public items: google.cloud.dialogflow.v2.Intent.Message.BrowseCarouselCard.IBrowseCarouselCardItem[];

                            /** BrowseCarouselCard imageDisplayOptions. */
                            public imageDisplayOptions: (google.cloud.dialogflow.v2.Intent.Message.BrowseCarouselCard.ImageDisplayOptions|keyof typeof google.cloud.dialogflow.v2.Intent.Message.BrowseCarouselCard.ImageDisplayOptions);

                            /**
                             * Creates a new BrowseCarouselCard instance using the specified properties.
                             * @param [properties] Properties to set
                             * @returns BrowseCarouselCard instance
                             */
                            public static create(properties?: google.cloud.dialogflow.v2.Intent.Message.IBrowseCarouselCard): google.cloud.dialogflow.v2.Intent.Message.BrowseCarouselCard;

                            /**
                             * Encodes the specified BrowseCarouselCard message. Does not implicitly {@link google.cloud.dialogflow.v2.Intent.Message.BrowseCarouselCard.verify|verify} messages.
                             * @param message BrowseCarouselCard message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encode(message: google.cloud.dialogflow.v2.Intent.Message.IBrowseCarouselCard, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Encodes the specified BrowseCarouselCard message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.Intent.Message.BrowseCarouselCard.verify|verify} messages.
                             * @param message BrowseCarouselCard message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encodeDelimited(message: google.cloud.dialogflow.v2.Intent.Message.IBrowseCarouselCard, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Decodes a BrowseCarouselCard message from the specified reader or buffer.
                             * @param reader Reader or buffer to decode from
                             * @param [length] Message length if known beforehand
                             * @returns BrowseCarouselCard
                             * @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.cloud.dialogflow.v2.Intent.Message.BrowseCarouselCard;

                            /**
                             * Decodes a BrowseCarouselCard message from the specified reader or buffer, length delimited.
                             * @param reader Reader or buffer to decode from
                             * @returns BrowseCarouselCard
                             * @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.cloud.dialogflow.v2.Intent.Message.BrowseCarouselCard;

                            /**
                             * Verifies a BrowseCarouselCard 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 BrowseCarouselCard message from a plain object. Also converts values to their respective internal types.
                             * @param object Plain object
                             * @returns BrowseCarouselCard
                             */
                            public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.Intent.Message.BrowseCarouselCard;

                            /**
                             * Creates a plain object from a BrowseCarouselCard message. Also converts values to other types if specified.
                             * @param message BrowseCarouselCard
                             * @param [options] Conversion options
                             * @returns Plain object
                             */
                            public static toObject(message: google.cloud.dialogflow.v2.Intent.Message.BrowseCarouselCard, options?: $protobuf.IConversionOptions): { [k: string]: any };

                            /**
                             * Converts this BrowseCarouselCard to JSON.
                             * @returns JSON object
                             */
                            public toJSON(): { [k: string]: any };

                            /**
                             * Gets the default type url for BrowseCarouselCard
                             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                             * @returns The default type url
                             */
                            public static getTypeUrl(typeUrlPrefix?: string): string;
                        }

                        namespace BrowseCarouselCard {

                            /** Properties of a BrowseCarouselCardItem. */
                            interface IBrowseCarouselCardItem {

                                /** BrowseCarouselCardItem openUriAction */
                                openUriAction?: (google.cloud.dialogflow.v2.Intent.Message.BrowseCarouselCard.BrowseCarouselCardItem.IOpenUrlAction|null);

                                /** BrowseCarouselCardItem title */
                                title?: (string|null);

                                /** BrowseCarouselCardItem description */
                                description?: (string|null);

                                /** BrowseCarouselCardItem image */
                                image?: (google.cloud.dialogflow.v2.Intent.Message.IImage|null);

                                /** BrowseCarouselCardItem footer */
                                footer?: (string|null);
                            }

                            /** Represents a BrowseCarouselCardItem. */
                            class BrowseCarouselCardItem implements IBrowseCarouselCardItem {

                                /**
                                 * Constructs a new BrowseCarouselCardItem.
                                 * @param [properties] Properties to set
                                 */
                                constructor(properties?: google.cloud.dialogflow.v2.Intent.Message.BrowseCarouselCard.IBrowseCarouselCardItem);

                                /** BrowseCarouselCardItem openUriAction. */
                                public openUriAction?: (google.cloud.dialogflow.v2.Intent.Message.BrowseCarouselCard.BrowseCarouselCardItem.IOpenUrlAction|null);

                                /** BrowseCarouselCardItem title. */
                                public title: string;

                                /** BrowseCarouselCardItem description. */
                                public description: string;

                                /** BrowseCarouselCardItem image. */
                                public image?: (google.cloud.dialogflow.v2.Intent.Message.IImage|null);

                                /** BrowseCarouselCardItem footer. */
                                public footer: string;

                                /**
                                 * Creates a new BrowseCarouselCardItem instance using the specified properties.
                                 * @param [properties] Properties to set
                                 * @returns BrowseCarouselCardItem instance
                                 */
                                public static create(properties?: google.cloud.dialogflow.v2.Intent.Message.BrowseCarouselCard.IBrowseCarouselCardItem): google.cloud.dialogflow.v2.Intent.Message.BrowseCarouselCard.BrowseCarouselCardItem;

                                /**
                                 * Encodes the specified BrowseCarouselCardItem message. Does not implicitly {@link google.cloud.dialogflow.v2.Intent.Message.BrowseCarouselCard.BrowseCarouselCardItem.verify|verify} messages.
                                 * @param message BrowseCarouselCardItem message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encode(message: google.cloud.dialogflow.v2.Intent.Message.BrowseCarouselCard.IBrowseCarouselCardItem, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Encodes the specified BrowseCarouselCardItem message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.Intent.Message.BrowseCarouselCard.BrowseCarouselCardItem.verify|verify} messages.
                                 * @param message BrowseCarouselCardItem message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encodeDelimited(message: google.cloud.dialogflow.v2.Intent.Message.BrowseCarouselCard.IBrowseCarouselCardItem, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Decodes a BrowseCarouselCardItem message from the specified reader or buffer.
                                 * @param reader Reader or buffer to decode from
                                 * @param [length] Message length if known beforehand
                                 * @returns BrowseCarouselCardItem
                                 * @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.cloud.dialogflow.v2.Intent.Message.BrowseCarouselCard.BrowseCarouselCardItem;

                                /**
                                 * Decodes a BrowseCarouselCardItem message from the specified reader or buffer, length delimited.
                                 * @param reader Reader or buffer to decode from
                                 * @returns BrowseCarouselCardItem
                                 * @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.cloud.dialogflow.v2.Intent.Message.BrowseCarouselCard.BrowseCarouselCardItem;

                                /**
                                 * Verifies a BrowseCarouselCardItem 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 BrowseCarouselCardItem message from a plain object. Also converts values to their respective internal types.
                                 * @param object Plain object
                                 * @returns BrowseCarouselCardItem
                                 */
                                public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.Intent.Message.BrowseCarouselCard.BrowseCarouselCardItem;

                                /**
                                 * Creates a plain object from a BrowseCarouselCardItem message. Also converts values to other types if specified.
                                 * @param message BrowseCarouselCardItem
                                 * @param [options] Conversion options
                                 * @returns Plain object
                                 */
                                public static toObject(message: google.cloud.dialogflow.v2.Intent.Message.BrowseCarouselCard.BrowseCarouselCardItem, options?: $protobuf.IConversionOptions): { [k: string]: any };

                                /**
                                 * Converts this BrowseCarouselCardItem to JSON.
                                 * @returns JSON object
                                 */
                                public toJSON(): { [k: string]: any };

                                /**
                                 * Gets the default type url for BrowseCarouselCardItem
                                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                                 * @returns The default type url
                                 */
                                public static getTypeUrl(typeUrlPrefix?: string): string;
                            }

                            namespace BrowseCarouselCardItem {

                                /** Properties of an OpenUrlAction. */
                                interface IOpenUrlAction {

                                    /** OpenUrlAction url */
                                    url?: (string|null);

                                    /** OpenUrlAction urlTypeHint */
                                    urlTypeHint?: (google.cloud.dialogflow.v2.Intent.Message.BrowseCarouselCard.BrowseCarouselCardItem.OpenUrlAction.UrlTypeHint|keyof typeof google.cloud.dialogflow.v2.Intent.Message.BrowseCarouselCard.BrowseCarouselCardItem.OpenUrlAction.UrlTypeHint|null);
                                }

                                /** Represents an OpenUrlAction. */
                                class OpenUrlAction implements IOpenUrlAction {

                                    /**
                                     * Constructs a new OpenUrlAction.
                                     * @param [properties] Properties to set
                                     */
                                    constructor(properties?: google.cloud.dialogflow.v2.Intent.Message.BrowseCarouselCard.BrowseCarouselCardItem.IOpenUrlAction);

                                    /** OpenUrlAction url. */
                                    public url: string;

                                    /** OpenUrlAction urlTypeHint. */
                                    public urlTypeHint: (google.cloud.dialogflow.v2.Intent.Message.BrowseCarouselCard.BrowseCarouselCardItem.OpenUrlAction.UrlTypeHint|keyof typeof google.cloud.dialogflow.v2.Intent.Message.BrowseCarouselCard.BrowseCarouselCardItem.OpenUrlAction.UrlTypeHint);

                                    /**
                                     * Creates a new OpenUrlAction instance using the specified properties.
                                     * @param [properties] Properties to set
                                     * @returns OpenUrlAction instance
                                     */
                                    public static create(properties?: google.cloud.dialogflow.v2.Intent.Message.BrowseCarouselCard.BrowseCarouselCardItem.IOpenUrlAction): google.cloud.dialogflow.v2.Intent.Message.BrowseCarouselCard.BrowseCarouselCardItem.OpenUrlAction;

                                    /**
                                     * Encodes the specified OpenUrlAction message. Does not implicitly {@link google.cloud.dialogflow.v2.Intent.Message.BrowseCarouselCard.BrowseCarouselCardItem.OpenUrlAction.verify|verify} messages.
                                     * @param message OpenUrlAction message or plain object to encode
                                     * @param [writer] Writer to encode to
                                     * @returns Writer
                                     */
                                    public static encode(message: google.cloud.dialogflow.v2.Intent.Message.BrowseCarouselCard.BrowseCarouselCardItem.IOpenUrlAction, writer?: $protobuf.Writer): $protobuf.Writer;

                                    /**
                                     * Encodes the specified OpenUrlAction message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.Intent.Message.BrowseCarouselCard.BrowseCarouselCardItem.OpenUrlAction.verify|verify} messages.
                                     * @param message OpenUrlAction message or plain object to encode
                                     * @param [writer] Writer to encode to
                                     * @returns Writer
                                     */
                                    public static encodeDelimited(message: google.cloud.dialogflow.v2.Intent.Message.BrowseCarouselCard.BrowseCarouselCardItem.IOpenUrlAction, writer?: $protobuf.Writer): $protobuf.Writer;

                                    /**
                                     * Decodes an OpenUrlAction message from the specified reader or buffer.
                                     * @param reader Reader or buffer to decode from
                                     * @param [length] Message length if known beforehand
                                     * @returns OpenUrlAction
                                     * @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.cloud.dialogflow.v2.Intent.Message.BrowseCarouselCard.BrowseCarouselCardItem.OpenUrlAction;

                                    /**
                                     * Decodes an OpenUrlAction message from the specified reader or buffer, length delimited.
                                     * @param reader Reader or buffer to decode from
                                     * @returns OpenUrlAction
                                     * @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.cloud.dialogflow.v2.Intent.Message.BrowseCarouselCard.BrowseCarouselCardItem.OpenUrlAction;

                                    /**
                                     * Verifies an OpenUrlAction 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 OpenUrlAction message from a plain object. Also converts values to their respective internal types.
                                     * @param object Plain object
                                     * @returns OpenUrlAction
                                     */
                                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.Intent.Message.BrowseCarouselCard.BrowseCarouselCardItem.OpenUrlAction;

                                    /**
                                     * Creates a plain object from an OpenUrlAction message. Also converts values to other types if specified.
                                     * @param message OpenUrlAction
                                     * @param [options] Conversion options
                                     * @returns Plain object
                                     */
                                    public static toObject(message: google.cloud.dialogflow.v2.Intent.Message.BrowseCarouselCard.BrowseCarouselCardItem.OpenUrlAction, options?: $protobuf.IConversionOptions): { [k: string]: any };

                                    /**
                                     * Converts this OpenUrlAction to JSON.
                                     * @returns JSON object
                                     */
                                    public toJSON(): { [k: string]: any };

                                    /**
                                     * Gets the default type url for OpenUrlAction
                                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                                     * @returns The default type url
                                     */
                                    public static getTypeUrl(typeUrlPrefix?: string): string;
                                }

                                namespace OpenUrlAction {

                                    /** UrlTypeHint enum. */
                                    enum UrlTypeHint {
                                        URL_TYPE_HINT_UNSPECIFIED = 0,
                                        AMP_ACTION = 1,
                                        AMP_CONTENT = 2
                                    }
                                }
                            }

                            /** ImageDisplayOptions enum. */
                            enum ImageDisplayOptions {
                                IMAGE_DISPLAY_OPTIONS_UNSPECIFIED = 0,
                                GRAY = 1,
                                WHITE = 2,
                                CROPPED = 3,
                                BLURRED_BACKGROUND = 4
                            }
                        }

                        /** Properties of a TableCard. */
                        interface ITableCard {

                            /** TableCard title */
                            title?: (string|null);

                            /** TableCard subtitle */
                            subtitle?: (string|null);

                            /** TableCard image */
                            image?: (google.cloud.dialogflow.v2.Intent.Message.IImage|null);

                            /** TableCard columnProperties */
                            columnProperties?: (google.cloud.dialogflow.v2.Intent.Message.IColumnProperties[]|null);

                            /** TableCard rows */
                            rows?: (google.cloud.dialogflow.v2.Intent.Message.ITableCardRow[]|null);

                            /** TableCard buttons */
                            buttons?: (google.cloud.dialogflow.v2.Intent.Message.BasicCard.IButton[]|null);
                        }

                        /** Represents a TableCard. */
                        class TableCard implements ITableCard {

                            /**
                             * Constructs a new TableCard.
                             * @param [properties] Properties to set
                             */
                            constructor(properties?: google.cloud.dialogflow.v2.Intent.Message.ITableCard);

                            /** TableCard title. */
                            public title: string;

                            /** TableCard subtitle. */
                            public subtitle: string;

                            /** TableCard image. */
                            public image?: (google.cloud.dialogflow.v2.Intent.Message.IImage|null);

                            /** TableCard columnProperties. */
                            public columnProperties: google.cloud.dialogflow.v2.Intent.Message.IColumnProperties[];

                            /** TableCard rows. */
                            public rows: google.cloud.dialogflow.v2.Intent.Message.ITableCardRow[];

                            /** TableCard buttons. */
                            public buttons: google.cloud.dialogflow.v2.Intent.Message.BasicCard.IButton[];

                            /**
                             * Creates a new TableCard instance using the specified properties.
                             * @param [properties] Properties to set
                             * @returns TableCard instance
                             */
                            public static create(properties?: google.cloud.dialogflow.v2.Intent.Message.ITableCard): google.cloud.dialogflow.v2.Intent.Message.TableCard;

                            /**
                             * Encodes the specified TableCard message. Does not implicitly {@link google.cloud.dialogflow.v2.Intent.Message.TableCard.verify|verify} messages.
                             * @param message TableCard message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encode(message: google.cloud.dialogflow.v2.Intent.Message.ITableCard, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Encodes the specified TableCard message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.Intent.Message.TableCard.verify|verify} messages.
                             * @param message TableCard message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encodeDelimited(message: google.cloud.dialogflow.v2.Intent.Message.ITableCard, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Decodes a TableCard message from the specified reader or buffer.
                             * @param reader Reader or buffer to decode from
                             * @param [length] Message length if known beforehand
                             * @returns TableCard
                             * @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.cloud.dialogflow.v2.Intent.Message.TableCard;

                            /**
                             * Decodes a TableCard message from the specified reader or buffer, length delimited.
                             * @param reader Reader or buffer to decode from
                             * @returns TableCard
                             * @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.cloud.dialogflow.v2.Intent.Message.TableCard;

                            /**
                             * Verifies a TableCard 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 TableCard message from a plain object. Also converts values to their respective internal types.
                             * @param object Plain object
                             * @returns TableCard
                             */
                            public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.Intent.Message.TableCard;

                            /**
                             * Creates a plain object from a TableCard message. Also converts values to other types if specified.
                             * @param message TableCard
                             * @param [options] Conversion options
                             * @returns Plain object
                             */
                            public static toObject(message: google.cloud.dialogflow.v2.Intent.Message.TableCard, options?: $protobuf.IConversionOptions): { [k: string]: any };

                            /**
                             * Converts this TableCard to JSON.
                             * @returns JSON object
                             */
                            public toJSON(): { [k: string]: any };

                            /**
                             * Gets the default type url for TableCard
                             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                             * @returns The default type url
                             */
                            public static getTypeUrl(typeUrlPrefix?: string): string;
                        }

                        /** Properties of a ColumnProperties. */
                        interface IColumnProperties {

                            /** ColumnProperties header */
                            header?: (string|null);

                            /** ColumnProperties horizontalAlignment */
                            horizontalAlignment?: (google.cloud.dialogflow.v2.Intent.Message.ColumnProperties.HorizontalAlignment|keyof typeof google.cloud.dialogflow.v2.Intent.Message.ColumnProperties.HorizontalAlignment|null);
                        }

                        /** Represents a ColumnProperties. */
                        class ColumnProperties implements IColumnProperties {

                            /**
                             * Constructs a new ColumnProperties.
                             * @param [properties] Properties to set
                             */
                            constructor(properties?: google.cloud.dialogflow.v2.Intent.Message.IColumnProperties);

                            /** ColumnProperties header. */
                            public header: string;

                            /** ColumnProperties horizontalAlignment. */
                            public horizontalAlignment: (google.cloud.dialogflow.v2.Intent.Message.ColumnProperties.HorizontalAlignment|keyof typeof google.cloud.dialogflow.v2.Intent.Message.ColumnProperties.HorizontalAlignment);

                            /**
                             * Creates a new ColumnProperties instance using the specified properties.
                             * @param [properties] Properties to set
                             * @returns ColumnProperties instance
                             */
                            public static create(properties?: google.cloud.dialogflow.v2.Intent.Message.IColumnProperties): google.cloud.dialogflow.v2.Intent.Message.ColumnProperties;

                            /**
                             * Encodes the specified ColumnProperties message. Does not implicitly {@link google.cloud.dialogflow.v2.Intent.Message.ColumnProperties.verify|verify} messages.
                             * @param message ColumnProperties message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encode(message: google.cloud.dialogflow.v2.Intent.Message.IColumnProperties, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Encodes the specified ColumnProperties message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.Intent.Message.ColumnProperties.verify|verify} messages.
                             * @param message ColumnProperties message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encodeDelimited(message: google.cloud.dialogflow.v2.Intent.Message.IColumnProperties, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Decodes a ColumnProperties message from the specified reader or buffer.
                             * @param reader Reader or buffer to decode from
                             * @param [length] Message length if known beforehand
                             * @returns ColumnProperties
                             * @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.cloud.dialogflow.v2.Intent.Message.ColumnProperties;

                            /**
                             * Decodes a ColumnProperties message from the specified reader or buffer, length delimited.
                             * @param reader Reader or buffer to decode from
                             * @returns ColumnProperties
                             * @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.cloud.dialogflow.v2.Intent.Message.ColumnProperties;

                            /**
                             * Verifies a ColumnProperties 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 ColumnProperties message from a plain object. Also converts values to their respective internal types.
                             * @param object Plain object
                             * @returns ColumnProperties
                             */
                            public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.Intent.Message.ColumnProperties;

                            /**
                             * Creates a plain object from a ColumnProperties message. Also converts values to other types if specified.
                             * @param message ColumnProperties
                             * @param [options] Conversion options
                             * @returns Plain object
                             */
                            public static toObject(message: google.cloud.dialogflow.v2.Intent.Message.ColumnProperties, options?: $protobuf.IConversionOptions): { [k: string]: any };

                            /**
                             * Converts this ColumnProperties to JSON.
                             * @returns JSON object
                             */
                            public toJSON(): { [k: string]: any };

                            /**
                             * Gets the default type url for ColumnProperties
                             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                             * @returns The default type url
                             */
                            public static getTypeUrl(typeUrlPrefix?: string): string;
                        }

                        namespace ColumnProperties {

                            /** HorizontalAlignment enum. */
                            enum HorizontalAlignment {
                                HORIZONTAL_ALIGNMENT_UNSPECIFIED = 0,
                                LEADING = 1,
                                CENTER = 2,
                                TRAILING = 3
                            }
                        }

                        /** Properties of a TableCardRow. */
                        interface ITableCardRow {

                            /** TableCardRow cells */
                            cells?: (google.cloud.dialogflow.v2.Intent.Message.ITableCardCell[]|null);

                            /** TableCardRow dividerAfter */
                            dividerAfter?: (boolean|null);
                        }

                        /** Represents a TableCardRow. */
                        class TableCardRow implements ITableCardRow {

                            /**
                             * Constructs a new TableCardRow.
                             * @param [properties] Properties to set
                             */
                            constructor(properties?: google.cloud.dialogflow.v2.Intent.Message.ITableCardRow);

                            /** TableCardRow cells. */
                            public cells: google.cloud.dialogflow.v2.Intent.Message.ITableCardCell[];

                            /** TableCardRow dividerAfter. */
                            public dividerAfter: boolean;

                            /**
                             * Creates a new TableCardRow instance using the specified properties.
                             * @param [properties] Properties to set
                             * @returns TableCardRow instance
                             */
                            public static create(properties?: google.cloud.dialogflow.v2.Intent.Message.ITableCardRow): google.cloud.dialogflow.v2.Intent.Message.TableCardRow;

                            /**
                             * Encodes the specified TableCardRow message. Does not implicitly {@link google.cloud.dialogflow.v2.Intent.Message.TableCardRow.verify|verify} messages.
                             * @param message TableCardRow message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encode(message: google.cloud.dialogflow.v2.Intent.Message.ITableCardRow, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Encodes the specified TableCardRow message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.Intent.Message.TableCardRow.verify|verify} messages.
                             * @param message TableCardRow message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encodeDelimited(message: google.cloud.dialogflow.v2.Intent.Message.ITableCardRow, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Decodes a TableCardRow message from the specified reader or buffer.
                             * @param reader Reader or buffer to decode from
                             * @param [length] Message length if known beforehand
                             * @returns TableCardRow
                             * @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.cloud.dialogflow.v2.Intent.Message.TableCardRow;

                            /**
                             * Decodes a TableCardRow message from the specified reader or buffer, length delimited.
                             * @param reader Reader or buffer to decode from
                             * @returns TableCardRow
                             * @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.cloud.dialogflow.v2.Intent.Message.TableCardRow;

                            /**
                             * Verifies a TableCardRow 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 TableCardRow message from a plain object. Also converts values to their respective internal types.
                             * @param object Plain object
                             * @returns TableCardRow
                             */
                            public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.Intent.Message.TableCardRow;

                            /**
                             * Creates a plain object from a TableCardRow message. Also converts values to other types if specified.
                             * @param message TableCardRow
                             * @param [options] Conversion options
                             * @returns Plain object
                             */
                            public static toObject(message: google.cloud.dialogflow.v2.Intent.Message.TableCardRow, options?: $protobuf.IConversionOptions): { [k: string]: any };

                            /**
                             * Converts this TableCardRow to JSON.
                             * @returns JSON object
                             */
                            public toJSON(): { [k: string]: any };

                            /**
                             * Gets the default type url for TableCardRow
                             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                             * @returns The default type url
                             */
                            public static getTypeUrl(typeUrlPrefix?: string): string;
                        }

                        /** Properties of a TableCardCell. */
                        interface ITableCardCell {

                            /** TableCardCell text */
                            text?: (string|null);
                        }

                        /** Represents a TableCardCell. */
                        class TableCardCell implements ITableCardCell {

                            /**
                             * Constructs a new TableCardCell.
                             * @param [properties] Properties to set
                             */
                            constructor(properties?: google.cloud.dialogflow.v2.Intent.Message.ITableCardCell);

                            /** TableCardCell text. */
                            public text: string;

                            /**
                             * Creates a new TableCardCell instance using the specified properties.
                             * @param [properties] Properties to set
                             * @returns TableCardCell instance
                             */
                            public static create(properties?: google.cloud.dialogflow.v2.Intent.Message.ITableCardCell): google.cloud.dialogflow.v2.Intent.Message.TableCardCell;

                            /**
                             * Encodes the specified TableCardCell message. Does not implicitly {@link google.cloud.dialogflow.v2.Intent.Message.TableCardCell.verify|verify} messages.
                             * @param message TableCardCell message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encode(message: google.cloud.dialogflow.v2.Intent.Message.ITableCardCell, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Encodes the specified TableCardCell message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.Intent.Message.TableCardCell.verify|verify} messages.
                             * @param message TableCardCell message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encodeDelimited(message: google.cloud.dialogflow.v2.Intent.Message.ITableCardCell, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Decodes a TableCardCell message from the specified reader or buffer.
                             * @param reader Reader or buffer to decode from
                             * @param [length] Message length if known beforehand
                             * @returns TableCardCell
                             * @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.cloud.dialogflow.v2.Intent.Message.TableCardCell;

                            /**
                             * Decodes a TableCardCell message from the specified reader or buffer, length delimited.
                             * @param reader Reader or buffer to decode from
                             * @returns TableCardCell
                             * @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.cloud.dialogflow.v2.Intent.Message.TableCardCell;

                            /**
                             * Verifies a TableCardCell 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 TableCardCell message from a plain object. Also converts values to their respective internal types.
                             * @param object Plain object
                             * @returns TableCardCell
                             */
                            public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.Intent.Message.TableCardCell;

                            /**
                             * Creates a plain object from a TableCardCell message. Also converts values to other types if specified.
                             * @param message TableCardCell
                             * @param [options] Conversion options
                             * @returns Plain object
                             */
                            public static toObject(message: google.cloud.dialogflow.v2.Intent.Message.TableCardCell, options?: $protobuf.IConversionOptions): { [k: string]: any };

                            /**
                             * Converts this TableCardCell to JSON.
                             * @returns JSON object
                             */
                            public toJSON(): { [k: string]: any };

                            /**
                             * Gets the default type url for TableCardCell
                             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                             * @returns The default type url
                             */
                            public static getTypeUrl(typeUrlPrefix?: string): string;
                        }
                    }

                    /** Properties of a FollowupIntentInfo. */
                    interface IFollowupIntentInfo {

                        /** FollowupIntentInfo followupIntentName */
                        followupIntentName?: (string|null);

                        /** FollowupIntentInfo parentFollowupIntentName */
                        parentFollowupIntentName?: (string|null);
                    }

                    /** Represents a FollowupIntentInfo. */
                    class FollowupIntentInfo implements IFollowupIntentInfo {

                        /**
                         * Constructs a new FollowupIntentInfo.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2.Intent.IFollowupIntentInfo);

                        /** FollowupIntentInfo followupIntentName. */
                        public followupIntentName: string;

                        /** FollowupIntentInfo parentFollowupIntentName. */
                        public parentFollowupIntentName: string;

                        /**
                         * Creates a new FollowupIntentInfo instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns FollowupIntentInfo instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2.Intent.IFollowupIntentInfo): google.cloud.dialogflow.v2.Intent.FollowupIntentInfo;

                        /**
                         * Encodes the specified FollowupIntentInfo message. Does not implicitly {@link google.cloud.dialogflow.v2.Intent.FollowupIntentInfo.verify|verify} messages.
                         * @param message FollowupIntentInfo message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2.Intent.IFollowupIntentInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified FollowupIntentInfo message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.Intent.FollowupIntentInfo.verify|verify} messages.
                         * @param message FollowupIntentInfo message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2.Intent.IFollowupIntentInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a FollowupIntentInfo message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns FollowupIntentInfo
                         * @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.cloud.dialogflow.v2.Intent.FollowupIntentInfo;

                        /**
                         * Decodes a FollowupIntentInfo message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns FollowupIntentInfo
                         * @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.cloud.dialogflow.v2.Intent.FollowupIntentInfo;

                        /**
                         * Verifies a FollowupIntentInfo 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 FollowupIntentInfo message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns FollowupIntentInfo
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.Intent.FollowupIntentInfo;

                        /**
                         * Creates a plain object from a FollowupIntentInfo message. Also converts values to other types if specified.
                         * @param message FollowupIntentInfo
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.dialogflow.v2.Intent.FollowupIntentInfo, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this FollowupIntentInfo to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for FollowupIntentInfo
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }
                }

                /** Properties of a ListIntentsRequest. */
                interface IListIntentsRequest {

                    /** ListIntentsRequest parent */
                    parent?: (string|null);

                    /** ListIntentsRequest languageCode */
                    languageCode?: (string|null);

                    /** ListIntentsRequest intentView */
                    intentView?: (google.cloud.dialogflow.v2.IntentView|keyof typeof google.cloud.dialogflow.v2.IntentView|null);

                    /** ListIntentsRequest pageSize */
                    pageSize?: (number|null);

                    /** ListIntentsRequest pageToken */
                    pageToken?: (string|null);
                }

                /** Represents a ListIntentsRequest. */
                class ListIntentsRequest implements IListIntentsRequest {

                    /**
                     * Constructs a new ListIntentsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IListIntentsRequest);

                    /** ListIntentsRequest parent. */
                    public parent: string;

                    /** ListIntentsRequest languageCode. */
                    public languageCode: string;

                    /** ListIntentsRequest intentView. */
                    public intentView: (google.cloud.dialogflow.v2.IntentView|keyof typeof google.cloud.dialogflow.v2.IntentView);

                    /** ListIntentsRequest pageSize. */
                    public pageSize: number;

                    /** ListIntentsRequest pageToken. */
                    public pageToken: string;

                    /**
                     * Creates a new ListIntentsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListIntentsRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IListIntentsRequest): google.cloud.dialogflow.v2.ListIntentsRequest;

                    /**
                     * Encodes the specified ListIntentsRequest message. Does not implicitly {@link google.cloud.dialogflow.v2.ListIntentsRequest.verify|verify} messages.
                     * @param message ListIntentsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IListIntentsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListIntentsRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.ListIntentsRequest.verify|verify} messages.
                     * @param message ListIntentsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.IListIntentsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListIntentsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListIntentsRequest
                     * @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.cloud.dialogflow.v2.ListIntentsRequest;

                    /**
                     * Decodes a ListIntentsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListIntentsRequest
                     * @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.cloud.dialogflow.v2.ListIntentsRequest;

                    /**
                     * Verifies a ListIntentsRequest 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 ListIntentsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListIntentsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.ListIntentsRequest;

                    /**
                     * Creates a plain object from a ListIntentsRequest message. Also converts values to other types if specified.
                     * @param message ListIntentsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.ListIntentsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListIntentsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListIntentsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListIntentsResponse. */
                interface IListIntentsResponse {

                    /** ListIntentsResponse intents */
                    intents?: (google.cloud.dialogflow.v2.IIntent[]|null);

                    /** ListIntentsResponse nextPageToken */
                    nextPageToken?: (string|null);
                }

                /** Represents a ListIntentsResponse. */
                class ListIntentsResponse implements IListIntentsResponse {

                    /**
                     * Constructs a new ListIntentsResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IListIntentsResponse);

                    /** ListIntentsResponse intents. */
                    public intents: google.cloud.dialogflow.v2.IIntent[];

                    /** ListIntentsResponse nextPageToken. */
                    public nextPageToken: string;

                    /**
                     * Creates a new ListIntentsResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListIntentsResponse instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IListIntentsResponse): google.cloud.dialogflow.v2.ListIntentsResponse;

                    /**
                     * Encodes the specified ListIntentsResponse message. Does not implicitly {@link google.cloud.dialogflow.v2.ListIntentsResponse.verify|verify} messages.
                     * @param message ListIntentsResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IListIntentsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListIntentsResponse message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.ListIntentsResponse.verify|verify} messages.
                     * @param message ListIntentsResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.IListIntentsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListIntentsResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListIntentsResponse
                     * @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.cloud.dialogflow.v2.ListIntentsResponse;

                    /**
                     * Decodes a ListIntentsResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListIntentsResponse
                     * @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.cloud.dialogflow.v2.ListIntentsResponse;

                    /**
                     * Verifies a ListIntentsResponse 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 ListIntentsResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListIntentsResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.ListIntentsResponse;

                    /**
                     * Creates a plain object from a ListIntentsResponse message. Also converts values to other types if specified.
                     * @param message ListIntentsResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.ListIntentsResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListIntentsResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListIntentsResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetIntentRequest. */
                interface IGetIntentRequest {

                    /** GetIntentRequest name */
                    name?: (string|null);

                    /** GetIntentRequest languageCode */
                    languageCode?: (string|null);

                    /** GetIntentRequest intentView */
                    intentView?: (google.cloud.dialogflow.v2.IntentView|keyof typeof google.cloud.dialogflow.v2.IntentView|null);
                }

                /** Represents a GetIntentRequest. */
                class GetIntentRequest implements IGetIntentRequest {

                    /**
                     * Constructs a new GetIntentRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IGetIntentRequest);

                    /** GetIntentRequest name. */
                    public name: string;

                    /** GetIntentRequest languageCode. */
                    public languageCode: string;

                    /** GetIntentRequest intentView. */
                    public intentView: (google.cloud.dialogflow.v2.IntentView|keyof typeof google.cloud.dialogflow.v2.IntentView);

                    /**
                     * Creates a new GetIntentRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetIntentRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IGetIntentRequest): google.cloud.dialogflow.v2.GetIntentRequest;

                    /**
                     * Encodes the specified GetIntentRequest message. Does not implicitly {@link google.cloud.dialogflow.v2.GetIntentRequest.verify|verify} messages.
                     * @param message GetIntentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IGetIntentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetIntentRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.GetIntentRequest.verify|verify} messages.
                     * @param message GetIntentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.IGetIntentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetIntentRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetIntentRequest
                     * @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.cloud.dialogflow.v2.GetIntentRequest;

                    /**
                     * Decodes a GetIntentRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetIntentRequest
                     * @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.cloud.dialogflow.v2.GetIntentRequest;

                    /**
                     * Verifies a GetIntentRequest 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 GetIntentRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetIntentRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.GetIntentRequest;

                    /**
                     * Creates a plain object from a GetIntentRequest message. Also converts values to other types if specified.
                     * @param message GetIntentRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.GetIntentRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetIntentRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetIntentRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a CreateIntentRequest. */
                interface ICreateIntentRequest {

                    /** CreateIntentRequest parent */
                    parent?: (string|null);

                    /** CreateIntentRequest intent */
                    intent?: (google.cloud.dialogflow.v2.IIntent|null);

                    /** CreateIntentRequest languageCode */
                    languageCode?: (string|null);

                    /** CreateIntentRequest intentView */
                    intentView?: (google.cloud.dialogflow.v2.IntentView|keyof typeof google.cloud.dialogflow.v2.IntentView|null);
                }

                /** Represents a CreateIntentRequest. */
                class CreateIntentRequest implements ICreateIntentRequest {

                    /**
                     * Constructs a new CreateIntentRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.ICreateIntentRequest);

                    /** CreateIntentRequest parent. */
                    public parent: string;

                    /** CreateIntentRequest intent. */
                    public intent?: (google.cloud.dialogflow.v2.IIntent|null);

                    /** CreateIntentRequest languageCode. */
                    public languageCode: string;

                    /** CreateIntentRequest intentView. */
                    public intentView: (google.cloud.dialogflow.v2.IntentView|keyof typeof google.cloud.dialogflow.v2.IntentView);

                    /**
                     * Creates a new CreateIntentRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CreateIntentRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.ICreateIntentRequest): google.cloud.dialogflow.v2.CreateIntentRequest;

                    /**
                     * Encodes the specified CreateIntentRequest message. Does not implicitly {@link google.cloud.dialogflow.v2.CreateIntentRequest.verify|verify} messages.
                     * @param message CreateIntentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.ICreateIntentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CreateIntentRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.CreateIntentRequest.verify|verify} messages.
                     * @param message CreateIntentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.ICreateIntentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CreateIntentRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CreateIntentRequest
                     * @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.cloud.dialogflow.v2.CreateIntentRequest;

                    /**
                     * Decodes a CreateIntentRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CreateIntentRequest
                     * @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.cloud.dialogflow.v2.CreateIntentRequest;

                    /**
                     * Verifies a CreateIntentRequest 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 CreateIntentRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CreateIntentRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.CreateIntentRequest;

                    /**
                     * Creates a plain object from a CreateIntentRequest message. Also converts values to other types if specified.
                     * @param message CreateIntentRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.CreateIntentRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CreateIntentRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CreateIntentRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an UpdateIntentRequest. */
                interface IUpdateIntentRequest {

                    /** UpdateIntentRequest intent */
                    intent?: (google.cloud.dialogflow.v2.IIntent|null);

                    /** UpdateIntentRequest languageCode */
                    languageCode?: (string|null);

                    /** UpdateIntentRequest updateMask */
                    updateMask?: (google.protobuf.IFieldMask|null);

                    /** UpdateIntentRequest intentView */
                    intentView?: (google.cloud.dialogflow.v2.IntentView|keyof typeof google.cloud.dialogflow.v2.IntentView|null);
                }

                /** Represents an UpdateIntentRequest. */
                class UpdateIntentRequest implements IUpdateIntentRequest {

                    /**
                     * Constructs a new UpdateIntentRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IUpdateIntentRequest);

                    /** UpdateIntentRequest intent. */
                    public intent?: (google.cloud.dialogflow.v2.IIntent|null);

                    /** UpdateIntentRequest languageCode. */
                    public languageCode: string;

                    /** UpdateIntentRequest updateMask. */
                    public updateMask?: (google.protobuf.IFieldMask|null);

                    /** UpdateIntentRequest intentView. */
                    public intentView: (google.cloud.dialogflow.v2.IntentView|keyof typeof google.cloud.dialogflow.v2.IntentView);

                    /**
                     * Creates a new UpdateIntentRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UpdateIntentRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IUpdateIntentRequest): google.cloud.dialogflow.v2.UpdateIntentRequest;

                    /**
                     * Encodes the specified UpdateIntentRequest message. Does not implicitly {@link google.cloud.dialogflow.v2.UpdateIntentRequest.verify|verify} messages.
                     * @param message UpdateIntentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IUpdateIntentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified UpdateIntentRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.UpdateIntentRequest.verify|verify} messages.
                     * @param message UpdateIntentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.IUpdateIntentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an UpdateIntentRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns UpdateIntentRequest
                     * @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.cloud.dialogflow.v2.UpdateIntentRequest;

                    /**
                     * Decodes an UpdateIntentRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns UpdateIntentRequest
                     * @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.cloud.dialogflow.v2.UpdateIntentRequest;

                    /**
                     * Verifies an UpdateIntentRequest 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 UpdateIntentRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UpdateIntentRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.UpdateIntentRequest;

                    /**
                     * Creates a plain object from an UpdateIntentRequest message. Also converts values to other types if specified.
                     * @param message UpdateIntentRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.UpdateIntentRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this UpdateIntentRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for UpdateIntentRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteIntentRequest. */
                interface IDeleteIntentRequest {

                    /** DeleteIntentRequest name */
                    name?: (string|null);
                }

                /** Represents a DeleteIntentRequest. */
                class DeleteIntentRequest implements IDeleteIntentRequest {

                    /**
                     * Constructs a new DeleteIntentRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IDeleteIntentRequest);

                    /** DeleteIntentRequest name. */
                    public name: string;

                    /**
                     * Creates a new DeleteIntentRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteIntentRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IDeleteIntentRequest): google.cloud.dialogflow.v2.DeleteIntentRequest;

                    /**
                     * Encodes the specified DeleteIntentRequest message. Does not implicitly {@link google.cloud.dialogflow.v2.DeleteIntentRequest.verify|verify} messages.
                     * @param message DeleteIntentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IDeleteIntentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteIntentRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.DeleteIntentRequest.verify|verify} messages.
                     * @param message DeleteIntentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.IDeleteIntentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteIntentRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteIntentRequest
                     * @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.cloud.dialogflow.v2.DeleteIntentRequest;

                    /**
                     * Decodes a DeleteIntentRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteIntentRequest
                     * @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.cloud.dialogflow.v2.DeleteIntentRequest;

                    /**
                     * Verifies a DeleteIntentRequest 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 DeleteIntentRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteIntentRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.DeleteIntentRequest;

                    /**
                     * Creates a plain object from a DeleteIntentRequest message. Also converts values to other types if specified.
                     * @param message DeleteIntentRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.DeleteIntentRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteIntentRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteIntentRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a BatchUpdateIntentsRequest. */
                interface IBatchUpdateIntentsRequest {

                    /** BatchUpdateIntentsRequest parent */
                    parent?: (string|null);

                    /** BatchUpdateIntentsRequest intentBatchUri */
                    intentBatchUri?: (string|null);

                    /** BatchUpdateIntentsRequest intentBatchInline */
                    intentBatchInline?: (google.cloud.dialogflow.v2.IIntentBatch|null);

                    /** BatchUpdateIntentsRequest languageCode */
                    languageCode?: (string|null);

                    /** BatchUpdateIntentsRequest updateMask */
                    updateMask?: (google.protobuf.IFieldMask|null);

                    /** BatchUpdateIntentsRequest intentView */
                    intentView?: (google.cloud.dialogflow.v2.IntentView|keyof typeof google.cloud.dialogflow.v2.IntentView|null);
                }

                /** Represents a BatchUpdateIntentsRequest. */
                class BatchUpdateIntentsRequest implements IBatchUpdateIntentsRequest {

                    /**
                     * Constructs a new BatchUpdateIntentsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IBatchUpdateIntentsRequest);

                    /** BatchUpdateIntentsRequest parent. */
                    public parent: string;

                    /** BatchUpdateIntentsRequest intentBatchUri. */
                    public intentBatchUri?: (string|null);

                    /** BatchUpdateIntentsRequest intentBatchInline. */
                    public intentBatchInline?: (google.cloud.dialogflow.v2.IIntentBatch|null);

                    /** BatchUpdateIntentsRequest languageCode. */
                    public languageCode: string;

                    /** BatchUpdateIntentsRequest updateMask. */
                    public updateMask?: (google.protobuf.IFieldMask|null);

                    /** BatchUpdateIntentsRequest intentView. */
                    public intentView: (google.cloud.dialogflow.v2.IntentView|keyof typeof google.cloud.dialogflow.v2.IntentView);

                    /** BatchUpdateIntentsRequest intentBatch. */
                    public intentBatch?: ("intentBatchUri"|"intentBatchInline");

                    /**
                     * Creates a new BatchUpdateIntentsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BatchUpdateIntentsRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IBatchUpdateIntentsRequest): google.cloud.dialogflow.v2.BatchUpdateIntentsRequest;

                    /**
                     * Encodes the specified BatchUpdateIntentsRequest message. Does not implicitly {@link google.cloud.dialogflow.v2.BatchUpdateIntentsRequest.verify|verify} messages.
                     * @param message BatchUpdateIntentsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IBatchUpdateIntentsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BatchUpdateIntentsRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.BatchUpdateIntentsRequest.verify|verify} messages.
                     * @param message BatchUpdateIntentsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.IBatchUpdateIntentsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BatchUpdateIntentsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BatchUpdateIntentsRequest
                     * @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.cloud.dialogflow.v2.BatchUpdateIntentsRequest;

                    /**
                     * Decodes a BatchUpdateIntentsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BatchUpdateIntentsRequest
                     * @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.cloud.dialogflow.v2.BatchUpdateIntentsRequest;

                    /**
                     * Verifies a BatchUpdateIntentsRequest 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 BatchUpdateIntentsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BatchUpdateIntentsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.BatchUpdateIntentsRequest;

                    /**
                     * Creates a plain object from a BatchUpdateIntentsRequest message. Also converts values to other types if specified.
                     * @param message BatchUpdateIntentsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.BatchUpdateIntentsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BatchUpdateIntentsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BatchUpdateIntentsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a BatchUpdateIntentsResponse. */
                interface IBatchUpdateIntentsResponse {

                    /** BatchUpdateIntentsResponse intents */
                    intents?: (google.cloud.dialogflow.v2.IIntent[]|null);
                }

                /** Represents a BatchUpdateIntentsResponse. */
                class BatchUpdateIntentsResponse implements IBatchUpdateIntentsResponse {

                    /**
                     * Constructs a new BatchUpdateIntentsResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IBatchUpdateIntentsResponse);

                    /** BatchUpdateIntentsResponse intents. */
                    public intents: google.cloud.dialogflow.v2.IIntent[];

                    /**
                     * Creates a new BatchUpdateIntentsResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BatchUpdateIntentsResponse instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IBatchUpdateIntentsResponse): google.cloud.dialogflow.v2.BatchUpdateIntentsResponse;

                    /**
                     * Encodes the specified BatchUpdateIntentsResponse message. Does not implicitly {@link google.cloud.dialogflow.v2.BatchUpdateIntentsResponse.verify|verify} messages.
                     * @param message BatchUpdateIntentsResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IBatchUpdateIntentsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BatchUpdateIntentsResponse message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.BatchUpdateIntentsResponse.verify|verify} messages.
                     * @param message BatchUpdateIntentsResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.IBatchUpdateIntentsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BatchUpdateIntentsResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BatchUpdateIntentsResponse
                     * @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.cloud.dialogflow.v2.BatchUpdateIntentsResponse;

                    /**
                     * Decodes a BatchUpdateIntentsResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BatchUpdateIntentsResponse
                     * @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.cloud.dialogflow.v2.BatchUpdateIntentsResponse;

                    /**
                     * Verifies a BatchUpdateIntentsResponse 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 BatchUpdateIntentsResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BatchUpdateIntentsResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.BatchUpdateIntentsResponse;

                    /**
                     * Creates a plain object from a BatchUpdateIntentsResponse message. Also converts values to other types if specified.
                     * @param message BatchUpdateIntentsResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.BatchUpdateIntentsResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BatchUpdateIntentsResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BatchUpdateIntentsResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a BatchDeleteIntentsRequest. */
                interface IBatchDeleteIntentsRequest {

                    /** BatchDeleteIntentsRequest parent */
                    parent?: (string|null);

                    /** BatchDeleteIntentsRequest intents */
                    intents?: (google.cloud.dialogflow.v2.IIntent[]|null);
                }

                /** Represents a BatchDeleteIntentsRequest. */
                class BatchDeleteIntentsRequest implements IBatchDeleteIntentsRequest {

                    /**
                     * Constructs a new BatchDeleteIntentsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IBatchDeleteIntentsRequest);

                    /** BatchDeleteIntentsRequest parent. */
                    public parent: string;

                    /** BatchDeleteIntentsRequest intents. */
                    public intents: google.cloud.dialogflow.v2.IIntent[];

                    /**
                     * Creates a new BatchDeleteIntentsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BatchDeleteIntentsRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IBatchDeleteIntentsRequest): google.cloud.dialogflow.v2.BatchDeleteIntentsRequest;

                    /**
                     * Encodes the specified BatchDeleteIntentsRequest message. Does not implicitly {@link google.cloud.dialogflow.v2.BatchDeleteIntentsRequest.verify|verify} messages.
                     * @param message BatchDeleteIntentsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IBatchDeleteIntentsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BatchDeleteIntentsRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.BatchDeleteIntentsRequest.verify|verify} messages.
                     * @param message BatchDeleteIntentsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.IBatchDeleteIntentsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BatchDeleteIntentsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BatchDeleteIntentsRequest
                     * @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.cloud.dialogflow.v2.BatchDeleteIntentsRequest;

                    /**
                     * Decodes a BatchDeleteIntentsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BatchDeleteIntentsRequest
                     * @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.cloud.dialogflow.v2.BatchDeleteIntentsRequest;

                    /**
                     * Verifies a BatchDeleteIntentsRequest 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 BatchDeleteIntentsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BatchDeleteIntentsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.BatchDeleteIntentsRequest;

                    /**
                     * Creates a plain object from a BatchDeleteIntentsRequest message. Also converts values to other types if specified.
                     * @param message BatchDeleteIntentsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.BatchDeleteIntentsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BatchDeleteIntentsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BatchDeleteIntentsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** IntentView enum. */
                enum IntentView {
                    INTENT_VIEW_UNSPECIFIED = 0,
                    INTENT_VIEW_FULL = 1
                }

                /** Properties of an IntentBatch. */
                interface IIntentBatch {

                    /** IntentBatch intents */
                    intents?: (google.cloud.dialogflow.v2.IIntent[]|null);
                }

                /** Represents an IntentBatch. */
                class IntentBatch implements IIntentBatch {

                    /**
                     * Constructs a new IntentBatch.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IIntentBatch);

                    /** IntentBatch intents. */
                    public intents: google.cloud.dialogflow.v2.IIntent[];

                    /**
                     * Creates a new IntentBatch instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns IntentBatch instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IIntentBatch): google.cloud.dialogflow.v2.IntentBatch;

                    /**
                     * Encodes the specified IntentBatch message. Does not implicitly {@link google.cloud.dialogflow.v2.IntentBatch.verify|verify} messages.
                     * @param message IntentBatch message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IIntentBatch, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified IntentBatch message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.IntentBatch.verify|verify} messages.
                     * @param message IntentBatch message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.IIntentBatch, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an IntentBatch message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns IntentBatch
                     * @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.cloud.dialogflow.v2.IntentBatch;

                    /**
                     * Decodes an IntentBatch message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns IntentBatch
                     * @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.cloud.dialogflow.v2.IntentBatch;

                    /**
                     * Verifies an IntentBatch 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 IntentBatch message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns IntentBatch
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.IntentBatch;

                    /**
                     * Creates a plain object from an IntentBatch message. Also converts values to other types if specified.
                     * @param message IntentBatch
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.IntentBatch, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this IntentBatch to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for IntentBatch
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Represents a SessionEntityTypes */
                class SessionEntityTypes extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new SessionEntityTypes 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 SessionEntityTypes 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): SessionEntityTypes;

                    /**
                     * Calls ListSessionEntityTypes.
                     * @param request ListSessionEntityTypesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ListSessionEntityTypesResponse
                     */
                    public listSessionEntityTypes(request: google.cloud.dialogflow.v2.IListSessionEntityTypesRequest, callback: google.cloud.dialogflow.v2.SessionEntityTypes.ListSessionEntityTypesCallback): void;

                    /**
                     * Calls ListSessionEntityTypes.
                     * @param request ListSessionEntityTypesRequest message or plain object
                     * @returns Promise
                     */
                    public listSessionEntityTypes(request: google.cloud.dialogflow.v2.IListSessionEntityTypesRequest): Promise<google.cloud.dialogflow.v2.ListSessionEntityTypesResponse>;

                    /**
                     * Calls GetSessionEntityType.
                     * @param request GetSessionEntityTypeRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and SessionEntityType
                     */
                    public getSessionEntityType(request: google.cloud.dialogflow.v2.IGetSessionEntityTypeRequest, callback: google.cloud.dialogflow.v2.SessionEntityTypes.GetSessionEntityTypeCallback): void;

                    /**
                     * Calls GetSessionEntityType.
                     * @param request GetSessionEntityTypeRequest message or plain object
                     * @returns Promise
                     */
                    public getSessionEntityType(request: google.cloud.dialogflow.v2.IGetSessionEntityTypeRequest): Promise<google.cloud.dialogflow.v2.SessionEntityType>;

                    /**
                     * Calls CreateSessionEntityType.
                     * @param request CreateSessionEntityTypeRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and SessionEntityType
                     */
                    public createSessionEntityType(request: google.cloud.dialogflow.v2.ICreateSessionEntityTypeRequest, callback: google.cloud.dialogflow.v2.SessionEntityTypes.CreateSessionEntityTypeCallback): void;

                    /**
                     * Calls CreateSessionEntityType.
                     * @param request CreateSessionEntityTypeRequest message or plain object
                     * @returns Promise
                     */
                    public createSessionEntityType(request: google.cloud.dialogflow.v2.ICreateSessionEntityTypeRequest): Promise<google.cloud.dialogflow.v2.SessionEntityType>;

                    /**
                     * Calls UpdateSessionEntityType.
                     * @param request UpdateSessionEntityTypeRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and SessionEntityType
                     */
                    public updateSessionEntityType(request: google.cloud.dialogflow.v2.IUpdateSessionEntityTypeRequest, callback: google.cloud.dialogflow.v2.SessionEntityTypes.UpdateSessionEntityTypeCallback): void;

                    /**
                     * Calls UpdateSessionEntityType.
                     * @param request UpdateSessionEntityTypeRequest message or plain object
                     * @returns Promise
                     */
                    public updateSessionEntityType(request: google.cloud.dialogflow.v2.IUpdateSessionEntityTypeRequest): Promise<google.cloud.dialogflow.v2.SessionEntityType>;

                    /**
                     * Calls DeleteSessionEntityType.
                     * @param request DeleteSessionEntityTypeRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Empty
                     */
                    public deleteSessionEntityType(request: google.cloud.dialogflow.v2.IDeleteSessionEntityTypeRequest, callback: google.cloud.dialogflow.v2.SessionEntityTypes.DeleteSessionEntityTypeCallback): void;

                    /**
                     * Calls DeleteSessionEntityType.
                     * @param request DeleteSessionEntityTypeRequest message or plain object
                     * @returns Promise
                     */
                    public deleteSessionEntityType(request: google.cloud.dialogflow.v2.IDeleteSessionEntityTypeRequest): Promise<google.protobuf.Empty>;
                }

                namespace SessionEntityTypes {

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2.SessionEntityTypes|listSessionEntityTypes}.
                     * @param error Error, if any
                     * @param [response] ListSessionEntityTypesResponse
                     */
                    type ListSessionEntityTypesCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2.ListSessionEntityTypesResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2.SessionEntityTypes|getSessionEntityType}.
                     * @param error Error, if any
                     * @param [response] SessionEntityType
                     */
                    type GetSessionEntityTypeCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2.SessionEntityType) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2.SessionEntityTypes|createSessionEntityType}.
                     * @param error Error, if any
                     * @param [response] SessionEntityType
                     */
                    type CreateSessionEntityTypeCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2.SessionEntityType) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2.SessionEntityTypes|updateSessionEntityType}.
                     * @param error Error, if any
                     * @param [response] SessionEntityType
                     */
                    type UpdateSessionEntityTypeCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2.SessionEntityType) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2.SessionEntityTypes|deleteSessionEntityType}.
                     * @param error Error, if any
                     * @param [response] Empty
                     */
                    type DeleteSessionEntityTypeCallback = (error: (Error|null), response?: google.protobuf.Empty) => void;
                }

                /** Properties of a SessionEntityType. */
                interface ISessionEntityType {

                    /** SessionEntityType name */
                    name?: (string|null);

                    /** SessionEntityType entityOverrideMode */
                    entityOverrideMode?: (google.cloud.dialogflow.v2.SessionEntityType.EntityOverrideMode|keyof typeof google.cloud.dialogflow.v2.SessionEntityType.EntityOverrideMode|null);

                    /** SessionEntityType entities */
                    entities?: (google.cloud.dialogflow.v2.EntityType.IEntity[]|null);
                }

                /** Represents a SessionEntityType. */
                class SessionEntityType implements ISessionEntityType {

                    /**
                     * Constructs a new SessionEntityType.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.ISessionEntityType);

                    /** SessionEntityType name. */
                    public name: string;

                    /** SessionEntityType entityOverrideMode. */
                    public entityOverrideMode: (google.cloud.dialogflow.v2.SessionEntityType.EntityOverrideMode|keyof typeof google.cloud.dialogflow.v2.SessionEntityType.EntityOverrideMode);

                    /** SessionEntityType entities. */
                    public entities: google.cloud.dialogflow.v2.EntityType.IEntity[];

                    /**
                     * Creates a new SessionEntityType instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SessionEntityType instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.ISessionEntityType): google.cloud.dialogflow.v2.SessionEntityType;

                    /**
                     * Encodes the specified SessionEntityType message. Does not implicitly {@link google.cloud.dialogflow.v2.SessionEntityType.verify|verify} messages.
                     * @param message SessionEntityType message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.ISessionEntityType, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SessionEntityType message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.SessionEntityType.verify|verify} messages.
                     * @param message SessionEntityType message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.ISessionEntityType, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SessionEntityType message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SessionEntityType
                     * @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.cloud.dialogflow.v2.SessionEntityType;

                    /**
                     * Decodes a SessionEntityType message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SessionEntityType
                     * @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.cloud.dialogflow.v2.SessionEntityType;

                    /**
                     * Verifies a SessionEntityType 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 SessionEntityType message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SessionEntityType
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.SessionEntityType;

                    /**
                     * Creates a plain object from a SessionEntityType message. Also converts values to other types if specified.
                     * @param message SessionEntityType
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.SessionEntityType, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SessionEntityType to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SessionEntityType
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace SessionEntityType {

                    /** EntityOverrideMode enum. */
                    enum EntityOverrideMode {
                        ENTITY_OVERRIDE_MODE_UNSPECIFIED = 0,
                        ENTITY_OVERRIDE_MODE_OVERRIDE = 1,
                        ENTITY_OVERRIDE_MODE_SUPPLEMENT = 2
                    }
                }

                /** Properties of a ListSessionEntityTypesRequest. */
                interface IListSessionEntityTypesRequest {

                    /** ListSessionEntityTypesRequest parent */
                    parent?: (string|null);

                    /** ListSessionEntityTypesRequest pageSize */
                    pageSize?: (number|null);

                    /** ListSessionEntityTypesRequest pageToken */
                    pageToken?: (string|null);
                }

                /** Represents a ListSessionEntityTypesRequest. */
                class ListSessionEntityTypesRequest implements IListSessionEntityTypesRequest {

                    /**
                     * Constructs a new ListSessionEntityTypesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IListSessionEntityTypesRequest);

                    /** ListSessionEntityTypesRequest parent. */
                    public parent: string;

                    /** ListSessionEntityTypesRequest pageSize. */
                    public pageSize: number;

                    /** ListSessionEntityTypesRequest pageToken. */
                    public pageToken: string;

                    /**
                     * Creates a new ListSessionEntityTypesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListSessionEntityTypesRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IListSessionEntityTypesRequest): google.cloud.dialogflow.v2.ListSessionEntityTypesRequest;

                    /**
                     * Encodes the specified ListSessionEntityTypesRequest message. Does not implicitly {@link google.cloud.dialogflow.v2.ListSessionEntityTypesRequest.verify|verify} messages.
                     * @param message ListSessionEntityTypesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IListSessionEntityTypesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListSessionEntityTypesRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.ListSessionEntityTypesRequest.verify|verify} messages.
                     * @param message ListSessionEntityTypesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.IListSessionEntityTypesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListSessionEntityTypesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListSessionEntityTypesRequest
                     * @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.cloud.dialogflow.v2.ListSessionEntityTypesRequest;

                    /**
                     * Decodes a ListSessionEntityTypesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListSessionEntityTypesRequest
                     * @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.cloud.dialogflow.v2.ListSessionEntityTypesRequest;

                    /**
                     * Verifies a ListSessionEntityTypesRequest 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 ListSessionEntityTypesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListSessionEntityTypesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.ListSessionEntityTypesRequest;

                    /**
                     * Creates a plain object from a ListSessionEntityTypesRequest message. Also converts values to other types if specified.
                     * @param message ListSessionEntityTypesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.ListSessionEntityTypesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListSessionEntityTypesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListSessionEntityTypesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListSessionEntityTypesResponse. */
                interface IListSessionEntityTypesResponse {

                    /** ListSessionEntityTypesResponse sessionEntityTypes */
                    sessionEntityTypes?: (google.cloud.dialogflow.v2.ISessionEntityType[]|null);

                    /** ListSessionEntityTypesResponse nextPageToken */
                    nextPageToken?: (string|null);
                }

                /** Represents a ListSessionEntityTypesResponse. */
                class ListSessionEntityTypesResponse implements IListSessionEntityTypesResponse {

                    /**
                     * Constructs a new ListSessionEntityTypesResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IListSessionEntityTypesResponse);

                    /** ListSessionEntityTypesResponse sessionEntityTypes. */
                    public sessionEntityTypes: google.cloud.dialogflow.v2.ISessionEntityType[];

                    /** ListSessionEntityTypesResponse nextPageToken. */
                    public nextPageToken: string;

                    /**
                     * Creates a new ListSessionEntityTypesResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListSessionEntityTypesResponse instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IListSessionEntityTypesResponse): google.cloud.dialogflow.v2.ListSessionEntityTypesResponse;

                    /**
                     * Encodes the specified ListSessionEntityTypesResponse message. Does not implicitly {@link google.cloud.dialogflow.v2.ListSessionEntityTypesResponse.verify|verify} messages.
                     * @param message ListSessionEntityTypesResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IListSessionEntityTypesResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListSessionEntityTypesResponse message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.ListSessionEntityTypesResponse.verify|verify} messages.
                     * @param message ListSessionEntityTypesResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.IListSessionEntityTypesResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListSessionEntityTypesResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListSessionEntityTypesResponse
                     * @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.cloud.dialogflow.v2.ListSessionEntityTypesResponse;

                    /**
                     * Decodes a ListSessionEntityTypesResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListSessionEntityTypesResponse
                     * @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.cloud.dialogflow.v2.ListSessionEntityTypesResponse;

                    /**
                     * Verifies a ListSessionEntityTypesResponse 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 ListSessionEntityTypesResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListSessionEntityTypesResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.ListSessionEntityTypesResponse;

                    /**
                     * Creates a plain object from a ListSessionEntityTypesResponse message. Also converts values to other types if specified.
                     * @param message ListSessionEntityTypesResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.ListSessionEntityTypesResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListSessionEntityTypesResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListSessionEntityTypesResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetSessionEntityTypeRequest. */
                interface IGetSessionEntityTypeRequest {

                    /** GetSessionEntityTypeRequest name */
                    name?: (string|null);
                }

                /** Represents a GetSessionEntityTypeRequest. */
                class GetSessionEntityTypeRequest implements IGetSessionEntityTypeRequest {

                    /**
                     * Constructs a new GetSessionEntityTypeRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IGetSessionEntityTypeRequest);

                    /** GetSessionEntityTypeRequest name. */
                    public name: string;

                    /**
                     * Creates a new GetSessionEntityTypeRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetSessionEntityTypeRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IGetSessionEntityTypeRequest): google.cloud.dialogflow.v2.GetSessionEntityTypeRequest;

                    /**
                     * Encodes the specified GetSessionEntityTypeRequest message. Does not implicitly {@link google.cloud.dialogflow.v2.GetSessionEntityTypeRequest.verify|verify} messages.
                     * @param message GetSessionEntityTypeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IGetSessionEntityTypeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetSessionEntityTypeRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.GetSessionEntityTypeRequest.verify|verify} messages.
                     * @param message GetSessionEntityTypeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.IGetSessionEntityTypeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetSessionEntityTypeRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetSessionEntityTypeRequest
                     * @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.cloud.dialogflow.v2.GetSessionEntityTypeRequest;

                    /**
                     * Decodes a GetSessionEntityTypeRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetSessionEntityTypeRequest
                     * @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.cloud.dialogflow.v2.GetSessionEntityTypeRequest;

                    /**
                     * Verifies a GetSessionEntityTypeRequest 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 GetSessionEntityTypeRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetSessionEntityTypeRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.GetSessionEntityTypeRequest;

                    /**
                     * Creates a plain object from a GetSessionEntityTypeRequest message. Also converts values to other types if specified.
                     * @param message GetSessionEntityTypeRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.GetSessionEntityTypeRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetSessionEntityTypeRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetSessionEntityTypeRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a CreateSessionEntityTypeRequest. */
                interface ICreateSessionEntityTypeRequest {

                    /** CreateSessionEntityTypeRequest parent */
                    parent?: (string|null);

                    /** CreateSessionEntityTypeRequest sessionEntityType */
                    sessionEntityType?: (google.cloud.dialogflow.v2.ISessionEntityType|null);
                }

                /** Represents a CreateSessionEntityTypeRequest. */
                class CreateSessionEntityTypeRequest implements ICreateSessionEntityTypeRequest {

                    /**
                     * Constructs a new CreateSessionEntityTypeRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.ICreateSessionEntityTypeRequest);

                    /** CreateSessionEntityTypeRequest parent. */
                    public parent: string;

                    /** CreateSessionEntityTypeRequest sessionEntityType. */
                    public sessionEntityType?: (google.cloud.dialogflow.v2.ISessionEntityType|null);

                    /**
                     * Creates a new CreateSessionEntityTypeRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CreateSessionEntityTypeRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.ICreateSessionEntityTypeRequest): google.cloud.dialogflow.v2.CreateSessionEntityTypeRequest;

                    /**
                     * Encodes the specified CreateSessionEntityTypeRequest message. Does not implicitly {@link google.cloud.dialogflow.v2.CreateSessionEntityTypeRequest.verify|verify} messages.
                     * @param message CreateSessionEntityTypeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.ICreateSessionEntityTypeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CreateSessionEntityTypeRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.CreateSessionEntityTypeRequest.verify|verify} messages.
                     * @param message CreateSessionEntityTypeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.ICreateSessionEntityTypeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CreateSessionEntityTypeRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CreateSessionEntityTypeRequest
                     * @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.cloud.dialogflow.v2.CreateSessionEntityTypeRequest;

                    /**
                     * Decodes a CreateSessionEntityTypeRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CreateSessionEntityTypeRequest
                     * @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.cloud.dialogflow.v2.CreateSessionEntityTypeRequest;

                    /**
                     * Verifies a CreateSessionEntityTypeRequest 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 CreateSessionEntityTypeRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CreateSessionEntityTypeRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.CreateSessionEntityTypeRequest;

                    /**
                     * Creates a plain object from a CreateSessionEntityTypeRequest message. Also converts values to other types if specified.
                     * @param message CreateSessionEntityTypeRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.CreateSessionEntityTypeRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CreateSessionEntityTypeRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CreateSessionEntityTypeRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an UpdateSessionEntityTypeRequest. */
                interface IUpdateSessionEntityTypeRequest {

                    /** UpdateSessionEntityTypeRequest sessionEntityType */
                    sessionEntityType?: (google.cloud.dialogflow.v2.ISessionEntityType|null);

                    /** UpdateSessionEntityTypeRequest updateMask */
                    updateMask?: (google.protobuf.IFieldMask|null);
                }

                /** Represents an UpdateSessionEntityTypeRequest. */
                class UpdateSessionEntityTypeRequest implements IUpdateSessionEntityTypeRequest {

                    /**
                     * Constructs a new UpdateSessionEntityTypeRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IUpdateSessionEntityTypeRequest);

                    /** UpdateSessionEntityTypeRequest sessionEntityType. */
                    public sessionEntityType?: (google.cloud.dialogflow.v2.ISessionEntityType|null);

                    /** UpdateSessionEntityTypeRequest updateMask. */
                    public updateMask?: (google.protobuf.IFieldMask|null);

                    /**
                     * Creates a new UpdateSessionEntityTypeRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UpdateSessionEntityTypeRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IUpdateSessionEntityTypeRequest): google.cloud.dialogflow.v2.UpdateSessionEntityTypeRequest;

                    /**
                     * Encodes the specified UpdateSessionEntityTypeRequest message. Does not implicitly {@link google.cloud.dialogflow.v2.UpdateSessionEntityTypeRequest.verify|verify} messages.
                     * @param message UpdateSessionEntityTypeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IUpdateSessionEntityTypeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified UpdateSessionEntityTypeRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.UpdateSessionEntityTypeRequest.verify|verify} messages.
                     * @param message UpdateSessionEntityTypeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.IUpdateSessionEntityTypeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an UpdateSessionEntityTypeRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns UpdateSessionEntityTypeRequest
                     * @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.cloud.dialogflow.v2.UpdateSessionEntityTypeRequest;

                    /**
                     * Decodes an UpdateSessionEntityTypeRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns UpdateSessionEntityTypeRequest
                     * @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.cloud.dialogflow.v2.UpdateSessionEntityTypeRequest;

                    /**
                     * Verifies an UpdateSessionEntityTypeRequest 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 UpdateSessionEntityTypeRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UpdateSessionEntityTypeRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.UpdateSessionEntityTypeRequest;

                    /**
                     * Creates a plain object from an UpdateSessionEntityTypeRequest message. Also converts values to other types if specified.
                     * @param message UpdateSessionEntityTypeRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.UpdateSessionEntityTypeRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this UpdateSessionEntityTypeRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for UpdateSessionEntityTypeRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteSessionEntityTypeRequest. */
                interface IDeleteSessionEntityTypeRequest {

                    /** DeleteSessionEntityTypeRequest name */
                    name?: (string|null);
                }

                /** Represents a DeleteSessionEntityTypeRequest. */
                class DeleteSessionEntityTypeRequest implements IDeleteSessionEntityTypeRequest {

                    /**
                     * Constructs a new DeleteSessionEntityTypeRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IDeleteSessionEntityTypeRequest);

                    /** DeleteSessionEntityTypeRequest name. */
                    public name: string;

                    /**
                     * Creates a new DeleteSessionEntityTypeRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteSessionEntityTypeRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IDeleteSessionEntityTypeRequest): google.cloud.dialogflow.v2.DeleteSessionEntityTypeRequest;

                    /**
                     * Encodes the specified DeleteSessionEntityTypeRequest message. Does not implicitly {@link google.cloud.dialogflow.v2.DeleteSessionEntityTypeRequest.verify|verify} messages.
                     * @param message DeleteSessionEntityTypeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IDeleteSessionEntityTypeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteSessionEntityTypeRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.DeleteSessionEntityTypeRequest.verify|verify} messages.
                     * @param message DeleteSessionEntityTypeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.IDeleteSessionEntityTypeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteSessionEntityTypeRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteSessionEntityTypeRequest
                     * @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.cloud.dialogflow.v2.DeleteSessionEntityTypeRequest;

                    /**
                     * Decodes a DeleteSessionEntityTypeRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteSessionEntityTypeRequest
                     * @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.cloud.dialogflow.v2.DeleteSessionEntityTypeRequest;

                    /**
                     * Verifies a DeleteSessionEntityTypeRequest 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 DeleteSessionEntityTypeRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteSessionEntityTypeRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.DeleteSessionEntityTypeRequest;

                    /**
                     * Creates a plain object from a DeleteSessionEntityTypeRequest message. Also converts values to other types if specified.
                     * @param message DeleteSessionEntityTypeRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.DeleteSessionEntityTypeRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteSessionEntityTypeRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteSessionEntityTypeRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Represents an EntityTypes */
                class EntityTypes extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new EntityTypes 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 EntityTypes 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): EntityTypes;

                    /**
                     * Calls ListEntityTypes.
                     * @param request ListEntityTypesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ListEntityTypesResponse
                     */
                    public listEntityTypes(request: google.cloud.dialogflow.v2.IListEntityTypesRequest, callback: google.cloud.dialogflow.v2.EntityTypes.ListEntityTypesCallback): void;

                    /**
                     * Calls ListEntityTypes.
                     * @param request ListEntityTypesRequest message or plain object
                     * @returns Promise
                     */
                    public listEntityTypes(request: google.cloud.dialogflow.v2.IListEntityTypesRequest): Promise<google.cloud.dialogflow.v2.ListEntityTypesResponse>;

                    /**
                     * Calls GetEntityType.
                     * @param request GetEntityTypeRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and EntityType
                     */
                    public getEntityType(request: google.cloud.dialogflow.v2.IGetEntityTypeRequest, callback: google.cloud.dialogflow.v2.EntityTypes.GetEntityTypeCallback): void;

                    /**
                     * Calls GetEntityType.
                     * @param request GetEntityTypeRequest message or plain object
                     * @returns Promise
                     */
                    public getEntityType(request: google.cloud.dialogflow.v2.IGetEntityTypeRequest): Promise<google.cloud.dialogflow.v2.EntityType>;

                    /**
                     * Calls CreateEntityType.
                     * @param request CreateEntityTypeRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and EntityType
                     */
                    public createEntityType(request: google.cloud.dialogflow.v2.ICreateEntityTypeRequest, callback: google.cloud.dialogflow.v2.EntityTypes.CreateEntityTypeCallback): void;

                    /**
                     * Calls CreateEntityType.
                     * @param request CreateEntityTypeRequest message or plain object
                     * @returns Promise
                     */
                    public createEntityType(request: google.cloud.dialogflow.v2.ICreateEntityTypeRequest): Promise<google.cloud.dialogflow.v2.EntityType>;

                    /**
                     * Calls UpdateEntityType.
                     * @param request UpdateEntityTypeRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and EntityType
                     */
                    public updateEntityType(request: google.cloud.dialogflow.v2.IUpdateEntityTypeRequest, callback: google.cloud.dialogflow.v2.EntityTypes.UpdateEntityTypeCallback): void;

                    /**
                     * Calls UpdateEntityType.
                     * @param request UpdateEntityTypeRequest message or plain object
                     * @returns Promise
                     */
                    public updateEntityType(request: google.cloud.dialogflow.v2.IUpdateEntityTypeRequest): Promise<google.cloud.dialogflow.v2.EntityType>;

                    /**
                     * Calls DeleteEntityType.
                     * @param request DeleteEntityTypeRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Empty
                     */
                    public deleteEntityType(request: google.cloud.dialogflow.v2.IDeleteEntityTypeRequest, callback: google.cloud.dialogflow.v2.EntityTypes.DeleteEntityTypeCallback): void;

                    /**
                     * Calls DeleteEntityType.
                     * @param request DeleteEntityTypeRequest message or plain object
                     * @returns Promise
                     */
                    public deleteEntityType(request: google.cloud.dialogflow.v2.IDeleteEntityTypeRequest): Promise<google.protobuf.Empty>;

                    /**
                     * Calls BatchUpdateEntityTypes.
                     * @param request BatchUpdateEntityTypesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public batchUpdateEntityTypes(request: google.cloud.dialogflow.v2.IBatchUpdateEntityTypesRequest, callback: google.cloud.dialogflow.v2.EntityTypes.BatchUpdateEntityTypesCallback): void;

                    /**
                     * Calls BatchUpdateEntityTypes.
                     * @param request BatchUpdateEntityTypesRequest message or plain object
                     * @returns Promise
                     */
                    public batchUpdateEntityTypes(request: google.cloud.dialogflow.v2.IBatchUpdateEntityTypesRequest): Promise<google.longrunning.Operation>;

                    /**
                     * Calls BatchDeleteEntityTypes.
                     * @param request BatchDeleteEntityTypesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public batchDeleteEntityTypes(request: google.cloud.dialogflow.v2.IBatchDeleteEntityTypesRequest, callback: google.cloud.dialogflow.v2.EntityTypes.BatchDeleteEntityTypesCallback): void;

                    /**
                     * Calls BatchDeleteEntityTypes.
                     * @param request BatchDeleteEntityTypesRequest message or plain object
                     * @returns Promise
                     */
                    public batchDeleteEntityTypes(request: google.cloud.dialogflow.v2.IBatchDeleteEntityTypesRequest): Promise<google.longrunning.Operation>;

                    /**
                     * Calls BatchCreateEntities.
                     * @param request BatchCreateEntitiesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public batchCreateEntities(request: google.cloud.dialogflow.v2.IBatchCreateEntitiesRequest, callback: google.cloud.dialogflow.v2.EntityTypes.BatchCreateEntitiesCallback): void;

                    /**
                     * Calls BatchCreateEntities.
                     * @param request BatchCreateEntitiesRequest message or plain object
                     * @returns Promise
                     */
                    public batchCreateEntities(request: google.cloud.dialogflow.v2.IBatchCreateEntitiesRequest): Promise<google.longrunning.Operation>;

                    /**
                     * Calls BatchUpdateEntities.
                     * @param request BatchUpdateEntitiesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public batchUpdateEntities(request: google.cloud.dialogflow.v2.IBatchUpdateEntitiesRequest, callback: google.cloud.dialogflow.v2.EntityTypes.BatchUpdateEntitiesCallback): void;

                    /**
                     * Calls BatchUpdateEntities.
                     * @param request BatchUpdateEntitiesRequest message or plain object
                     * @returns Promise
                     */
                    public batchUpdateEntities(request: google.cloud.dialogflow.v2.IBatchUpdateEntitiesRequest): Promise<google.longrunning.Operation>;

                    /**
                     * Calls BatchDeleteEntities.
                     * @param request BatchDeleteEntitiesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public batchDeleteEntities(request: google.cloud.dialogflow.v2.IBatchDeleteEntitiesRequest, callback: google.cloud.dialogflow.v2.EntityTypes.BatchDeleteEntitiesCallback): void;

                    /**
                     * Calls BatchDeleteEntities.
                     * @param request BatchDeleteEntitiesRequest message or plain object
                     * @returns Promise
                     */
                    public batchDeleteEntities(request: google.cloud.dialogflow.v2.IBatchDeleteEntitiesRequest): Promise<google.longrunning.Operation>;
                }

                namespace EntityTypes {

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2.EntityTypes|listEntityTypes}.
                     * @param error Error, if any
                     * @param [response] ListEntityTypesResponse
                     */
                    type ListEntityTypesCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2.ListEntityTypesResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2.EntityTypes|getEntityType}.
                     * @param error Error, if any
                     * @param [response] EntityType
                     */
                    type GetEntityTypeCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2.EntityType) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2.EntityTypes|createEntityType}.
                     * @param error Error, if any
                     * @param [response] EntityType
                     */
                    type CreateEntityTypeCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2.EntityType) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2.EntityTypes|updateEntityType}.
                     * @param error Error, if any
                     * @param [response] EntityType
                     */
                    type UpdateEntityTypeCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2.EntityType) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2.EntityTypes|deleteEntityType}.
                     * @param error Error, if any
                     * @param [response] Empty
                     */
                    type DeleteEntityTypeCallback = (error: (Error|null), response?: google.protobuf.Empty) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2.EntityTypes|batchUpdateEntityTypes}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type BatchUpdateEntityTypesCallback = (error: (Error|null), response?: google.longrunning.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2.EntityTypes|batchDeleteEntityTypes}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type BatchDeleteEntityTypesCallback = (error: (Error|null), response?: google.longrunning.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2.EntityTypes|batchCreateEntities}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type BatchCreateEntitiesCallback = (error: (Error|null), response?: google.longrunning.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2.EntityTypes|batchUpdateEntities}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type BatchUpdateEntitiesCallback = (error: (Error|null), response?: google.longrunning.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2.EntityTypes|batchDeleteEntities}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type BatchDeleteEntitiesCallback = (error: (Error|null), response?: google.longrunning.Operation) => void;
                }

                /** Properties of an EntityType. */
                interface IEntityType {

                    /** EntityType name */
                    name?: (string|null);

                    /** EntityType displayName */
                    displayName?: (string|null);

                    /** EntityType kind */
                    kind?: (google.cloud.dialogflow.v2.EntityType.Kind|keyof typeof google.cloud.dialogflow.v2.EntityType.Kind|null);

                    /** EntityType autoExpansionMode */
                    autoExpansionMode?: (google.cloud.dialogflow.v2.EntityType.AutoExpansionMode|keyof typeof google.cloud.dialogflow.v2.EntityType.AutoExpansionMode|null);

                    /** EntityType entities */
                    entities?: (google.cloud.dialogflow.v2.EntityType.IEntity[]|null);

                    /** EntityType enableFuzzyExtraction */
                    enableFuzzyExtraction?: (boolean|null);
                }

                /** Represents an EntityType. */
                class EntityType implements IEntityType {

                    /**
                     * Constructs a new EntityType.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IEntityType);

                    /** EntityType name. */
                    public name: string;

                    /** EntityType displayName. */
                    public displayName: string;

                    /** EntityType kind. */
                    public kind: (google.cloud.dialogflow.v2.EntityType.Kind|keyof typeof google.cloud.dialogflow.v2.EntityType.Kind);

                    /** EntityType autoExpansionMode. */
                    public autoExpansionMode: (google.cloud.dialogflow.v2.EntityType.AutoExpansionMode|keyof typeof google.cloud.dialogflow.v2.EntityType.AutoExpansionMode);

                    /** EntityType entities. */
                    public entities: google.cloud.dialogflow.v2.EntityType.IEntity[];

                    /** EntityType enableFuzzyExtraction. */
                    public enableFuzzyExtraction: boolean;

                    /**
                     * Creates a new EntityType instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns EntityType instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IEntityType): google.cloud.dialogflow.v2.EntityType;

                    /**
                     * Encodes the specified EntityType message. Does not implicitly {@link google.cloud.dialogflow.v2.EntityType.verify|verify} messages.
                     * @param message EntityType message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IEntityType, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified EntityType message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.EntityType.verify|verify} messages.
                     * @param message EntityType message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.IEntityType, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an EntityType message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns EntityType
                     * @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.cloud.dialogflow.v2.EntityType;

                    /**
                     * Decodes an EntityType message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns EntityType
                     * @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.cloud.dialogflow.v2.EntityType;

                    /**
                     * Verifies an EntityType 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 EntityType message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns EntityType
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.EntityType;

                    /**
                     * Creates a plain object from an EntityType message. Also converts values to other types if specified.
                     * @param message EntityType
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.EntityType, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this EntityType to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for EntityType
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace EntityType {

                    /** Kind enum. */
                    enum Kind {
                        KIND_UNSPECIFIED = 0,
                        KIND_MAP = 1,
                        KIND_LIST = 2,
                        KIND_REGEXP = 3
                    }

                    /** AutoExpansionMode enum. */
                    enum AutoExpansionMode {
                        AUTO_EXPANSION_MODE_UNSPECIFIED = 0,
                        AUTO_EXPANSION_MODE_DEFAULT = 1
                    }

                    /** Properties of an Entity. */
                    interface IEntity {

                        /** Entity value */
                        value?: (string|null);

                        /** Entity synonyms */
                        synonyms?: (string[]|null);
                    }

                    /** Represents an Entity. */
                    class Entity implements IEntity {

                        /**
                         * Constructs a new Entity.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2.EntityType.IEntity);

                        /** Entity value. */
                        public value: string;

                        /** Entity synonyms. */
                        public synonyms: string[];

                        /**
                         * Creates a new Entity instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns Entity instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2.EntityType.IEntity): google.cloud.dialogflow.v2.EntityType.Entity;

                        /**
                         * Encodes the specified Entity message. Does not implicitly {@link google.cloud.dialogflow.v2.EntityType.Entity.verify|verify} messages.
                         * @param message Entity message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2.EntityType.IEntity, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified Entity message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.EntityType.Entity.verify|verify} messages.
                         * @param message Entity message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2.EntityType.IEntity, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes an Entity message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns Entity
                         * @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.cloud.dialogflow.v2.EntityType.Entity;

                        /**
                         * Decodes an Entity message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns Entity
                         * @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.cloud.dialogflow.v2.EntityType.Entity;

                        /**
                         * Verifies an Entity 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 Entity message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns Entity
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.EntityType.Entity;

                        /**
                         * Creates a plain object from an Entity message. Also converts values to other types if specified.
                         * @param message Entity
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.dialogflow.v2.EntityType.Entity, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this Entity to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for Entity
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }
                }

                /** Properties of a ListEntityTypesRequest. */
                interface IListEntityTypesRequest {

                    /** ListEntityTypesRequest parent */
                    parent?: (string|null);

                    /** ListEntityTypesRequest languageCode */
                    languageCode?: (string|null);

                    /** ListEntityTypesRequest pageSize */
                    pageSize?: (number|null);

                    /** ListEntityTypesRequest pageToken */
                    pageToken?: (string|null);
                }

                /** Represents a ListEntityTypesRequest. */
                class ListEntityTypesRequest implements IListEntityTypesRequest {

                    /**
                     * Constructs a new ListEntityTypesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IListEntityTypesRequest);

                    /** ListEntityTypesRequest parent. */
                    public parent: string;

                    /** ListEntityTypesRequest languageCode. */
                    public languageCode: string;

                    /** ListEntityTypesRequest pageSize. */
                    public pageSize: number;

                    /** ListEntityTypesRequest pageToken. */
                    public pageToken: string;

                    /**
                     * Creates a new ListEntityTypesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListEntityTypesRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IListEntityTypesRequest): google.cloud.dialogflow.v2.ListEntityTypesRequest;

                    /**
                     * Encodes the specified ListEntityTypesRequest message. Does not implicitly {@link google.cloud.dialogflow.v2.ListEntityTypesRequest.verify|verify} messages.
                     * @param message ListEntityTypesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IListEntityTypesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListEntityTypesRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.ListEntityTypesRequest.verify|verify} messages.
                     * @param message ListEntityTypesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.IListEntityTypesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListEntityTypesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListEntityTypesRequest
                     * @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.cloud.dialogflow.v2.ListEntityTypesRequest;

                    /**
                     * Decodes a ListEntityTypesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListEntityTypesRequest
                     * @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.cloud.dialogflow.v2.ListEntityTypesRequest;

                    /**
                     * Verifies a ListEntityTypesRequest 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 ListEntityTypesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListEntityTypesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.ListEntityTypesRequest;

                    /**
                     * Creates a plain object from a ListEntityTypesRequest message. Also converts values to other types if specified.
                     * @param message ListEntityTypesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.ListEntityTypesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListEntityTypesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListEntityTypesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListEntityTypesResponse. */
                interface IListEntityTypesResponse {

                    /** ListEntityTypesResponse entityTypes */
                    entityTypes?: (google.cloud.dialogflow.v2.IEntityType[]|null);

                    /** ListEntityTypesResponse nextPageToken */
                    nextPageToken?: (string|null);
                }

                /** Represents a ListEntityTypesResponse. */
                class ListEntityTypesResponse implements IListEntityTypesResponse {

                    /**
                     * Constructs a new ListEntityTypesResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IListEntityTypesResponse);

                    /** ListEntityTypesResponse entityTypes. */
                    public entityTypes: google.cloud.dialogflow.v2.IEntityType[];

                    /** ListEntityTypesResponse nextPageToken. */
                    public nextPageToken: string;

                    /**
                     * Creates a new ListEntityTypesResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListEntityTypesResponse instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IListEntityTypesResponse): google.cloud.dialogflow.v2.ListEntityTypesResponse;

                    /**
                     * Encodes the specified ListEntityTypesResponse message. Does not implicitly {@link google.cloud.dialogflow.v2.ListEntityTypesResponse.verify|verify} messages.
                     * @param message ListEntityTypesResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IListEntityTypesResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListEntityTypesResponse message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.ListEntityTypesResponse.verify|verify} messages.
                     * @param message ListEntityTypesResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.IListEntityTypesResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListEntityTypesResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListEntityTypesResponse
                     * @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.cloud.dialogflow.v2.ListEntityTypesResponse;

                    /**
                     * Decodes a ListEntityTypesResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListEntityTypesResponse
                     * @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.cloud.dialogflow.v2.ListEntityTypesResponse;

                    /**
                     * Verifies a ListEntityTypesResponse 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 ListEntityTypesResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListEntityTypesResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.ListEntityTypesResponse;

                    /**
                     * Creates a plain object from a ListEntityTypesResponse message. Also converts values to other types if specified.
                     * @param message ListEntityTypesResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.ListEntityTypesResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListEntityTypesResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListEntityTypesResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetEntityTypeRequest. */
                interface IGetEntityTypeRequest {

                    /** GetEntityTypeRequest name */
                    name?: (string|null);

                    /** GetEntityTypeRequest languageCode */
                    languageCode?: (string|null);
                }

                /** Represents a GetEntityTypeRequest. */
                class GetEntityTypeRequest implements IGetEntityTypeRequest {

                    /**
                     * Constructs a new GetEntityTypeRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IGetEntityTypeRequest);

                    /** GetEntityTypeRequest name. */
                    public name: string;

                    /** GetEntityTypeRequest languageCode. */
                    public languageCode: string;

                    /**
                     * Creates a new GetEntityTypeRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetEntityTypeRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IGetEntityTypeRequest): google.cloud.dialogflow.v2.GetEntityTypeRequest;

                    /**
                     * Encodes the specified GetEntityTypeRequest message. Does not implicitly {@link google.cloud.dialogflow.v2.GetEntityTypeRequest.verify|verify} messages.
                     * @param message GetEntityTypeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IGetEntityTypeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetEntityTypeRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.GetEntityTypeRequest.verify|verify} messages.
                     * @param message GetEntityTypeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.IGetEntityTypeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetEntityTypeRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetEntityTypeRequest
                     * @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.cloud.dialogflow.v2.GetEntityTypeRequest;

                    /**
                     * Decodes a GetEntityTypeRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetEntityTypeRequest
                     * @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.cloud.dialogflow.v2.GetEntityTypeRequest;

                    /**
                     * Verifies a GetEntityTypeRequest 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 GetEntityTypeRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetEntityTypeRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.GetEntityTypeRequest;

                    /**
                     * Creates a plain object from a GetEntityTypeRequest message. Also converts values to other types if specified.
                     * @param message GetEntityTypeRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.GetEntityTypeRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetEntityTypeRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetEntityTypeRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a CreateEntityTypeRequest. */
                interface ICreateEntityTypeRequest {

                    /** CreateEntityTypeRequest parent */
                    parent?: (string|null);

                    /** CreateEntityTypeRequest entityType */
                    entityType?: (google.cloud.dialogflow.v2.IEntityType|null);

                    /** CreateEntityTypeRequest languageCode */
                    languageCode?: (string|null);
                }

                /** Represents a CreateEntityTypeRequest. */
                class CreateEntityTypeRequest implements ICreateEntityTypeRequest {

                    /**
                     * Constructs a new CreateEntityTypeRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.ICreateEntityTypeRequest);

                    /** CreateEntityTypeRequest parent. */
                    public parent: string;

                    /** CreateEntityTypeRequest entityType. */
                    public entityType?: (google.cloud.dialogflow.v2.IEntityType|null);

                    /** CreateEntityTypeRequest languageCode. */
                    public languageCode: string;

                    /**
                     * Creates a new CreateEntityTypeRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CreateEntityTypeRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.ICreateEntityTypeRequest): google.cloud.dialogflow.v2.CreateEntityTypeRequest;

                    /**
                     * Encodes the specified CreateEntityTypeRequest message. Does not implicitly {@link google.cloud.dialogflow.v2.CreateEntityTypeRequest.verify|verify} messages.
                     * @param message CreateEntityTypeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.ICreateEntityTypeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CreateEntityTypeRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.CreateEntityTypeRequest.verify|verify} messages.
                     * @param message CreateEntityTypeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.ICreateEntityTypeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CreateEntityTypeRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CreateEntityTypeRequest
                     * @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.cloud.dialogflow.v2.CreateEntityTypeRequest;

                    /**
                     * Decodes a CreateEntityTypeRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CreateEntityTypeRequest
                     * @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.cloud.dialogflow.v2.CreateEntityTypeRequest;

                    /**
                     * Verifies a CreateEntityTypeRequest 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 CreateEntityTypeRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CreateEntityTypeRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.CreateEntityTypeRequest;

                    /**
                     * Creates a plain object from a CreateEntityTypeRequest message. Also converts values to other types if specified.
                     * @param message CreateEntityTypeRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.CreateEntityTypeRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CreateEntityTypeRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CreateEntityTypeRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an UpdateEntityTypeRequest. */
                interface IUpdateEntityTypeRequest {

                    /** UpdateEntityTypeRequest entityType */
                    entityType?: (google.cloud.dialogflow.v2.IEntityType|null);

                    /** UpdateEntityTypeRequest languageCode */
                    languageCode?: (string|null);

                    /** UpdateEntityTypeRequest updateMask */
                    updateMask?: (google.protobuf.IFieldMask|null);
                }

                /** Represents an UpdateEntityTypeRequest. */
                class UpdateEntityTypeRequest implements IUpdateEntityTypeRequest {

                    /**
                     * Constructs a new UpdateEntityTypeRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IUpdateEntityTypeRequest);

                    /** UpdateEntityTypeRequest entityType. */
                    public entityType?: (google.cloud.dialogflow.v2.IEntityType|null);

                    /** UpdateEntityTypeRequest languageCode. */
                    public languageCode: string;

                    /** UpdateEntityTypeRequest updateMask. */
                    public updateMask?: (google.protobuf.IFieldMask|null);

                    /**
                     * Creates a new UpdateEntityTypeRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UpdateEntityTypeRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IUpdateEntityTypeRequest): google.cloud.dialogflow.v2.UpdateEntityTypeRequest;

                    /**
                     * Encodes the specified UpdateEntityTypeRequest message. Does not implicitly {@link google.cloud.dialogflow.v2.UpdateEntityTypeRequest.verify|verify} messages.
                     * @param message UpdateEntityTypeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IUpdateEntityTypeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified UpdateEntityTypeRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.UpdateEntityTypeRequest.verify|verify} messages.
                     * @param message UpdateEntityTypeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.IUpdateEntityTypeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an UpdateEntityTypeRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns UpdateEntityTypeRequest
                     * @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.cloud.dialogflow.v2.UpdateEntityTypeRequest;

                    /**
                     * Decodes an UpdateEntityTypeRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns UpdateEntityTypeRequest
                     * @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.cloud.dialogflow.v2.UpdateEntityTypeRequest;

                    /**
                     * Verifies an UpdateEntityTypeRequest 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 UpdateEntityTypeRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UpdateEntityTypeRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.UpdateEntityTypeRequest;

                    /**
                     * Creates a plain object from an UpdateEntityTypeRequest message. Also converts values to other types if specified.
                     * @param message UpdateEntityTypeRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.UpdateEntityTypeRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this UpdateEntityTypeRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for UpdateEntityTypeRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteEntityTypeRequest. */
                interface IDeleteEntityTypeRequest {

                    /** DeleteEntityTypeRequest name */
                    name?: (string|null);
                }

                /** Represents a DeleteEntityTypeRequest. */
                class DeleteEntityTypeRequest implements IDeleteEntityTypeRequest {

                    /**
                     * Constructs a new DeleteEntityTypeRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IDeleteEntityTypeRequest);

                    /** DeleteEntityTypeRequest name. */
                    public name: string;

                    /**
                     * Creates a new DeleteEntityTypeRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteEntityTypeRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IDeleteEntityTypeRequest): google.cloud.dialogflow.v2.DeleteEntityTypeRequest;

                    /**
                     * Encodes the specified DeleteEntityTypeRequest message. Does not implicitly {@link google.cloud.dialogflow.v2.DeleteEntityTypeRequest.verify|verify} messages.
                     * @param message DeleteEntityTypeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IDeleteEntityTypeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteEntityTypeRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.DeleteEntityTypeRequest.verify|verify} messages.
                     * @param message DeleteEntityTypeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.IDeleteEntityTypeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteEntityTypeRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteEntityTypeRequest
                     * @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.cloud.dialogflow.v2.DeleteEntityTypeRequest;

                    /**
                     * Decodes a DeleteEntityTypeRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteEntityTypeRequest
                     * @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.cloud.dialogflow.v2.DeleteEntityTypeRequest;

                    /**
                     * Verifies a DeleteEntityTypeRequest 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 DeleteEntityTypeRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteEntityTypeRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.DeleteEntityTypeRequest;

                    /**
                     * Creates a plain object from a DeleteEntityTypeRequest message. Also converts values to other types if specified.
                     * @param message DeleteEntityTypeRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.DeleteEntityTypeRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteEntityTypeRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteEntityTypeRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a BatchUpdateEntityTypesRequest. */
                interface IBatchUpdateEntityTypesRequest {

                    /** BatchUpdateEntityTypesRequest parent */
                    parent?: (string|null);

                    /** BatchUpdateEntityTypesRequest entityTypeBatchUri */
                    entityTypeBatchUri?: (string|null);

                    /** BatchUpdateEntityTypesRequest entityTypeBatchInline */
                    entityTypeBatchInline?: (google.cloud.dialogflow.v2.IEntityTypeBatch|null);

                    /** BatchUpdateEntityTypesRequest languageCode */
                    languageCode?: (string|null);

                    /** BatchUpdateEntityTypesRequest updateMask */
                    updateMask?: (google.protobuf.IFieldMask|null);
                }

                /** Represents a BatchUpdateEntityTypesRequest. */
                class BatchUpdateEntityTypesRequest implements IBatchUpdateEntityTypesRequest {

                    /**
                     * Constructs a new BatchUpdateEntityTypesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IBatchUpdateEntityTypesRequest);

                    /** BatchUpdateEntityTypesRequest parent. */
                    public parent: string;

                    /** BatchUpdateEntityTypesRequest entityTypeBatchUri. */
                    public entityTypeBatchUri?: (string|null);

                    /** BatchUpdateEntityTypesRequest entityTypeBatchInline. */
                    public entityTypeBatchInline?: (google.cloud.dialogflow.v2.IEntityTypeBatch|null);

                    /** BatchUpdateEntityTypesRequest languageCode. */
                    public languageCode: string;

                    /** BatchUpdateEntityTypesRequest updateMask. */
                    public updateMask?: (google.protobuf.IFieldMask|null);

                    /** BatchUpdateEntityTypesRequest entityTypeBatch. */
                    public entityTypeBatch?: ("entityTypeBatchUri"|"entityTypeBatchInline");

                    /**
                     * Creates a new BatchUpdateEntityTypesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BatchUpdateEntityTypesRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IBatchUpdateEntityTypesRequest): google.cloud.dialogflow.v2.BatchUpdateEntityTypesRequest;

                    /**
                     * Encodes the specified BatchUpdateEntityTypesRequest message. Does not implicitly {@link google.cloud.dialogflow.v2.BatchUpdateEntityTypesRequest.verify|verify} messages.
                     * @param message BatchUpdateEntityTypesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IBatchUpdateEntityTypesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BatchUpdateEntityTypesRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.BatchUpdateEntityTypesRequest.verify|verify} messages.
                     * @param message BatchUpdateEntityTypesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.IBatchUpdateEntityTypesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BatchUpdateEntityTypesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BatchUpdateEntityTypesRequest
                     * @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.cloud.dialogflow.v2.BatchUpdateEntityTypesRequest;

                    /**
                     * Decodes a BatchUpdateEntityTypesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BatchUpdateEntityTypesRequest
                     * @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.cloud.dialogflow.v2.BatchUpdateEntityTypesRequest;

                    /**
                     * Verifies a BatchUpdateEntityTypesRequest 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 BatchUpdateEntityTypesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BatchUpdateEntityTypesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.BatchUpdateEntityTypesRequest;

                    /**
                     * Creates a plain object from a BatchUpdateEntityTypesRequest message. Also converts values to other types if specified.
                     * @param message BatchUpdateEntityTypesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.BatchUpdateEntityTypesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BatchUpdateEntityTypesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BatchUpdateEntityTypesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a BatchUpdateEntityTypesResponse. */
                interface IBatchUpdateEntityTypesResponse {

                    /** BatchUpdateEntityTypesResponse entityTypes */
                    entityTypes?: (google.cloud.dialogflow.v2.IEntityType[]|null);
                }

                /** Represents a BatchUpdateEntityTypesResponse. */
                class BatchUpdateEntityTypesResponse implements IBatchUpdateEntityTypesResponse {

                    /**
                     * Constructs a new BatchUpdateEntityTypesResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IBatchUpdateEntityTypesResponse);

                    /** BatchUpdateEntityTypesResponse entityTypes. */
                    public entityTypes: google.cloud.dialogflow.v2.IEntityType[];

                    /**
                     * Creates a new BatchUpdateEntityTypesResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BatchUpdateEntityTypesResponse instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IBatchUpdateEntityTypesResponse): google.cloud.dialogflow.v2.BatchUpdateEntityTypesResponse;

                    /**
                     * Encodes the specified BatchUpdateEntityTypesResponse message. Does not implicitly {@link google.cloud.dialogflow.v2.BatchUpdateEntityTypesResponse.verify|verify} messages.
                     * @param message BatchUpdateEntityTypesResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IBatchUpdateEntityTypesResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BatchUpdateEntityTypesResponse message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.BatchUpdateEntityTypesResponse.verify|verify} messages.
                     * @param message BatchUpdateEntityTypesResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.IBatchUpdateEntityTypesResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BatchUpdateEntityTypesResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BatchUpdateEntityTypesResponse
                     * @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.cloud.dialogflow.v2.BatchUpdateEntityTypesResponse;

                    /**
                     * Decodes a BatchUpdateEntityTypesResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BatchUpdateEntityTypesResponse
                     * @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.cloud.dialogflow.v2.BatchUpdateEntityTypesResponse;

                    /**
                     * Verifies a BatchUpdateEntityTypesResponse 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 BatchUpdateEntityTypesResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BatchUpdateEntityTypesResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.BatchUpdateEntityTypesResponse;

                    /**
                     * Creates a plain object from a BatchUpdateEntityTypesResponse message. Also converts values to other types if specified.
                     * @param message BatchUpdateEntityTypesResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.BatchUpdateEntityTypesResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BatchUpdateEntityTypesResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BatchUpdateEntityTypesResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a BatchDeleteEntityTypesRequest. */
                interface IBatchDeleteEntityTypesRequest {

                    /** BatchDeleteEntityTypesRequest parent */
                    parent?: (string|null);

                    /** BatchDeleteEntityTypesRequest entityTypeNames */
                    entityTypeNames?: (string[]|null);
                }

                /** Represents a BatchDeleteEntityTypesRequest. */
                class BatchDeleteEntityTypesRequest implements IBatchDeleteEntityTypesRequest {

                    /**
                     * Constructs a new BatchDeleteEntityTypesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IBatchDeleteEntityTypesRequest);

                    /** BatchDeleteEntityTypesRequest parent. */
                    public parent: string;

                    /** BatchDeleteEntityTypesRequest entityTypeNames. */
                    public entityTypeNames: string[];

                    /**
                     * Creates a new BatchDeleteEntityTypesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BatchDeleteEntityTypesRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IBatchDeleteEntityTypesRequest): google.cloud.dialogflow.v2.BatchDeleteEntityTypesRequest;

                    /**
                     * Encodes the specified BatchDeleteEntityTypesRequest message. Does not implicitly {@link google.cloud.dialogflow.v2.BatchDeleteEntityTypesRequest.verify|verify} messages.
                     * @param message BatchDeleteEntityTypesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IBatchDeleteEntityTypesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BatchDeleteEntityTypesRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.BatchDeleteEntityTypesRequest.verify|verify} messages.
                     * @param message BatchDeleteEntityTypesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.IBatchDeleteEntityTypesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BatchDeleteEntityTypesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BatchDeleteEntityTypesRequest
                     * @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.cloud.dialogflow.v2.BatchDeleteEntityTypesRequest;

                    /**
                     * Decodes a BatchDeleteEntityTypesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BatchDeleteEntityTypesRequest
                     * @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.cloud.dialogflow.v2.BatchDeleteEntityTypesRequest;

                    /**
                     * Verifies a BatchDeleteEntityTypesRequest 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 BatchDeleteEntityTypesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BatchDeleteEntityTypesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.BatchDeleteEntityTypesRequest;

                    /**
                     * Creates a plain object from a BatchDeleteEntityTypesRequest message. Also converts values to other types if specified.
                     * @param message BatchDeleteEntityTypesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.BatchDeleteEntityTypesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BatchDeleteEntityTypesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BatchDeleteEntityTypesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a BatchCreateEntitiesRequest. */
                interface IBatchCreateEntitiesRequest {

                    /** BatchCreateEntitiesRequest parent */
                    parent?: (string|null);

                    /** BatchCreateEntitiesRequest entities */
                    entities?: (google.cloud.dialogflow.v2.EntityType.IEntity[]|null);

                    /** BatchCreateEntitiesRequest languageCode */
                    languageCode?: (string|null);
                }

                /** Represents a BatchCreateEntitiesRequest. */
                class BatchCreateEntitiesRequest implements IBatchCreateEntitiesRequest {

                    /**
                     * Constructs a new BatchCreateEntitiesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IBatchCreateEntitiesRequest);

                    /** BatchCreateEntitiesRequest parent. */
                    public parent: string;

                    /** BatchCreateEntitiesRequest entities. */
                    public entities: google.cloud.dialogflow.v2.EntityType.IEntity[];

                    /** BatchCreateEntitiesRequest languageCode. */
                    public languageCode: string;

                    /**
                     * Creates a new BatchCreateEntitiesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BatchCreateEntitiesRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IBatchCreateEntitiesRequest): google.cloud.dialogflow.v2.BatchCreateEntitiesRequest;

                    /**
                     * Encodes the specified BatchCreateEntitiesRequest message. Does not implicitly {@link google.cloud.dialogflow.v2.BatchCreateEntitiesRequest.verify|verify} messages.
                     * @param message BatchCreateEntitiesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IBatchCreateEntitiesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BatchCreateEntitiesRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.BatchCreateEntitiesRequest.verify|verify} messages.
                     * @param message BatchCreateEntitiesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.IBatchCreateEntitiesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BatchCreateEntitiesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BatchCreateEntitiesRequest
                     * @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.cloud.dialogflow.v2.BatchCreateEntitiesRequest;

                    /**
                     * Decodes a BatchCreateEntitiesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BatchCreateEntitiesRequest
                     * @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.cloud.dialogflow.v2.BatchCreateEntitiesRequest;

                    /**
                     * Verifies a BatchCreateEntitiesRequest 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 BatchCreateEntitiesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BatchCreateEntitiesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.BatchCreateEntitiesRequest;

                    /**
                     * Creates a plain object from a BatchCreateEntitiesRequest message. Also converts values to other types if specified.
                     * @param message BatchCreateEntitiesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.BatchCreateEntitiesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BatchCreateEntitiesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BatchCreateEntitiesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a BatchUpdateEntitiesRequest. */
                interface IBatchUpdateEntitiesRequest {

                    /** BatchUpdateEntitiesRequest parent */
                    parent?: (string|null);

                    /** BatchUpdateEntitiesRequest entities */
                    entities?: (google.cloud.dialogflow.v2.EntityType.IEntity[]|null);

                    /** BatchUpdateEntitiesRequest languageCode */
                    languageCode?: (string|null);

                    /** BatchUpdateEntitiesRequest updateMask */
                    updateMask?: (google.protobuf.IFieldMask|null);
                }

                /** Represents a BatchUpdateEntitiesRequest. */
                class BatchUpdateEntitiesRequest implements IBatchUpdateEntitiesRequest {

                    /**
                     * Constructs a new BatchUpdateEntitiesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IBatchUpdateEntitiesRequest);

                    /** BatchUpdateEntitiesRequest parent. */
                    public parent: string;

                    /** BatchUpdateEntitiesRequest entities. */
                    public entities: google.cloud.dialogflow.v2.EntityType.IEntity[];

                    /** BatchUpdateEntitiesRequest languageCode. */
                    public languageCode: string;

                    /** BatchUpdateEntitiesRequest updateMask. */
                    public updateMask?: (google.protobuf.IFieldMask|null);

                    /**
                     * Creates a new BatchUpdateEntitiesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BatchUpdateEntitiesRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IBatchUpdateEntitiesRequest): google.cloud.dialogflow.v2.BatchUpdateEntitiesRequest;

                    /**
                     * Encodes the specified BatchUpdateEntitiesRequest message. Does not implicitly {@link google.cloud.dialogflow.v2.BatchUpdateEntitiesRequest.verify|verify} messages.
                     * @param message BatchUpdateEntitiesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IBatchUpdateEntitiesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BatchUpdateEntitiesRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.BatchUpdateEntitiesRequest.verify|verify} messages.
                     * @param message BatchUpdateEntitiesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.IBatchUpdateEntitiesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BatchUpdateEntitiesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BatchUpdateEntitiesRequest
                     * @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.cloud.dialogflow.v2.BatchUpdateEntitiesRequest;

                    /**
                     * Decodes a BatchUpdateEntitiesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BatchUpdateEntitiesRequest
                     * @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.cloud.dialogflow.v2.BatchUpdateEntitiesRequest;

                    /**
                     * Verifies a BatchUpdateEntitiesRequest 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 BatchUpdateEntitiesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BatchUpdateEntitiesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.BatchUpdateEntitiesRequest;

                    /**
                     * Creates a plain object from a BatchUpdateEntitiesRequest message. Also converts values to other types if specified.
                     * @param message BatchUpdateEntitiesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.BatchUpdateEntitiesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BatchUpdateEntitiesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BatchUpdateEntitiesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a BatchDeleteEntitiesRequest. */
                interface IBatchDeleteEntitiesRequest {

                    /** BatchDeleteEntitiesRequest parent */
                    parent?: (string|null);

                    /** BatchDeleteEntitiesRequest entityValues */
                    entityValues?: (string[]|null);

                    /** BatchDeleteEntitiesRequest languageCode */
                    languageCode?: (string|null);
                }

                /** Represents a BatchDeleteEntitiesRequest. */
                class BatchDeleteEntitiesRequest implements IBatchDeleteEntitiesRequest {

                    /**
                     * Constructs a new BatchDeleteEntitiesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IBatchDeleteEntitiesRequest);

                    /** BatchDeleteEntitiesRequest parent. */
                    public parent: string;

                    /** BatchDeleteEntitiesRequest entityValues. */
                    public entityValues: string[];

                    /** BatchDeleteEntitiesRequest languageCode. */
                    public languageCode: string;

                    /**
                     * Creates a new BatchDeleteEntitiesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BatchDeleteEntitiesRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IBatchDeleteEntitiesRequest): google.cloud.dialogflow.v2.BatchDeleteEntitiesRequest;

                    /**
                     * Encodes the specified BatchDeleteEntitiesRequest message. Does not implicitly {@link google.cloud.dialogflow.v2.BatchDeleteEntitiesRequest.verify|verify} messages.
                     * @param message BatchDeleteEntitiesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IBatchDeleteEntitiesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BatchDeleteEntitiesRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.BatchDeleteEntitiesRequest.verify|verify} messages.
                     * @param message BatchDeleteEntitiesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.IBatchDeleteEntitiesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BatchDeleteEntitiesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BatchDeleteEntitiesRequest
                     * @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.cloud.dialogflow.v2.BatchDeleteEntitiesRequest;

                    /**
                     * Decodes a BatchDeleteEntitiesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BatchDeleteEntitiesRequest
                     * @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.cloud.dialogflow.v2.BatchDeleteEntitiesRequest;

                    /**
                     * Verifies a BatchDeleteEntitiesRequest 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 BatchDeleteEntitiesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BatchDeleteEntitiesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.BatchDeleteEntitiesRequest;

                    /**
                     * Creates a plain object from a BatchDeleteEntitiesRequest message. Also converts values to other types if specified.
                     * @param message BatchDeleteEntitiesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.BatchDeleteEntitiesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BatchDeleteEntitiesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BatchDeleteEntitiesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an EntityTypeBatch. */
                interface IEntityTypeBatch {

                    /** EntityTypeBatch entityTypes */
                    entityTypes?: (google.cloud.dialogflow.v2.IEntityType[]|null);
                }

                /** Represents an EntityTypeBatch. */
                class EntityTypeBatch implements IEntityTypeBatch {

                    /**
                     * Constructs a new EntityTypeBatch.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IEntityTypeBatch);

                    /** EntityTypeBatch entityTypes. */
                    public entityTypes: google.cloud.dialogflow.v2.IEntityType[];

                    /**
                     * Creates a new EntityTypeBatch instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns EntityTypeBatch instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IEntityTypeBatch): google.cloud.dialogflow.v2.EntityTypeBatch;

                    /**
                     * Encodes the specified EntityTypeBatch message. Does not implicitly {@link google.cloud.dialogflow.v2.EntityTypeBatch.verify|verify} messages.
                     * @param message EntityTypeBatch message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IEntityTypeBatch, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified EntityTypeBatch message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.EntityTypeBatch.verify|verify} messages.
                     * @param message EntityTypeBatch message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.IEntityTypeBatch, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an EntityTypeBatch message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns EntityTypeBatch
                     * @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.cloud.dialogflow.v2.EntityTypeBatch;

                    /**
                     * Decodes an EntityTypeBatch message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns EntityTypeBatch
                     * @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.cloud.dialogflow.v2.EntityTypeBatch;

                    /**
                     * Verifies an EntityTypeBatch 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 EntityTypeBatch message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns EntityTypeBatch
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.EntityTypeBatch;

                    /**
                     * Creates a plain object from an EntityTypeBatch message. Also converts values to other types if specified.
                     * @param message EntityTypeBatch
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.EntityTypeBatch, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this EntityTypeBatch to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for EntityTypeBatch
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Represents a Conversations */
                class Conversations extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new Conversations 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 Conversations 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): Conversations;

                    /**
                     * Calls CreateConversation.
                     * @param request CreateConversationRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Conversation
                     */
                    public createConversation(request: google.cloud.dialogflow.v2.ICreateConversationRequest, callback: google.cloud.dialogflow.v2.Conversations.CreateConversationCallback): void;

                    /**
                     * Calls CreateConversation.
                     * @param request CreateConversationRequest message or plain object
                     * @returns Promise
                     */
                    public createConversation(request: google.cloud.dialogflow.v2.ICreateConversationRequest): Promise<google.cloud.dialogflow.v2.Conversation>;

                    /**
                     * Calls ListConversations.
                     * @param request ListConversationsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ListConversationsResponse
                     */
                    public listConversations(request: google.cloud.dialogflow.v2.IListConversationsRequest, callback: google.cloud.dialogflow.v2.Conversations.ListConversationsCallback): void;

                    /**
                     * Calls ListConversations.
                     * @param request ListConversationsRequest message or plain object
                     * @returns Promise
                     */
                    public listConversations(request: google.cloud.dialogflow.v2.IListConversationsRequest): Promise<google.cloud.dialogflow.v2.ListConversationsResponse>;

                    /**
                     * Calls GetConversation.
                     * @param request GetConversationRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Conversation
                     */
                    public getConversation(request: google.cloud.dialogflow.v2.IGetConversationRequest, callback: google.cloud.dialogflow.v2.Conversations.GetConversationCallback): void;

                    /**
                     * Calls GetConversation.
                     * @param request GetConversationRequest message or plain object
                     * @returns Promise
                     */
                    public getConversation(request: google.cloud.dialogflow.v2.IGetConversationRequest): Promise<google.cloud.dialogflow.v2.Conversation>;

                    /**
                     * Calls CompleteConversation.
                     * @param request CompleteConversationRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Conversation
                     */
                    public completeConversation(request: google.cloud.dialogflow.v2.ICompleteConversationRequest, callback: google.cloud.dialogflow.v2.Conversations.CompleteConversationCallback): void;

                    /**
                     * Calls CompleteConversation.
                     * @param request CompleteConversationRequest message or plain object
                     * @returns Promise
                     */
                    public completeConversation(request: google.cloud.dialogflow.v2.ICompleteConversationRequest): Promise<google.cloud.dialogflow.v2.Conversation>;

                    /**
                     * Calls IngestContextReferences.
                     * @param request IngestContextReferencesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and IngestContextReferencesResponse
                     */
                    public ingestContextReferences(request: google.cloud.dialogflow.v2.IIngestContextReferencesRequest, callback: google.cloud.dialogflow.v2.Conversations.IngestContextReferencesCallback): void;

                    /**
                     * Calls IngestContextReferences.
                     * @param request IngestContextReferencesRequest message or plain object
                     * @returns Promise
                     */
                    public ingestContextReferences(request: google.cloud.dialogflow.v2.IIngestContextReferencesRequest): Promise<google.cloud.dialogflow.v2.IngestContextReferencesResponse>;

                    /**
                     * Calls ListMessages.
                     * @param request ListMessagesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ListMessagesResponse
                     */
                    public listMessages(request: google.cloud.dialogflow.v2.IListMessagesRequest, callback: google.cloud.dialogflow.v2.Conversations.ListMessagesCallback): void;

                    /**
                     * Calls ListMessages.
                     * @param request ListMessagesRequest message or plain object
                     * @returns Promise
                     */
                    public listMessages(request: google.cloud.dialogflow.v2.IListMessagesRequest): Promise<google.cloud.dialogflow.v2.ListMessagesResponse>;

                    /**
                     * Calls SuggestConversationSummary.
                     * @param request SuggestConversationSummaryRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and SuggestConversationSummaryResponse
                     */
                    public suggestConversationSummary(request: google.cloud.dialogflow.v2.ISuggestConversationSummaryRequest, callback: google.cloud.dialogflow.v2.Conversations.SuggestConversationSummaryCallback): void;

                    /**
                     * Calls SuggestConversationSummary.
                     * @param request SuggestConversationSummaryRequest message or plain object
                     * @returns Promise
                     */
                    public suggestConversationSummary(request: google.cloud.dialogflow.v2.ISuggestConversationSummaryRequest): Promise<google.cloud.dialogflow.v2.SuggestConversationSummaryResponse>;

                    /**
                     * Calls GenerateStatelessSummary.
                     * @param request GenerateStatelessSummaryRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and GenerateStatelessSummaryResponse
                     */
                    public generateStatelessSummary(request: google.cloud.dialogflow.v2.IGenerateStatelessSummaryRequest, callback: google.cloud.dialogflow.v2.Conversations.GenerateStatelessSummaryCallback): void;

                    /**
                     * Calls GenerateStatelessSummary.
                     * @param request GenerateStatelessSummaryRequest message or plain object
                     * @returns Promise
                     */
                    public generateStatelessSummary(request: google.cloud.dialogflow.v2.IGenerateStatelessSummaryRequest): Promise<google.cloud.dialogflow.v2.GenerateStatelessSummaryResponse>;

                    /**
                     * Calls GenerateStatelessSuggestion.
                     * @param request GenerateStatelessSuggestionRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and GenerateStatelessSuggestionResponse
                     */
                    public generateStatelessSuggestion(request: google.cloud.dialogflow.v2.IGenerateStatelessSuggestionRequest, callback: google.cloud.dialogflow.v2.Conversations.GenerateStatelessSuggestionCallback): void;

                    /**
                     * Calls GenerateStatelessSuggestion.
                     * @param request GenerateStatelessSuggestionRequest message or plain object
                     * @returns Promise
                     */
                    public generateStatelessSuggestion(request: google.cloud.dialogflow.v2.IGenerateStatelessSuggestionRequest): Promise<google.cloud.dialogflow.v2.GenerateStatelessSuggestionResponse>;

                    /**
                     * Calls SearchKnowledge.
                     * @param request SearchKnowledgeRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and SearchKnowledgeResponse
                     */
                    public searchKnowledge(request: google.cloud.dialogflow.v2.ISearchKnowledgeRequest, callback: google.cloud.dialogflow.v2.Conversations.SearchKnowledgeCallback): void;

                    /**
                     * Calls SearchKnowledge.
                     * @param request SearchKnowledgeRequest message or plain object
                     * @returns Promise
                     */
                    public searchKnowledge(request: google.cloud.dialogflow.v2.ISearchKnowledgeRequest): Promise<google.cloud.dialogflow.v2.SearchKnowledgeResponse>;

                    /**
                     * Calls GenerateSuggestions.
                     * @param request GenerateSuggestionsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and GenerateSuggestionsResponse
                     */
                    public generateSuggestions(request: google.cloud.dialogflow.v2.IGenerateSuggestionsRequest, callback: google.cloud.dialogflow.v2.Conversations.GenerateSuggestionsCallback): void;

                    /**
                     * Calls GenerateSuggestions.
                     * @param request GenerateSuggestionsRequest message or plain object
                     * @returns Promise
                     */
                    public generateSuggestions(request: google.cloud.dialogflow.v2.IGenerateSuggestionsRequest): Promise<google.cloud.dialogflow.v2.GenerateSuggestionsResponse>;
                }

                namespace Conversations {

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2.Conversations|createConversation}.
                     * @param error Error, if any
                     * @param [response] Conversation
                     */
                    type CreateConversationCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2.Conversation) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2.Conversations|listConversations}.
                     * @param error Error, if any
                     * @param [response] ListConversationsResponse
                     */
                    type ListConversationsCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2.ListConversationsResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2.Conversations|getConversation}.
                     * @param error Error, if any
                     * @param [response] Conversation
                     */
                    type GetConversationCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2.Conversation) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2.Conversations|completeConversation}.
                     * @param error Error, if any
                     * @param [response] Conversation
                     */
                    type CompleteConversationCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2.Conversation) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2.Conversations|ingestContextReferences}.
                     * @param error Error, if any
                     * @param [response] IngestContextReferencesResponse
                     */
                    type IngestContextReferencesCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2.IngestContextReferencesResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2.Conversations|listMessages}.
                     * @param error Error, if any
                     * @param [response] ListMessagesResponse
                     */
                    type ListMessagesCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2.ListMessagesResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2.Conversations|suggestConversationSummary}.
                     * @param error Error, if any
                     * @param [response] SuggestConversationSummaryResponse
                     */
                    type SuggestConversationSummaryCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2.SuggestConversationSummaryResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2.Conversations|generateStatelessSummary}.
                     * @param error Error, if any
                     * @param [response] GenerateStatelessSummaryResponse
                     */
                    type GenerateStatelessSummaryCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2.GenerateStatelessSummaryResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2.Conversations|generateStatelessSuggestion}.
                     * @param error Error, if any
                     * @param [response] GenerateStatelessSuggestionResponse
                     */
                    type GenerateStatelessSuggestionCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2.GenerateStatelessSuggestionResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2.Conversations|searchKnowledge}.
                     * @param error Error, if any
                     * @param [response] SearchKnowledgeResponse
                     */
                    type SearchKnowledgeCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2.SearchKnowledgeResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2.Conversations|generateSuggestions}.
                     * @param error Error, if any
                     * @param [response] GenerateSuggestionsResponse
                     */
                    type GenerateSuggestionsCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2.GenerateSuggestionsResponse) => void;
                }

                /** Properties of a Conversation. */
                interface IConversation {

                    /** Conversation name */
                    name?: (string|null);

                    /** Conversation lifecycleState */
                    lifecycleState?: (google.cloud.dialogflow.v2.Conversation.LifecycleState|keyof typeof google.cloud.dialogflow.v2.Conversation.LifecycleState|null);

                    /** Conversation conversationProfile */
                    conversationProfile?: (string|null);

                    /** Conversation phoneNumber */
                    phoneNumber?: (google.cloud.dialogflow.v2.IConversationPhoneNumber|null);

                    /** Conversation startTime */
                    startTime?: (google.protobuf.ITimestamp|null);

                    /** Conversation endTime */
                    endTime?: (google.protobuf.ITimestamp|null);

                    /** Conversation conversationStage */
                    conversationStage?: (google.cloud.dialogflow.v2.Conversation.ConversationStage|keyof typeof google.cloud.dialogflow.v2.Conversation.ConversationStage|null);

                    /** Conversation telephonyConnectionInfo */
                    telephonyConnectionInfo?: (google.cloud.dialogflow.v2.Conversation.ITelephonyConnectionInfo|null);

                    /** Conversation initialConversationProfile */
                    initialConversationProfile?: (google.cloud.dialogflow.v2.IConversationProfile|null);

                    /** Conversation ingestedContextReferences */
                    ingestedContextReferences?: ({ [k: string]: google.cloud.dialogflow.v2.Conversation.IContextReference }|null);

                    /** Conversation initialGeneratorContexts */
                    initialGeneratorContexts?: ({ [k: string]: google.cloud.dialogflow.v2.Conversation.IGeneratorContext }|null);
                }

                /** Represents a Conversation. */
                class Conversation implements IConversation {

                    /**
                     * Constructs a new Conversation.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IConversation);

                    /** Conversation name. */
                    public name: string;

                    /** Conversation lifecycleState. */
                    public lifecycleState: (google.cloud.dialogflow.v2.Conversation.LifecycleState|keyof typeof google.cloud.dialogflow.v2.Conversation.LifecycleState);

                    /** Conversation conversationProfile. */
                    public conversationProfile: string;

                    /** Conversation phoneNumber. */
                    public phoneNumber?: (google.cloud.dialogflow.v2.IConversationPhoneNumber|null);

                    /** Conversation startTime. */
                    public startTime?: (google.protobuf.ITimestamp|null);

                    /** Conversation endTime. */
                    public endTime?: (google.protobuf.ITimestamp|null);

                    /** Conversation conversationStage. */
                    public conversationStage: (google.cloud.dialogflow.v2.Conversation.ConversationStage|keyof typeof google.cloud.dialogflow.v2.Conversation.ConversationStage);

                    /** Conversation telephonyConnectionInfo. */
                    public telephonyConnectionInfo?: (google.cloud.dialogflow.v2.Conversation.ITelephonyConnectionInfo|null);

                    /** Conversation initialConversationProfile. */
                    public initialConversationProfile?: (google.cloud.dialogflow.v2.IConversationProfile|null);

                    /** Conversation ingestedContextReferences. */
                    public ingestedContextReferences: { [k: string]: google.cloud.dialogflow.v2.Conversation.IContextReference };

                    /** Conversation initialGeneratorContexts. */
                    public initialGeneratorContexts: { [k: string]: google.cloud.dialogflow.v2.Conversation.IGeneratorContext };

                    /**
                     * Creates a new Conversation instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Conversation instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IConversation): google.cloud.dialogflow.v2.Conversation;

                    /**
                     * Encodes the specified Conversation message. Does not implicitly {@link google.cloud.dialogflow.v2.Conversation.verify|verify} messages.
                     * @param message Conversation message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IConversation, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Conversation message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.Conversation.verify|verify} messages.
                     * @param message Conversation message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.IConversation, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a Conversation message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Conversation
                     * @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.cloud.dialogflow.v2.Conversation;

                    /**
                     * Decodes a Conversation message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Conversation
                     * @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.cloud.dialogflow.v2.Conversation;

                    /**
                     * Verifies a Conversation 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 Conversation message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Conversation
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.Conversation;

                    /**
                     * Creates a plain object from a Conversation message. Also converts values to other types if specified.
                     * @param message Conversation
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.Conversation, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Conversation to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Conversation
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace Conversation {

                    /** LifecycleState enum. */
                    enum LifecycleState {
                        LIFECYCLE_STATE_UNSPECIFIED = 0,
                        IN_PROGRESS = 1,
                        COMPLETED = 2
                    }

                    /** ConversationStage enum. */
                    enum ConversationStage {
                        CONVERSATION_STAGE_UNSPECIFIED = 0,
                        VIRTUAL_AGENT_STAGE = 1,
                        HUMAN_ASSIST_STAGE = 2
                    }

                    /** Properties of a TelephonyConnectionInfo. */
                    interface ITelephonyConnectionInfo {

                        /** TelephonyConnectionInfo dialedNumber */
                        dialedNumber?: (string|null);

                        /** TelephonyConnectionInfo sdp */
                        sdp?: (string|null);

                        /** TelephonyConnectionInfo sipHeaders */
                        sipHeaders?: (google.cloud.dialogflow.v2.Conversation.TelephonyConnectionInfo.ISipHeader[]|null);

                        /** TelephonyConnectionInfo extraMimeContents */
                        extraMimeContents?: (google.cloud.dialogflow.v2.Conversation.TelephonyConnectionInfo.IMimeContent[]|null);
                    }

                    /** Represents a TelephonyConnectionInfo. */
                    class TelephonyConnectionInfo implements ITelephonyConnectionInfo {

                        /**
                         * Constructs a new TelephonyConnectionInfo.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2.Conversation.ITelephonyConnectionInfo);

                        /** TelephonyConnectionInfo dialedNumber. */
                        public dialedNumber: string;

                        /** TelephonyConnectionInfo sdp. */
                        public sdp: string;

                        /** TelephonyConnectionInfo sipHeaders. */
                        public sipHeaders: google.cloud.dialogflow.v2.Conversation.TelephonyConnectionInfo.ISipHeader[];

                        /** TelephonyConnectionInfo extraMimeContents. */
                        public extraMimeContents: google.cloud.dialogflow.v2.Conversation.TelephonyConnectionInfo.IMimeContent[];

                        /**
                         * Creates a new TelephonyConnectionInfo instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns TelephonyConnectionInfo instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2.Conversation.ITelephonyConnectionInfo): google.cloud.dialogflow.v2.Conversation.TelephonyConnectionInfo;

                        /**
                         * Encodes the specified TelephonyConnectionInfo message. Does not implicitly {@link google.cloud.dialogflow.v2.Conversation.TelephonyConnectionInfo.verify|verify} messages.
                         * @param message TelephonyConnectionInfo message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2.Conversation.ITelephonyConnectionInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified TelephonyConnectionInfo message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.Conversation.TelephonyConnectionInfo.verify|verify} messages.
                         * @param message TelephonyConnectionInfo message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2.Conversation.ITelephonyConnectionInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a TelephonyConnectionInfo message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns TelephonyConnectionInfo
                         * @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.cloud.dialogflow.v2.Conversation.TelephonyConnectionInfo;

                        /**
                         * Decodes a TelephonyConnectionInfo message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns TelephonyConnectionInfo
                         * @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.cloud.dialogflow.v2.Conversation.TelephonyConnectionInfo;

                        /**
                         * Verifies a TelephonyConnectionInfo 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 TelephonyConnectionInfo message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns TelephonyConnectionInfo
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.Conversation.TelephonyConnectionInfo;

                        /**
                         * Creates a plain object from a TelephonyConnectionInfo message. Also converts values to other types if specified.
                         * @param message TelephonyConnectionInfo
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.dialogflow.v2.Conversation.TelephonyConnectionInfo, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this TelephonyConnectionInfo to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for TelephonyConnectionInfo
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    namespace TelephonyConnectionInfo {

                        /** Properties of a SipHeader. */
                        interface ISipHeader {

                            /** SipHeader name */
                            name?: (string|null);

                            /** SipHeader value */
                            value?: (string|null);
                        }

                        /** Represents a SipHeader. */
                        class SipHeader implements ISipHeader {

                            /**
                             * Constructs a new SipHeader.
                             * @param [properties] Properties to set
                             */
                            constructor(properties?: google.cloud.dialogflow.v2.Conversation.TelephonyConnectionInfo.ISipHeader);

                            /** SipHeader name. */
                            public name: string;

                            /** SipHeader value. */
                            public value: string;

                            /**
                             * Creates a new SipHeader instance using the specified properties.
                             * @param [properties] Properties to set
                             * @returns SipHeader instance
                             */
                            public static create(properties?: google.cloud.dialogflow.v2.Conversation.TelephonyConnectionInfo.ISipHeader): google.cloud.dialogflow.v2.Conversation.TelephonyConnectionInfo.SipHeader;

                            /**
                             * Encodes the specified SipHeader message. Does not implicitly {@link google.cloud.dialogflow.v2.Conversation.TelephonyConnectionInfo.SipHeader.verify|verify} messages.
                             * @param message SipHeader message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encode(message: google.cloud.dialogflow.v2.Conversation.TelephonyConnectionInfo.ISipHeader, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Encodes the specified SipHeader message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.Conversation.TelephonyConnectionInfo.SipHeader.verify|verify} messages.
                             * @param message SipHeader message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encodeDelimited(message: google.cloud.dialogflow.v2.Conversation.TelephonyConnectionInfo.ISipHeader, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Decodes a SipHeader message from the specified reader or buffer.
                             * @param reader Reader or buffer to decode from
                             * @param [length] Message length if known beforehand
                             * @returns SipHeader
                             * @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.cloud.dialogflow.v2.Conversation.TelephonyConnectionInfo.SipHeader;

                            /**
                             * Decodes a SipHeader message from the specified reader or buffer, length delimited.
                             * @param reader Reader or buffer to decode from
                             * @returns SipHeader
                             * @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.cloud.dialogflow.v2.Conversation.TelephonyConnectionInfo.SipHeader;

                            /**
                             * Verifies a SipHeader 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 SipHeader message from a plain object. Also converts values to their respective internal types.
                             * @param object Plain object
                             * @returns SipHeader
                             */
                            public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.Conversation.TelephonyConnectionInfo.SipHeader;

                            /**
                             * Creates a plain object from a SipHeader message. Also converts values to other types if specified.
                             * @param message SipHeader
                             * @param [options] Conversion options
                             * @returns Plain object
                             */
                            public static toObject(message: google.cloud.dialogflow.v2.Conversation.TelephonyConnectionInfo.SipHeader, options?: $protobuf.IConversionOptions): { [k: string]: any };

                            /**
                             * Converts this SipHeader to JSON.
                             * @returns JSON object
                             */
                            public toJSON(): { [k: string]: any };

                            /**
                             * Gets the default type url for SipHeader
                             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                             * @returns The default type url
                             */
                            public static getTypeUrl(typeUrlPrefix?: string): string;
                        }

                        /** Properties of a MimeContent. */
                        interface IMimeContent {

                            /** MimeContent mimeType */
                            mimeType?: (string|null);

                            /** MimeContent content */
                            content?: (Uint8Array|Buffer|string|null);
                        }

                        /** Represents a MimeContent. */
                        class MimeContent implements IMimeContent {

                            /**
                             * Constructs a new MimeContent.
                             * @param [properties] Properties to set
                             */
                            constructor(properties?: google.cloud.dialogflow.v2.Conversation.TelephonyConnectionInfo.IMimeContent);

                            /** MimeContent mimeType. */
                            public mimeType: string;

                            /** MimeContent content. */
                            public content: (Uint8Array|Buffer|string);

                            /**
                             * Creates a new MimeContent instance using the specified properties.
                             * @param [properties] Properties to set
                             * @returns MimeContent instance
                             */
                            public static create(properties?: google.cloud.dialogflow.v2.Conversation.TelephonyConnectionInfo.IMimeContent): google.cloud.dialogflow.v2.Conversation.TelephonyConnectionInfo.MimeContent;

                            /**
                             * Encodes the specified MimeContent message. Does not implicitly {@link google.cloud.dialogflow.v2.Conversation.TelephonyConnectionInfo.MimeContent.verify|verify} messages.
                             * @param message MimeContent message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encode(message: google.cloud.dialogflow.v2.Conversation.TelephonyConnectionInfo.IMimeContent, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Encodes the specified MimeContent message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.Conversation.TelephonyConnectionInfo.MimeContent.verify|verify} messages.
                             * @param message MimeContent message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encodeDelimited(message: google.cloud.dialogflow.v2.Conversation.TelephonyConnectionInfo.IMimeContent, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Decodes a MimeContent message from the specified reader or buffer.
                             * @param reader Reader or buffer to decode from
                             * @param [length] Message length if known beforehand
                             * @returns MimeContent
                             * @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.cloud.dialogflow.v2.Conversation.TelephonyConnectionInfo.MimeContent;

                            /**
                             * Decodes a MimeContent message from the specified reader or buffer, length delimited.
                             * @param reader Reader or buffer to decode from
                             * @returns MimeContent
                             * @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.cloud.dialogflow.v2.Conversation.TelephonyConnectionInfo.MimeContent;

                            /**
                             * Verifies a MimeContent 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 MimeContent message from a plain object. Also converts values to their respective internal types.
                             * @param object Plain object
                             * @returns MimeContent
                             */
                            public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.Conversation.TelephonyConnectionInfo.MimeContent;

                            /**
                             * Creates a plain object from a MimeContent message. Also converts values to other types if specified.
                             * @param message MimeContent
                             * @param [options] Conversion options
                             * @returns Plain object
                             */
                            public static toObject(message: google.cloud.dialogflow.v2.Conversation.TelephonyConnectionInfo.MimeContent, options?: $protobuf.IConversionOptions): { [k: string]: any };

                            /**
                             * Converts this MimeContent to JSON.
                             * @returns JSON object
                             */
                            public toJSON(): { [k: string]: any };

                            /**
                             * Gets the default type url for MimeContent
                             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                             * @returns The default type url
                             */
                            public static getTypeUrl(typeUrlPrefix?: string): string;
                        }
                    }

                    /** Properties of a ContextReference. */
                    interface IContextReference {

                        /** ContextReference contextContents */
                        contextContents?: (google.cloud.dialogflow.v2.Conversation.ContextReference.IContextContent[]|null);

                        /** ContextReference updateMode */
                        updateMode?: (google.cloud.dialogflow.v2.Conversation.ContextReference.UpdateMode|keyof typeof google.cloud.dialogflow.v2.Conversation.ContextReference.UpdateMode|null);

                        /** ContextReference languageCode */
                        languageCode?: (string|null);

                        /** ContextReference createTime */
                        createTime?: (google.protobuf.ITimestamp|null);
                    }

                    /** Represents a ContextReference. */
                    class ContextReference implements IContextReference {

                        /**
                         * Constructs a new ContextReference.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2.Conversation.IContextReference);

                        /** ContextReference contextContents. */
                        public contextContents: google.cloud.dialogflow.v2.Conversation.ContextReference.IContextContent[];

                        /** ContextReference updateMode. */
                        public updateMode: (google.cloud.dialogflow.v2.Conversation.ContextReference.UpdateMode|keyof typeof google.cloud.dialogflow.v2.Conversation.ContextReference.UpdateMode);

                        /** ContextReference languageCode. */
                        public languageCode: string;

                        /** ContextReference createTime. */
                        public createTime?: (google.protobuf.ITimestamp|null);

                        /**
                         * Creates a new ContextReference instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns ContextReference instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2.Conversation.IContextReference): google.cloud.dialogflow.v2.Conversation.ContextReference;

                        /**
                         * Encodes the specified ContextReference message. Does not implicitly {@link google.cloud.dialogflow.v2.Conversation.ContextReference.verify|verify} messages.
                         * @param message ContextReference message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2.Conversation.IContextReference, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified ContextReference message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.Conversation.ContextReference.verify|verify} messages.
                         * @param message ContextReference message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2.Conversation.IContextReference, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a ContextReference message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns ContextReference
                         * @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.cloud.dialogflow.v2.Conversation.ContextReference;

                        /**
                         * Decodes a ContextReference message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns ContextReference
                         * @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.cloud.dialogflow.v2.Conversation.ContextReference;

                        /**
                         * Verifies a ContextReference 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 ContextReference message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns ContextReference
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.Conversation.ContextReference;

                        /**
                         * Creates a plain object from a ContextReference message. Also converts values to other types if specified.
                         * @param message ContextReference
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.dialogflow.v2.Conversation.ContextReference, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this ContextReference to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for ContextReference
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    namespace ContextReference {

                        /** Properties of a ContextContent. */
                        interface IContextContent {

                            /** ContextContent content */
                            content?: (string|null);

                            /** ContextContent contentFormat */
                            contentFormat?: (google.cloud.dialogflow.v2.Conversation.ContextReference.ContextContent.ContentFormat|keyof typeof google.cloud.dialogflow.v2.Conversation.ContextReference.ContextContent.ContentFormat|null);

                            /** ContextContent ingestionTime */
                            ingestionTime?: (google.protobuf.ITimestamp|null);

                            /** ContextContent answerRecord */
                            answerRecord?: (string|null);
                        }

                        /** Represents a ContextContent. */
                        class ContextContent implements IContextContent {

                            /**
                             * Constructs a new ContextContent.
                             * @param [properties] Properties to set
                             */
                            constructor(properties?: google.cloud.dialogflow.v2.Conversation.ContextReference.IContextContent);

                            /** ContextContent content. */
                            public content: string;

                            /** ContextContent contentFormat. */
                            public contentFormat: (google.cloud.dialogflow.v2.Conversation.ContextReference.ContextContent.ContentFormat|keyof typeof google.cloud.dialogflow.v2.Conversation.ContextReference.ContextContent.ContentFormat);

                            /** ContextContent ingestionTime. */
                            public ingestionTime?: (google.protobuf.ITimestamp|null);

                            /** ContextContent answerRecord. */
                            public answerRecord: string;

                            /**
                             * Creates a new ContextContent instance using the specified properties.
                             * @param [properties] Properties to set
                             * @returns ContextContent instance
                             */
                            public static create(properties?: google.cloud.dialogflow.v2.Conversation.ContextReference.IContextContent): google.cloud.dialogflow.v2.Conversation.ContextReference.ContextContent;

                            /**
                             * Encodes the specified ContextContent message. Does not implicitly {@link google.cloud.dialogflow.v2.Conversation.ContextReference.ContextContent.verify|verify} messages.
                             * @param message ContextContent message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encode(message: google.cloud.dialogflow.v2.Conversation.ContextReference.IContextContent, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Encodes the specified ContextContent message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.Conversation.ContextReference.ContextContent.verify|verify} messages.
                             * @param message ContextContent message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encodeDelimited(message: google.cloud.dialogflow.v2.Conversation.ContextReference.IContextContent, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Decodes a ContextContent message from the specified reader or buffer.
                             * @param reader Reader or buffer to decode from
                             * @param [length] Message length if known beforehand
                             * @returns ContextContent
                             * @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.cloud.dialogflow.v2.Conversation.ContextReference.ContextContent;

                            /**
                             * Decodes a ContextContent message from the specified reader or buffer, length delimited.
                             * @param reader Reader or buffer to decode from
                             * @returns ContextContent
                             * @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.cloud.dialogflow.v2.Conversation.ContextReference.ContextContent;

                            /**
                             * Verifies a ContextContent 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 ContextContent message from a plain object. Also converts values to their respective internal types.
                             * @param object Plain object
                             * @returns ContextContent
                             */
                            public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.Conversation.ContextReference.ContextContent;

                            /**
                             * Creates a plain object from a ContextContent message. Also converts values to other types if specified.
                             * @param message ContextContent
                             * @param [options] Conversion options
                             * @returns Plain object
                             */
                            public static toObject(message: google.cloud.dialogflow.v2.Conversation.ContextReference.ContextContent, options?: $protobuf.IConversionOptions): { [k: string]: any };

                            /**
                             * Converts this ContextContent to JSON.
                             * @returns JSON object
                             */
                            public toJSON(): { [k: string]: any };

                            /**
                             * Gets the default type url for ContextContent
                             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                             * @returns The default type url
                             */
                            public static getTypeUrl(typeUrlPrefix?: string): string;
                        }

                        namespace ContextContent {

                            /** ContentFormat enum. */
                            enum ContentFormat {
                                CONTENT_FORMAT_UNSPECIFIED = 0,
                                JSON = 1,
                                PLAIN_TEXT = 2
                            }
                        }

                        /** UpdateMode enum. */
                        enum UpdateMode {
                            UPDATE_MODE_UNSPECIFIED = 0,
                            APPEND = 1,
                            OVERWRITE = 2
                        }
                    }

                    /** Properties of a GeneratorContext. */
                    interface IGeneratorContext {

                        /** GeneratorContext generatorType */
                        generatorType?: (google.cloud.dialogflow.v2.Conversation.GeneratorContext.GeneratorType|keyof typeof google.cloud.dialogflow.v2.Conversation.GeneratorContext.GeneratorType|null);
                    }

                    /** Represents a GeneratorContext. */
                    class GeneratorContext implements IGeneratorContext {

                        /**
                         * Constructs a new GeneratorContext.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2.Conversation.IGeneratorContext);

                        /** GeneratorContext generatorType. */
                        public generatorType: (google.cloud.dialogflow.v2.Conversation.GeneratorContext.GeneratorType|keyof typeof google.cloud.dialogflow.v2.Conversation.GeneratorContext.GeneratorType);

                        /**
                         * Creates a new GeneratorContext instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns GeneratorContext instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2.Conversation.IGeneratorContext): google.cloud.dialogflow.v2.Conversation.GeneratorContext;

                        /**
                         * Encodes the specified GeneratorContext message. Does not implicitly {@link google.cloud.dialogflow.v2.Conversation.GeneratorContext.verify|verify} messages.
                         * @param message GeneratorContext message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2.Conversation.IGeneratorContext, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified GeneratorContext message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.Conversation.GeneratorContext.verify|verify} messages.
                         * @param message GeneratorContext message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2.Conversation.IGeneratorContext, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a GeneratorContext message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns GeneratorContext
                         * @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.cloud.dialogflow.v2.Conversation.GeneratorContext;

                        /**
                         * Decodes a GeneratorContext message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns GeneratorContext
                         * @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.cloud.dialogflow.v2.Conversation.GeneratorContext;

                        /**
                         * Verifies a GeneratorContext 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 GeneratorContext message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns GeneratorContext
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.Conversation.GeneratorContext;

                        /**
                         * Creates a plain object from a GeneratorContext message. Also converts values to other types if specified.
                         * @param message GeneratorContext
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.dialogflow.v2.Conversation.GeneratorContext, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this GeneratorContext to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for GeneratorContext
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    namespace GeneratorContext {

                        /** GeneratorType enum. */
                        enum GeneratorType {
                            GENERATOR_TYPE_UNSPECIFIED = 0,
                            FREE_FORM = 1,
                            AGENT_COACHING = 2,
                            SUMMARIZATION = 3,
                            TRANSLATION = 4,
                            AGENT_FEEDBACK = 5,
                            CUSTOMER_MESSAGE_GENERATION = 6
                        }
                    }
                }

                /** Properties of a CreateConversationRequest. */
                interface ICreateConversationRequest {

                    /** CreateConversationRequest parent */
                    parent?: (string|null);

                    /** CreateConversationRequest conversation */
                    conversation?: (google.cloud.dialogflow.v2.IConversation|null);

                    /** CreateConversationRequest conversationId */
                    conversationId?: (string|null);
                }

                /** Represents a CreateConversationRequest. */
                class CreateConversationRequest implements ICreateConversationRequest {

                    /**
                     * Constructs a new CreateConversationRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.ICreateConversationRequest);

                    /** CreateConversationRequest parent. */
                    public parent: string;

                    /** CreateConversationRequest conversation. */
                    public conversation?: (google.cloud.dialogflow.v2.IConversation|null);

                    /** CreateConversationRequest conversationId. */
                    public conversationId: string;

                    /**
                     * Creates a new CreateConversationRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CreateConversationRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.ICreateConversationRequest): google.cloud.dialogflow.v2.CreateConversationRequest;

                    /**
                     * Encodes the specified CreateConversationRequest message. Does not implicitly {@link google.cloud.dialogflow.v2.CreateConversationRequest.verify|verify} messages.
                     * @param message CreateConversationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.ICreateConversationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CreateConversationRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.CreateConversationRequest.verify|verify} messages.
                     * @param message CreateConversationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.ICreateConversationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CreateConversationRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CreateConversationRequest
                     * @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.cloud.dialogflow.v2.CreateConversationRequest;

                    /**
                     * Decodes a CreateConversationRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CreateConversationRequest
                     * @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.cloud.dialogflow.v2.CreateConversationRequest;

                    /**
                     * Verifies a CreateConversationRequest 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 CreateConversationRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CreateConversationRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.CreateConversationRequest;

                    /**
                     * Creates a plain object from a CreateConversationRequest message. Also converts values to other types if specified.
                     * @param message CreateConversationRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.CreateConversationRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CreateConversationRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CreateConversationRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListConversationsRequest. */
                interface IListConversationsRequest {

                    /** ListConversationsRequest parent */
                    parent?: (string|null);

                    /** ListConversationsRequest pageSize */
                    pageSize?: (number|null);

                    /** ListConversationsRequest pageToken */
                    pageToken?: (string|null);

                    /** ListConversationsRequest filter */
                    filter?: (string|null);
                }

                /** Represents a ListConversationsRequest. */
                class ListConversationsRequest implements IListConversationsRequest {

                    /**
                     * Constructs a new ListConversationsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IListConversationsRequest);

                    /** ListConversationsRequest parent. */
                    public parent: string;

                    /** ListConversationsRequest pageSize. */
                    public pageSize: number;

                    /** ListConversationsRequest pageToken. */
                    public pageToken: string;

                    /** ListConversationsRequest filter. */
                    public filter: string;

                    /**
                     * Creates a new ListConversationsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListConversationsRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IListConversationsRequest): google.cloud.dialogflow.v2.ListConversationsRequest;

                    /**
                     * Encodes the specified ListConversationsRequest message. Does not implicitly {@link google.cloud.dialogflow.v2.ListConversationsRequest.verify|verify} messages.
                     * @param message ListConversationsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IListConversationsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListConversationsRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.ListConversationsRequest.verify|verify} messages.
                     * @param message ListConversationsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.IListConversationsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListConversationsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListConversationsRequest
                     * @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.cloud.dialogflow.v2.ListConversationsRequest;

                    /**
                     * Decodes a ListConversationsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListConversationsRequest
                     * @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.cloud.dialogflow.v2.ListConversationsRequest;

                    /**
                     * Verifies a ListConversationsRequest 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 ListConversationsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListConversationsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.ListConversationsRequest;

                    /**
                     * Creates a plain object from a ListConversationsRequest message. Also converts values to other types if specified.
                     * @param message ListConversationsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.ListConversationsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListConversationsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListConversationsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListConversationsResponse. */
                interface IListConversationsResponse {

                    /** ListConversationsResponse conversations */
                    conversations?: (google.cloud.dialogflow.v2.IConversation[]|null);

                    /** ListConversationsResponse nextPageToken */
                    nextPageToken?: (string|null);
                }

                /** Represents a ListConversationsResponse. */
                class ListConversationsResponse implements IListConversationsResponse {

                    /**
                     * Constructs a new ListConversationsResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IListConversationsResponse);

                    /** ListConversationsResponse conversations. */
                    public conversations: google.cloud.dialogflow.v2.IConversation[];

                    /** ListConversationsResponse nextPageToken. */
                    public nextPageToken: string;

                    /**
                     * Creates a new ListConversationsResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListConversationsResponse instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IListConversationsResponse): google.cloud.dialogflow.v2.ListConversationsResponse;

                    /**
                     * Encodes the specified ListConversationsResponse message. Does not implicitly {@link google.cloud.dialogflow.v2.ListConversationsResponse.verify|verify} messages.
                     * @param message ListConversationsResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IListConversationsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListConversationsResponse message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.ListConversationsResponse.verify|verify} messages.
                     * @param message ListConversationsResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.IListConversationsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListConversationsResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListConversationsResponse
                     * @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.cloud.dialogflow.v2.ListConversationsResponse;

                    /**
                     * Decodes a ListConversationsResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListConversationsResponse
                     * @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.cloud.dialogflow.v2.ListConversationsResponse;

                    /**
                     * Verifies a ListConversationsResponse 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 ListConversationsResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListConversationsResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.ListConversationsResponse;

                    /**
                     * Creates a plain object from a ListConversationsResponse message. Also converts values to other types if specified.
                     * @param message ListConversationsResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.ListConversationsResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListConversationsResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListConversationsResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetConversationRequest. */
                interface IGetConversationRequest {

                    /** GetConversationRequest name */
                    name?: (string|null);
                }

                /** Represents a GetConversationRequest. */
                class GetConversationRequest implements IGetConversationRequest {

                    /**
                     * Constructs a new GetConversationRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IGetConversationRequest);

                    /** GetConversationRequest name. */
                    public name: string;

                    /**
                     * Creates a new GetConversationRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetConversationRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IGetConversationRequest): google.cloud.dialogflow.v2.GetConversationRequest;

                    /**
                     * Encodes the specified GetConversationRequest message. Does not implicitly {@link google.cloud.dialogflow.v2.GetConversationRequest.verify|verify} messages.
                     * @param message GetConversationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IGetConversationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetConversationRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.GetConversationRequest.verify|verify} messages.
                     * @param message GetConversationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.IGetConversationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetConversationRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetConversationRequest
                     * @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.cloud.dialogflow.v2.GetConversationRequest;

                    /**
                     * Decodes a GetConversationRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetConversationRequest
                     * @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.cloud.dialogflow.v2.GetConversationRequest;

                    /**
                     * Verifies a GetConversationRequest 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 GetConversationRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetConversationRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.GetConversationRequest;

                    /**
                     * Creates a plain object from a GetConversationRequest message. Also converts values to other types if specified.
                     * @param message GetConversationRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.GetConversationRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetConversationRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetConversationRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a CompleteConversationRequest. */
                interface ICompleteConversationRequest {

                    /** CompleteConversationRequest name */
                    name?: (string|null);
                }

                /** Represents a CompleteConversationRequest. */
                class CompleteConversationRequest implements ICompleteConversationRequest {

                    /**
                     * Constructs a new CompleteConversationRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.ICompleteConversationRequest);

                    /** CompleteConversationRequest name. */
                    public name: string;

                    /**
                     * Creates a new CompleteConversationRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CompleteConversationRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.ICompleteConversationRequest): google.cloud.dialogflow.v2.CompleteConversationRequest;

                    /**
                     * Encodes the specified CompleteConversationRequest message. Does not implicitly {@link google.cloud.dialogflow.v2.CompleteConversationRequest.verify|verify} messages.
                     * @param message CompleteConversationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.ICompleteConversationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CompleteConversationRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.CompleteConversationRequest.verify|verify} messages.
                     * @param message CompleteConversationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.ICompleteConversationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CompleteConversationRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CompleteConversationRequest
                     * @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.cloud.dialogflow.v2.CompleteConversationRequest;

                    /**
                     * Decodes a CompleteConversationRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CompleteConversationRequest
                     * @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.cloud.dialogflow.v2.CompleteConversationRequest;

                    /**
                     * Verifies a CompleteConversationRequest 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 CompleteConversationRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CompleteConversationRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.CompleteConversationRequest;

                    /**
                     * Creates a plain object from a CompleteConversationRequest message. Also converts values to other types if specified.
                     * @param message CompleteConversationRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.CompleteConversationRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CompleteConversationRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CompleteConversationRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListMessagesRequest. */
                interface IListMessagesRequest {

                    /** ListMessagesRequest parent */
                    parent?: (string|null);

                    /** ListMessagesRequest filter */
                    filter?: (string|null);

                    /** ListMessagesRequest pageSize */
                    pageSize?: (number|null);

                    /** ListMessagesRequest pageToken */
                    pageToken?: (string|null);
                }

                /** Represents a ListMessagesRequest. */
                class ListMessagesRequest implements IListMessagesRequest {

                    /**
                     * Constructs a new ListMessagesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IListMessagesRequest);

                    /** ListMessagesRequest parent. */
                    public parent: string;

                    /** ListMessagesRequest filter. */
                    public filter: string;

                    /** ListMessagesRequest pageSize. */
                    public pageSize: number;

                    /** ListMessagesRequest pageToken. */
                    public pageToken: string;

                    /**
                     * Creates a new ListMessagesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListMessagesRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IListMessagesRequest): google.cloud.dialogflow.v2.ListMessagesRequest;

                    /**
                     * Encodes the specified ListMessagesRequest message. Does not implicitly {@link google.cloud.dialogflow.v2.ListMessagesRequest.verify|verify} messages.
                     * @param message ListMessagesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IListMessagesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListMessagesRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.ListMessagesRequest.verify|verify} messages.
                     * @param message ListMessagesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.IListMessagesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListMessagesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListMessagesRequest
                     * @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.cloud.dialogflow.v2.ListMessagesRequest;

                    /**
                     * Decodes a ListMessagesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListMessagesRequest
                     * @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.cloud.dialogflow.v2.ListMessagesRequest;

                    /**
                     * Verifies a ListMessagesRequest 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 ListMessagesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListMessagesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.ListMessagesRequest;

                    /**
                     * Creates a plain object from a ListMessagesRequest message. Also converts values to other types if specified.
                     * @param message ListMessagesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.ListMessagesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListMessagesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListMessagesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListMessagesResponse. */
                interface IListMessagesResponse {

                    /** ListMessagesResponse messages */
                    messages?: (google.cloud.dialogflow.v2.IMessage[]|null);

                    /** ListMessagesResponse nextPageToken */
                    nextPageToken?: (string|null);
                }

                /** Represents a ListMessagesResponse. */
                class ListMessagesResponse implements IListMessagesResponse {

                    /**
                     * Constructs a new ListMessagesResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IListMessagesResponse);

                    /** ListMessagesResponse messages. */
                    public messages: google.cloud.dialogflow.v2.IMessage[];

                    /** ListMessagesResponse nextPageToken. */
                    public nextPageToken: string;

                    /**
                     * Creates a new ListMessagesResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListMessagesResponse instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IListMessagesResponse): google.cloud.dialogflow.v2.ListMessagesResponse;

                    /**
                     * Encodes the specified ListMessagesResponse message. Does not implicitly {@link google.cloud.dialogflow.v2.ListMessagesResponse.verify|verify} messages.
                     * @param message ListMessagesResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IListMessagesResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListMessagesResponse message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.ListMessagesResponse.verify|verify} messages.
                     * @param message ListMessagesResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.IListMessagesResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListMessagesResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListMessagesResponse
                     * @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.cloud.dialogflow.v2.ListMessagesResponse;

                    /**
                     * Decodes a ListMessagesResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListMessagesResponse
                     * @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.cloud.dialogflow.v2.ListMessagesResponse;

                    /**
                     * Verifies a ListMessagesResponse 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 ListMessagesResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListMessagesResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.ListMessagesResponse;

                    /**
                     * Creates a plain object from a ListMessagesResponse message. Also converts values to other types if specified.
                     * @param message ListMessagesResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.ListMessagesResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListMessagesResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListMessagesResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ConversationPhoneNumber. */
                interface IConversationPhoneNumber {

                    /** ConversationPhoneNumber countryCode */
                    countryCode?: (number|null);

                    /** ConversationPhoneNumber phoneNumber */
                    phoneNumber?: (string|null);
                }

                /** Represents a ConversationPhoneNumber. */
                class ConversationPhoneNumber implements IConversationPhoneNumber {

                    /**
                     * Constructs a new ConversationPhoneNumber.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IConversationPhoneNumber);

                    /** ConversationPhoneNumber countryCode. */
                    public countryCode: number;

                    /** ConversationPhoneNumber phoneNumber. */
                    public phoneNumber: string;

                    /**
                     * Creates a new ConversationPhoneNumber instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ConversationPhoneNumber instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IConversationPhoneNumber): google.cloud.dialogflow.v2.ConversationPhoneNumber;

                    /**
                     * Encodes the specified ConversationPhoneNumber message. Does not implicitly {@link google.cloud.dialogflow.v2.ConversationPhoneNumber.verify|verify} messages.
                     * @param message ConversationPhoneNumber message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IConversationPhoneNumber, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ConversationPhoneNumber message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.ConversationPhoneNumber.verify|verify} messages.
                     * @param message ConversationPhoneNumber message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.IConversationPhoneNumber, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ConversationPhoneNumber message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ConversationPhoneNumber
                     * @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.cloud.dialogflow.v2.ConversationPhoneNumber;

                    /**
                     * Decodes a ConversationPhoneNumber message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ConversationPhoneNumber
                     * @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.cloud.dialogflow.v2.ConversationPhoneNumber;

                    /**
                     * Verifies a ConversationPhoneNumber 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 ConversationPhoneNumber message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ConversationPhoneNumber
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.ConversationPhoneNumber;

                    /**
                     * Creates a plain object from a ConversationPhoneNumber message. Also converts values to other types if specified.
                     * @param message ConversationPhoneNumber
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.ConversationPhoneNumber, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ConversationPhoneNumber to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ConversationPhoneNumber
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an IngestContextReferencesRequest. */
                interface IIngestContextReferencesRequest {

                    /** IngestContextReferencesRequest conversation */
                    conversation?: (string|null);

                    /** IngestContextReferencesRequest contextReferences */
                    contextReferences?: ({ [k: string]: google.cloud.dialogflow.v2.Conversation.IContextReference }|null);
                }

                /** Represents an IngestContextReferencesRequest. */
                class IngestContextReferencesRequest implements IIngestContextReferencesRequest {

                    /**
                     * Constructs a new IngestContextReferencesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IIngestContextReferencesRequest);

                    /** IngestContextReferencesRequest conversation. */
                    public conversation: string;

                    /** IngestContextReferencesRequest contextReferences. */
                    public contextReferences: { [k: string]: google.cloud.dialogflow.v2.Conversation.IContextReference };

                    /**
                     * Creates a new IngestContextReferencesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns IngestContextReferencesRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IIngestContextReferencesRequest): google.cloud.dialogflow.v2.IngestContextReferencesRequest;

                    /**
                     * Encodes the specified IngestContextReferencesRequest message. Does not implicitly {@link google.cloud.dialogflow.v2.IngestContextReferencesRequest.verify|verify} messages.
                     * @param message IngestContextReferencesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IIngestContextReferencesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified IngestContextReferencesRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.IngestContextReferencesRequest.verify|verify} messages.
                     * @param message IngestContextReferencesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.IIngestContextReferencesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an IngestContextReferencesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns IngestContextReferencesRequest
                     * @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.cloud.dialogflow.v2.IngestContextReferencesRequest;

                    /**
                     * Decodes an IngestContextReferencesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns IngestContextReferencesRequest
                     * @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.cloud.dialogflow.v2.IngestContextReferencesRequest;

                    /**
                     * Verifies an IngestContextReferencesRequest 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 IngestContextReferencesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns IngestContextReferencesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.IngestContextReferencesRequest;

                    /**
                     * Creates a plain object from an IngestContextReferencesRequest message. Also converts values to other types if specified.
                     * @param message IngestContextReferencesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.IngestContextReferencesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this IngestContextReferencesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for IngestContextReferencesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an IngestContextReferencesResponse. */
                interface IIngestContextReferencesResponse {

                    /** IngestContextReferencesResponse ingestedContextReferences */
                    ingestedContextReferences?: ({ [k: string]: google.cloud.dialogflow.v2.Conversation.IContextReference }|null);
                }

                /** Represents an IngestContextReferencesResponse. */
                class IngestContextReferencesResponse implements IIngestContextReferencesResponse {

                    /**
                     * Constructs a new IngestContextReferencesResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IIngestContextReferencesResponse);

                    /** IngestContextReferencesResponse ingestedContextReferences. */
                    public ingestedContextReferences: { [k: string]: google.cloud.dialogflow.v2.Conversation.IContextReference };

                    /**
                     * Creates a new IngestContextReferencesResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns IngestContextReferencesResponse instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IIngestContextReferencesResponse): google.cloud.dialogflow.v2.IngestContextReferencesResponse;

                    /**
                     * Encodes the specified IngestContextReferencesResponse message. Does not implicitly {@link google.cloud.dialogflow.v2.IngestContextReferencesResponse.verify|verify} messages.
                     * @param message IngestContextReferencesResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IIngestContextReferencesResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified IngestContextReferencesResponse message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.IngestContextReferencesResponse.verify|verify} messages.
                     * @param message IngestContextReferencesResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.IIngestContextReferencesResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an IngestContextReferencesResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns IngestContextReferencesResponse
                     * @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.cloud.dialogflow.v2.IngestContextReferencesResponse;

                    /**
                     * Decodes an IngestContextReferencesResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns IngestContextReferencesResponse
                     * @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.cloud.dialogflow.v2.IngestContextReferencesResponse;

                    /**
                     * Verifies an IngestContextReferencesResponse 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 IngestContextReferencesResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns IngestContextReferencesResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.IngestContextReferencesResponse;

                    /**
                     * Creates a plain object from an IngestContextReferencesResponse message. Also converts values to other types if specified.
                     * @param message IngestContextReferencesResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.IngestContextReferencesResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this IngestContextReferencesResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for IngestContextReferencesResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SuggestConversationSummaryRequest. */
                interface ISuggestConversationSummaryRequest {

                    /** SuggestConversationSummaryRequest conversation */
                    conversation?: (string|null);

                    /** SuggestConversationSummaryRequest latestMessage */
                    latestMessage?: (string|null);

                    /** SuggestConversationSummaryRequest contextSize */
                    contextSize?: (number|null);

                    /** SuggestConversationSummaryRequest assistQueryParams */
                    assistQueryParams?: (google.cloud.dialogflow.v2.IAssistQueryParameters|null);
                }

                /** Represents a SuggestConversationSummaryRequest. */
                class SuggestConversationSummaryRequest implements ISuggestConversationSummaryRequest {

                    /**
                     * Constructs a new SuggestConversationSummaryRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.ISuggestConversationSummaryRequest);

                    /** SuggestConversationSummaryRequest conversation. */
                    public conversation: string;

                    /** SuggestConversationSummaryRequest latestMessage. */
                    public latestMessage: string;

                    /** SuggestConversationSummaryRequest contextSize. */
                    public contextSize: number;

                    /** SuggestConversationSummaryRequest assistQueryParams. */
                    public assistQueryParams?: (google.cloud.dialogflow.v2.IAssistQueryParameters|null);

                    /**
                     * Creates a new SuggestConversationSummaryRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SuggestConversationSummaryRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.ISuggestConversationSummaryRequest): google.cloud.dialogflow.v2.SuggestConversationSummaryRequest;

                    /**
                     * Encodes the specified SuggestConversationSummaryRequest message. Does not implicitly {@link google.cloud.dialogflow.v2.SuggestConversationSummaryRequest.verify|verify} messages.
                     * @param message SuggestConversationSummaryRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.ISuggestConversationSummaryRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SuggestConversationSummaryRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.SuggestConversationSummaryRequest.verify|verify} messages.
                     * @param message SuggestConversationSummaryRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.ISuggestConversationSummaryRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SuggestConversationSummaryRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SuggestConversationSummaryRequest
                     * @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.cloud.dialogflow.v2.SuggestConversationSummaryRequest;

                    /**
                     * Decodes a SuggestConversationSummaryRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SuggestConversationSummaryRequest
                     * @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.cloud.dialogflow.v2.SuggestConversationSummaryRequest;

                    /**
                     * Verifies a SuggestConversationSummaryRequest 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 SuggestConversationSummaryRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SuggestConversationSummaryRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.SuggestConversationSummaryRequest;

                    /**
                     * Creates a plain object from a SuggestConversationSummaryRequest message. Also converts values to other types if specified.
                     * @param message SuggestConversationSummaryRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.SuggestConversationSummaryRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SuggestConversationSummaryRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SuggestConversationSummaryRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SuggestConversationSummaryResponse. */
                interface ISuggestConversationSummaryResponse {

                    /** SuggestConversationSummaryResponse summary */
                    summary?: (google.cloud.dialogflow.v2.SuggestConversationSummaryResponse.ISummary|null);

                    /** SuggestConversationSummaryResponse latestMessage */
                    latestMessage?: (string|null);

                    /** SuggestConversationSummaryResponse contextSize */
                    contextSize?: (number|null);
                }

                /** Represents a SuggestConversationSummaryResponse. */
                class SuggestConversationSummaryResponse implements ISuggestConversationSummaryResponse {

                    /**
                     * Constructs a new SuggestConversationSummaryResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.ISuggestConversationSummaryResponse);

                    /** SuggestConversationSummaryResponse summary. */
                    public summary?: (google.cloud.dialogflow.v2.SuggestConversationSummaryResponse.ISummary|null);

                    /** SuggestConversationSummaryResponse latestMessage. */
                    public latestMessage: string;

                    /** SuggestConversationSummaryResponse contextSize. */
                    public contextSize: number;

                    /**
                     * Creates a new SuggestConversationSummaryResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SuggestConversationSummaryResponse instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.ISuggestConversationSummaryResponse): google.cloud.dialogflow.v2.SuggestConversationSummaryResponse;

                    /**
                     * Encodes the specified SuggestConversationSummaryResponse message. Does not implicitly {@link google.cloud.dialogflow.v2.SuggestConversationSummaryResponse.verify|verify} messages.
                     * @param message SuggestConversationSummaryResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.ISuggestConversationSummaryResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SuggestConversationSummaryResponse message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.SuggestConversationSummaryResponse.verify|verify} messages.
                     * @param message SuggestConversationSummaryResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.ISuggestConversationSummaryResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SuggestConversationSummaryResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SuggestConversationSummaryResponse
                     * @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.cloud.dialogflow.v2.SuggestConversationSummaryResponse;

                    /**
                     * Decodes a SuggestConversationSummaryResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SuggestConversationSummaryResponse
                     * @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.cloud.dialogflow.v2.SuggestConversationSummaryResponse;

                    /**
                     * Verifies a SuggestConversationSummaryResponse 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 SuggestConversationSummaryResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SuggestConversationSummaryResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.SuggestConversationSummaryResponse;

                    /**
                     * Creates a plain object from a SuggestConversationSummaryResponse message. Also converts values to other types if specified.
                     * @param message SuggestConversationSummaryResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.SuggestConversationSummaryResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SuggestConversationSummaryResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SuggestConversationSummaryResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace SuggestConversationSummaryResponse {

                    /** Properties of a Summary. */
                    interface ISummary {

                        /** Summary text */
                        text?: (string|null);

                        /** Summary textSections */
                        textSections?: ({ [k: string]: string }|null);

                        /** Summary sortedTextSections */
                        sortedTextSections?: (google.cloud.dialogflow.v2.SuggestConversationSummaryResponse.Summary.ISummarySection[]|null);

                        /** Summary answerRecord */
                        answerRecord?: (string|null);

                        /** Summary baselineModelVersion */
                        baselineModelVersion?: (string|null);
                    }

                    /** Represents a Summary. */
                    class Summary implements ISummary {

                        /**
                         * Constructs a new Summary.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2.SuggestConversationSummaryResponse.ISummary);

                        /** Summary text. */
                        public text: string;

                        /** Summary textSections. */
                        public textSections: { [k: string]: string };

                        /** Summary sortedTextSections. */
                        public sortedTextSections: google.cloud.dialogflow.v2.SuggestConversationSummaryResponse.Summary.ISummarySection[];

                        /** Summary answerRecord. */
                        public answerRecord: string;

                        /** Summary baselineModelVersion. */
                        public baselineModelVersion: string;

                        /**
                         * Creates a new Summary instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns Summary instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2.SuggestConversationSummaryResponse.ISummary): google.cloud.dialogflow.v2.SuggestConversationSummaryResponse.Summary;

                        /**
                         * Encodes the specified Summary message. Does not implicitly {@link google.cloud.dialogflow.v2.SuggestConversationSummaryResponse.Summary.verify|verify} messages.
                         * @param message Summary message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2.SuggestConversationSummaryResponse.ISummary, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified Summary message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.SuggestConversationSummaryResponse.Summary.verify|verify} messages.
                         * @param message Summary message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2.SuggestConversationSummaryResponse.ISummary, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a Summary message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns Summary
                         * @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.cloud.dialogflow.v2.SuggestConversationSummaryResponse.Summary;

                        /**
                         * Decodes a Summary message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns Summary
                         * @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.cloud.dialogflow.v2.SuggestConversationSummaryResponse.Summary;

                        /**
                         * Verifies a Summary 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 Summary message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns Summary
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.SuggestConversationSummaryResponse.Summary;

                        /**
                         * Creates a plain object from a Summary message. Also converts values to other types if specified.
                         * @param message Summary
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.dialogflow.v2.SuggestConversationSummaryResponse.Summary, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this Summary to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for Summary
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    namespace Summary {

                        /** Properties of a SummarySection. */
                        interface ISummarySection {

                            /** SummarySection section */
                            section?: (string|null);

                            /** SummarySection summary */
                            summary?: (string|null);
                        }

                        /** Represents a SummarySection. */
                        class SummarySection implements ISummarySection {

                            /**
                             * Constructs a new SummarySection.
                             * @param [properties] Properties to set
                             */
                            constructor(properties?: google.cloud.dialogflow.v2.SuggestConversationSummaryResponse.Summary.ISummarySection);

                            /** SummarySection section. */
                            public section: string;

                            /** SummarySection summary. */
                            public summary: string;

                            /**
                             * Creates a new SummarySection instance using the specified properties.
                             * @param [properties] Properties to set
                             * @returns SummarySection instance
                             */
                            public static create(properties?: google.cloud.dialogflow.v2.SuggestConversationSummaryResponse.Summary.ISummarySection): google.cloud.dialogflow.v2.SuggestConversationSummaryResponse.Summary.SummarySection;

                            /**
                             * Encodes the specified SummarySection message. Does not implicitly {@link google.cloud.dialogflow.v2.SuggestConversationSummaryResponse.Summary.SummarySection.verify|verify} messages.
                             * @param message SummarySection message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encode(message: google.cloud.dialogflow.v2.SuggestConversationSummaryResponse.Summary.ISummarySection, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Encodes the specified SummarySection message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.SuggestConversationSummaryResponse.Summary.SummarySection.verify|verify} messages.
                             * @param message SummarySection message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encodeDelimited(message: google.cloud.dialogflow.v2.SuggestConversationSummaryResponse.Summary.ISummarySection, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Decodes a SummarySection message from the specified reader or buffer.
                             * @param reader Reader or buffer to decode from
                             * @param [length] Message length if known beforehand
                             * @returns SummarySection
                             * @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.cloud.dialogflow.v2.SuggestConversationSummaryResponse.Summary.SummarySection;

                            /**
                             * Decodes a SummarySection message from the specified reader or buffer, length delimited.
                             * @param reader Reader or buffer to decode from
                             * @returns SummarySection
                             * @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.cloud.dialogflow.v2.SuggestConversationSummaryResponse.Summary.SummarySection;

                            /**
                             * Verifies a SummarySection 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 SummarySection message from a plain object. Also converts values to their respective internal types.
                             * @param object Plain object
                             * @returns SummarySection
                             */
                            public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.SuggestConversationSummaryResponse.Summary.SummarySection;

                            /**
                             * Creates a plain object from a SummarySection message. Also converts values to other types if specified.
                             * @param message SummarySection
                             * @param [options] Conversion options
                             * @returns Plain object
                             */
                            public static toObject(message: google.cloud.dialogflow.v2.SuggestConversationSummaryResponse.Summary.SummarySection, options?: $protobuf.IConversionOptions): { [k: string]: any };

                            /**
                             * Converts this SummarySection to JSON.
                             * @returns JSON object
                             */
                            public toJSON(): { [k: string]: any };

                            /**
                             * Gets the default type url for SummarySection
                             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                             * @returns The default type url
                             */
                            public static getTypeUrl(typeUrlPrefix?: string): string;
                        }
                    }
                }

                /** Properties of a GenerateStatelessSummaryRequest. */
                interface IGenerateStatelessSummaryRequest {

                    /** GenerateStatelessSummaryRequest statelessConversation */
                    statelessConversation?: (google.cloud.dialogflow.v2.GenerateStatelessSummaryRequest.IMinimalConversation|null);

                    /** GenerateStatelessSummaryRequest conversationProfile */
                    conversationProfile?: (google.cloud.dialogflow.v2.IConversationProfile|null);

                    /** GenerateStatelessSummaryRequest latestMessage */
                    latestMessage?: (string|null);

                    /** GenerateStatelessSummaryRequest maxContextSize */
                    maxContextSize?: (number|null);
                }

                /** Represents a GenerateStatelessSummaryRequest. */
                class GenerateStatelessSummaryRequest implements IGenerateStatelessSummaryRequest {

                    /**
                     * Constructs a new GenerateStatelessSummaryRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IGenerateStatelessSummaryRequest);

                    /** GenerateStatelessSummaryRequest statelessConversation. */
                    public statelessConversation?: (google.cloud.dialogflow.v2.GenerateStatelessSummaryRequest.IMinimalConversation|null);

                    /** GenerateStatelessSummaryRequest conversationProfile. */
                    public conversationProfile?: (google.cloud.dialogflow.v2.IConversationProfile|null);

                    /** GenerateStatelessSummaryRequest latestMessage. */
                    public latestMessage: string;

                    /** GenerateStatelessSummaryRequest maxContextSize. */
                    public maxContextSize: number;

                    /**
                     * Creates a new GenerateStatelessSummaryRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GenerateStatelessSummaryRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IGenerateStatelessSummaryRequest): google.cloud.dialogflow.v2.GenerateStatelessSummaryRequest;

                    /**
                     * Encodes the specified GenerateStatelessSummaryRequest message. Does not implicitly {@link google.cloud.dialogflow.v2.GenerateStatelessSummaryRequest.verify|verify} messages.
                     * @param message GenerateStatelessSummaryRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IGenerateStatelessSummaryRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GenerateStatelessSummaryRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.GenerateStatelessSummaryRequest.verify|verify} messages.
                     * @param message GenerateStatelessSummaryRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.IGenerateStatelessSummaryRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GenerateStatelessSummaryRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GenerateStatelessSummaryRequest
                     * @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.cloud.dialogflow.v2.GenerateStatelessSummaryRequest;

                    /**
                     * Decodes a GenerateStatelessSummaryRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GenerateStatelessSummaryRequest
                     * @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.cloud.dialogflow.v2.GenerateStatelessSummaryRequest;

                    /**
                     * Verifies a GenerateStatelessSummaryRequest 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 GenerateStatelessSummaryRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GenerateStatelessSummaryRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.GenerateStatelessSummaryRequest;

                    /**
                     * Creates a plain object from a GenerateStatelessSummaryRequest message. Also converts values to other types if specified.
                     * @param message GenerateStatelessSummaryRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.GenerateStatelessSummaryRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GenerateStatelessSummaryRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GenerateStatelessSummaryRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace GenerateStatelessSummaryRequest {

                    /** Properties of a MinimalConversation. */
                    interface IMinimalConversation {

                        /** MinimalConversation messages */
                        messages?: (google.cloud.dialogflow.v2.IMessage[]|null);

                        /** MinimalConversation parent */
                        parent?: (string|null);
                    }

                    /** Represents a MinimalConversation. */
                    class MinimalConversation implements IMinimalConversation {

                        /**
                         * Constructs a new MinimalConversation.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2.GenerateStatelessSummaryRequest.IMinimalConversation);

                        /** MinimalConversation messages. */
                        public messages: google.cloud.dialogflow.v2.IMessage[];

                        /** MinimalConversation parent. */
                        public parent: string;

                        /**
                         * Creates a new MinimalConversation instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns MinimalConversation instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2.GenerateStatelessSummaryRequest.IMinimalConversation): google.cloud.dialogflow.v2.GenerateStatelessSummaryRequest.MinimalConversation;

                        /**
                         * Encodes the specified MinimalConversation message. Does not implicitly {@link google.cloud.dialogflow.v2.GenerateStatelessSummaryRequest.MinimalConversation.verify|verify} messages.
                         * @param message MinimalConversation message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2.GenerateStatelessSummaryRequest.IMinimalConversation, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified MinimalConversation message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.GenerateStatelessSummaryRequest.MinimalConversation.verify|verify} messages.
                         * @param message MinimalConversation message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2.GenerateStatelessSummaryRequest.IMinimalConversation, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a MinimalConversation message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns MinimalConversation
                         * @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.cloud.dialogflow.v2.GenerateStatelessSummaryRequest.MinimalConversation;

                        /**
                         * Decodes a MinimalConversation message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns MinimalConversation
                         * @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.cloud.dialogflow.v2.GenerateStatelessSummaryRequest.MinimalConversation;

                        /**
                         * Verifies a MinimalConversation 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 MinimalConversation message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns MinimalConversation
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.GenerateStatelessSummaryRequest.MinimalConversation;

                        /**
                         * Creates a plain object from a MinimalConversation message. Also converts values to other types if specified.
                         * @param message MinimalConversation
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.dialogflow.v2.GenerateStatelessSummaryRequest.MinimalConversation, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this MinimalConversation to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for MinimalConversation
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }
                }

                /** Properties of a GenerateStatelessSummaryResponse. */
                interface IGenerateStatelessSummaryResponse {

                    /** GenerateStatelessSummaryResponse summary */
                    summary?: (google.cloud.dialogflow.v2.GenerateStatelessSummaryResponse.ISummary|null);

                    /** GenerateStatelessSummaryResponse latestMessage */
                    latestMessage?: (string|null);

                    /** GenerateStatelessSummaryResponse contextSize */
                    contextSize?: (number|null);
                }

                /** Represents a GenerateStatelessSummaryResponse. */
                class GenerateStatelessSummaryResponse implements IGenerateStatelessSummaryResponse {

                    /**
                     * Constructs a new GenerateStatelessSummaryResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IGenerateStatelessSummaryResponse);

                    /** GenerateStatelessSummaryResponse summary. */
                    public summary?: (google.cloud.dialogflow.v2.GenerateStatelessSummaryResponse.ISummary|null);

                    /** GenerateStatelessSummaryResponse latestMessage. */
                    public latestMessage: string;

                    /** GenerateStatelessSummaryResponse contextSize. */
                    public contextSize: number;

                    /**
                     * Creates a new GenerateStatelessSummaryResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GenerateStatelessSummaryResponse instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IGenerateStatelessSummaryResponse): google.cloud.dialogflow.v2.GenerateStatelessSummaryResponse;

                    /**
                     * Encodes the specified GenerateStatelessSummaryResponse message. Does not implicitly {@link google.cloud.dialogflow.v2.GenerateStatelessSummaryResponse.verify|verify} messages.
                     * @param message GenerateStatelessSummaryResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IGenerateStatelessSummaryResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GenerateStatelessSummaryResponse message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.GenerateStatelessSummaryResponse.verify|verify} messages.
                     * @param message GenerateStatelessSummaryResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.IGenerateStatelessSummaryResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GenerateStatelessSummaryResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GenerateStatelessSummaryResponse
                     * @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.cloud.dialogflow.v2.GenerateStatelessSummaryResponse;

                    /**
                     * Decodes a GenerateStatelessSummaryResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GenerateStatelessSummaryResponse
                     * @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.cloud.dialogflow.v2.GenerateStatelessSummaryResponse;

                    /**
                     * Verifies a GenerateStatelessSummaryResponse 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 GenerateStatelessSummaryResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GenerateStatelessSummaryResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.GenerateStatelessSummaryResponse;

                    /**
                     * Creates a plain object from a GenerateStatelessSummaryResponse message. Also converts values to other types if specified.
                     * @param message GenerateStatelessSummaryResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.GenerateStatelessSummaryResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GenerateStatelessSummaryResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GenerateStatelessSummaryResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace GenerateStatelessSummaryResponse {

                    /** Properties of a Summary. */
                    interface ISummary {

                        /** Summary text */
                        text?: (string|null);

                        /** Summary textSections */
                        textSections?: ({ [k: string]: string }|null);

                        /** Summary baselineModelVersion */
                        baselineModelVersion?: (string|null);
                    }

                    /** Represents a Summary. */
                    class Summary implements ISummary {

                        /**
                         * Constructs a new Summary.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2.GenerateStatelessSummaryResponse.ISummary);

                        /** Summary text. */
                        public text: string;

                        /** Summary textSections. */
                        public textSections: { [k: string]: string };

                        /** Summary baselineModelVersion. */
                        public baselineModelVersion: string;

                        /**
                         * Creates a new Summary instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns Summary instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2.GenerateStatelessSummaryResponse.ISummary): google.cloud.dialogflow.v2.GenerateStatelessSummaryResponse.Summary;

                        /**
                         * Encodes the specified Summary message. Does not implicitly {@link google.cloud.dialogflow.v2.GenerateStatelessSummaryResponse.Summary.verify|verify} messages.
                         * @param message Summary message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2.GenerateStatelessSummaryResponse.ISummary, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified Summary message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.GenerateStatelessSummaryResponse.Summary.verify|verify} messages.
                         * @param message Summary message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2.GenerateStatelessSummaryResponse.ISummary, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a Summary message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns Summary
                         * @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.cloud.dialogflow.v2.GenerateStatelessSummaryResponse.Summary;

                        /**
                         * Decodes a Summary message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns Summary
                         * @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.cloud.dialogflow.v2.GenerateStatelessSummaryResponse.Summary;

                        /**
                         * Verifies a Summary 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 Summary message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns Summary
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.GenerateStatelessSummaryResponse.Summary;

                        /**
                         * Creates a plain object from a Summary message. Also converts values to other types if specified.
                         * @param message Summary
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.dialogflow.v2.GenerateStatelessSummaryResponse.Summary, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this Summary to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for Summary
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }
                }

                /** Properties of a GenerateStatelessSuggestionRequest. */
                interface IGenerateStatelessSuggestionRequest {

                    /** GenerateStatelessSuggestionRequest parent */
                    parent?: (string|null);

                    /** GenerateStatelessSuggestionRequest generator */
                    generator?: (google.cloud.dialogflow.v2.IGenerator|null);

                    /** GenerateStatelessSuggestionRequest generatorName */
                    generatorName?: (string|null);

                    /** GenerateStatelessSuggestionRequest contextReferences */
                    contextReferences?: ({ [k: string]: google.cloud.dialogflow.v2.Conversation.IContextReference }|null);

                    /** GenerateStatelessSuggestionRequest conversationContext */
                    conversationContext?: (google.cloud.dialogflow.v2.IConversationContext|null);

                    /** GenerateStatelessSuggestionRequest triggerEvents */
                    triggerEvents?: (google.cloud.dialogflow.v2.TriggerEvent[]|null);

                    /** GenerateStatelessSuggestionRequest securitySettings */
                    securitySettings?: (string|null);
                }

                /** Represents a GenerateStatelessSuggestionRequest. */
                class GenerateStatelessSuggestionRequest implements IGenerateStatelessSuggestionRequest {

                    /**
                     * Constructs a new GenerateStatelessSuggestionRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IGenerateStatelessSuggestionRequest);

                    /** GenerateStatelessSuggestionRequest parent. */
                    public parent: string;

                    /** GenerateStatelessSuggestionRequest generator. */
                    public generator?: (google.cloud.dialogflow.v2.IGenerator|null);

                    /** GenerateStatelessSuggestionRequest generatorName. */
                    public generatorName?: (string|null);

                    /** GenerateStatelessSuggestionRequest contextReferences. */
                    public contextReferences: { [k: string]: google.cloud.dialogflow.v2.Conversation.IContextReference };

                    /** GenerateStatelessSuggestionRequest conversationContext. */
                    public conversationContext?: (google.cloud.dialogflow.v2.IConversationContext|null);

                    /** GenerateStatelessSuggestionRequest triggerEvents. */
                    public triggerEvents: google.cloud.dialogflow.v2.TriggerEvent[];

                    /** GenerateStatelessSuggestionRequest securitySettings. */
                    public securitySettings: string;

                    /** GenerateStatelessSuggestionRequest generatorResource. */
                    public generatorResource?: ("generator"|"generatorName");

                    /**
                     * Creates a new GenerateStatelessSuggestionRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GenerateStatelessSuggestionRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IGenerateStatelessSuggestionRequest): google.cloud.dialogflow.v2.GenerateStatelessSuggestionRequest;

                    /**
                     * Encodes the specified GenerateStatelessSuggestionRequest message. Does not implicitly {@link google.cloud.dialogflow.v2.GenerateStatelessSuggestionRequest.verify|verify} messages.
                     * @param message GenerateStatelessSuggestionRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IGenerateStatelessSuggestionRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GenerateStatelessSuggestionRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.GenerateStatelessSuggestionRequest.verify|verify} messages.
                     * @param message GenerateStatelessSuggestionRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.IGenerateStatelessSuggestionRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GenerateStatelessSuggestionRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GenerateStatelessSuggestionRequest
                     * @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.cloud.dialogflow.v2.GenerateStatelessSuggestionRequest;

                    /**
                     * Decodes a GenerateStatelessSuggestionRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GenerateStatelessSuggestionRequest
                     * @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.cloud.dialogflow.v2.GenerateStatelessSuggestionRequest;

                    /**
                     * Verifies a GenerateStatelessSuggestionRequest 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 GenerateStatelessSuggestionRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GenerateStatelessSuggestionRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.GenerateStatelessSuggestionRequest;

                    /**
                     * Creates a plain object from a GenerateStatelessSuggestionRequest message. Also converts values to other types if specified.
                     * @param message GenerateStatelessSuggestionRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.GenerateStatelessSuggestionRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GenerateStatelessSuggestionRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GenerateStatelessSuggestionRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GenerateStatelessSuggestionResponse. */
                interface IGenerateStatelessSuggestionResponse {

                    /** GenerateStatelessSuggestionResponse generatorSuggestion */
                    generatorSuggestion?: (google.cloud.dialogflow.v2.IGeneratorSuggestion|null);
                }

                /** Represents a GenerateStatelessSuggestionResponse. */
                class GenerateStatelessSuggestionResponse implements IGenerateStatelessSuggestionResponse {

                    /**
                     * Constructs a new GenerateStatelessSuggestionResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IGenerateStatelessSuggestionResponse);

                    /** GenerateStatelessSuggestionResponse generatorSuggestion. */
                    public generatorSuggestion?: (google.cloud.dialogflow.v2.IGeneratorSuggestion|null);

                    /**
                     * Creates a new GenerateStatelessSuggestionResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GenerateStatelessSuggestionResponse instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IGenerateStatelessSuggestionResponse): google.cloud.dialogflow.v2.GenerateStatelessSuggestionResponse;

                    /**
                     * Encodes the specified GenerateStatelessSuggestionResponse message. Does not implicitly {@link google.cloud.dialogflow.v2.GenerateStatelessSuggestionResponse.verify|verify} messages.
                     * @param message GenerateStatelessSuggestionResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IGenerateStatelessSuggestionResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GenerateStatelessSuggestionResponse message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.GenerateStatelessSuggestionResponse.verify|verify} messages.
                     * @param message GenerateStatelessSuggestionResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.IGenerateStatelessSuggestionResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GenerateStatelessSuggestionResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GenerateStatelessSuggestionResponse
                     * @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.cloud.dialogflow.v2.GenerateStatelessSuggestionResponse;

                    /**
                     * Decodes a GenerateStatelessSuggestionResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GenerateStatelessSuggestionResponse
                     * @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.cloud.dialogflow.v2.GenerateStatelessSuggestionResponse;

                    /**
                     * Verifies a GenerateStatelessSuggestionResponse 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 GenerateStatelessSuggestionResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GenerateStatelessSuggestionResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.GenerateStatelessSuggestionResponse;

                    /**
                     * Creates a plain object from a GenerateStatelessSuggestionResponse message. Also converts values to other types if specified.
                     * @param message GenerateStatelessSuggestionResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.GenerateStatelessSuggestionResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GenerateStatelessSuggestionResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GenerateStatelessSuggestionResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SearchKnowledgeRequest. */
                interface ISearchKnowledgeRequest {

                    /** SearchKnowledgeRequest parent */
                    parent?: (string|null);

                    /** SearchKnowledgeRequest query */
                    query?: (google.cloud.dialogflow.v2.ITextInput|null);

                    /** SearchKnowledgeRequest conversationProfile */
                    conversationProfile?: (string|null);

                    /** SearchKnowledgeRequest sessionId */
                    sessionId?: (string|null);

                    /** SearchKnowledgeRequest conversation */
                    conversation?: (string|null);

                    /** SearchKnowledgeRequest latestMessage */
                    latestMessage?: (string|null);

                    /** SearchKnowledgeRequest querySource */
                    querySource?: (google.cloud.dialogflow.v2.SearchKnowledgeRequest.QuerySource|keyof typeof google.cloud.dialogflow.v2.SearchKnowledgeRequest.QuerySource|null);

                    /** SearchKnowledgeRequest endUserMetadata */
                    endUserMetadata?: (google.protobuf.IStruct|null);

                    /** SearchKnowledgeRequest searchConfig */
                    searchConfig?: (google.cloud.dialogflow.v2.SearchKnowledgeRequest.ISearchConfig|null);

                    /** SearchKnowledgeRequest exactSearch */
                    exactSearch?: (boolean|null);
                }

                /** Represents a SearchKnowledgeRequest. */
                class SearchKnowledgeRequest implements ISearchKnowledgeRequest {

                    /**
                     * Constructs a new SearchKnowledgeRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.ISearchKnowledgeRequest);

                    /** SearchKnowledgeRequest parent. */
                    public parent: string;

                    /** SearchKnowledgeRequest query. */
                    public query?: (google.cloud.dialogflow.v2.ITextInput|null);

                    /** SearchKnowledgeRequest conversationProfile. */
                    public conversationProfile: string;

                    /** SearchKnowledgeRequest sessionId. */
                    public sessionId: string;

                    /** SearchKnowledgeRequest conversation. */
                    public conversation: string;

                    /** SearchKnowledgeRequest latestMessage. */
                    public latestMessage: string;

                    /** SearchKnowledgeRequest querySource. */
                    public querySource: (google.cloud.dialogflow.v2.SearchKnowledgeRequest.QuerySource|keyof typeof google.cloud.dialogflow.v2.SearchKnowledgeRequest.QuerySource);

                    /** SearchKnowledgeRequest endUserMetadata. */
                    public endUserMetadata?: (google.protobuf.IStruct|null);

                    /** SearchKnowledgeRequest searchConfig. */
                    public searchConfig?: (google.cloud.dialogflow.v2.SearchKnowledgeRequest.ISearchConfig|null);

                    /** SearchKnowledgeRequest exactSearch. */
                    public exactSearch: boolean;

                    /**
                     * Creates a new SearchKnowledgeRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SearchKnowledgeRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.ISearchKnowledgeRequest): google.cloud.dialogflow.v2.SearchKnowledgeRequest;

                    /**
                     * Encodes the specified SearchKnowledgeRequest message. Does not implicitly {@link google.cloud.dialogflow.v2.SearchKnowledgeRequest.verify|verify} messages.
                     * @param message SearchKnowledgeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.ISearchKnowledgeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SearchKnowledgeRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.SearchKnowledgeRequest.verify|verify} messages.
                     * @param message SearchKnowledgeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.ISearchKnowledgeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SearchKnowledgeRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SearchKnowledgeRequest
                     * @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.cloud.dialogflow.v2.SearchKnowledgeRequest;

                    /**
                     * Decodes a SearchKnowledgeRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SearchKnowledgeRequest
                     * @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.cloud.dialogflow.v2.SearchKnowledgeRequest;

                    /**
                     * Verifies a SearchKnowledgeRequest 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 SearchKnowledgeRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SearchKnowledgeRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.SearchKnowledgeRequest;

                    /**
                     * Creates a plain object from a SearchKnowledgeRequest message. Also converts values to other types if specified.
                     * @param message SearchKnowledgeRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.SearchKnowledgeRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SearchKnowledgeRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SearchKnowledgeRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace SearchKnowledgeRequest {

                    /** QuerySource enum. */
                    enum QuerySource {
                        QUERY_SOURCE_UNSPECIFIED = 0,
                        AGENT_QUERY = 1,
                        SUGGESTED_QUERY = 2
                    }

                    /** Properties of a SearchConfig. */
                    interface ISearchConfig {

                        /** SearchConfig boostSpecs */
                        boostSpecs?: (google.cloud.dialogflow.v2.SearchKnowledgeRequest.SearchConfig.IBoostSpecs[]|null);

                        /** SearchConfig filterSpecs */
                        filterSpecs?: (google.cloud.dialogflow.v2.SearchKnowledgeRequest.SearchConfig.IFilterSpecs[]|null);
                    }

                    /** Represents a SearchConfig. */
                    class SearchConfig implements ISearchConfig {

                        /**
                         * Constructs a new SearchConfig.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2.SearchKnowledgeRequest.ISearchConfig);

                        /** SearchConfig boostSpecs. */
                        public boostSpecs: google.cloud.dialogflow.v2.SearchKnowledgeRequest.SearchConfig.IBoostSpecs[];

                        /** SearchConfig filterSpecs. */
                        public filterSpecs: google.cloud.dialogflow.v2.SearchKnowledgeRequest.SearchConfig.IFilterSpecs[];

                        /**
                         * Creates a new SearchConfig instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns SearchConfig instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2.SearchKnowledgeRequest.ISearchConfig): google.cloud.dialogflow.v2.SearchKnowledgeRequest.SearchConfig;

                        /**
                         * Encodes the specified SearchConfig message. Does not implicitly {@link google.cloud.dialogflow.v2.SearchKnowledgeRequest.SearchConfig.verify|verify} messages.
                         * @param message SearchConfig message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2.SearchKnowledgeRequest.ISearchConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified SearchConfig message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.SearchKnowledgeRequest.SearchConfig.verify|verify} messages.
                         * @param message SearchConfig message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2.SearchKnowledgeRequest.ISearchConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a SearchConfig message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns SearchConfig
                         * @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.cloud.dialogflow.v2.SearchKnowledgeRequest.SearchConfig;

                        /**
                         * Decodes a SearchConfig message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns SearchConfig
                         * @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.cloud.dialogflow.v2.SearchKnowledgeRequest.SearchConfig;

                        /**
                         * Verifies a SearchConfig 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 SearchConfig message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns SearchConfig
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.SearchKnowledgeRequest.SearchConfig;

                        /**
                         * Creates a plain object from a SearchConfig message. Also converts values to other types if specified.
                         * @param message SearchConfig
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.dialogflow.v2.SearchKnowledgeRequest.SearchConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this SearchConfig to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for SearchConfig
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    namespace SearchConfig {

                        /** Properties of a BoostSpecs. */
                        interface IBoostSpecs {

                            /** BoostSpecs dataStores */
                            dataStores?: (string[]|null);

                            /** BoostSpecs spec */
                            spec?: (google.cloud.dialogflow.v2.SearchKnowledgeRequest.SearchConfig.BoostSpecs.IBoostSpec[]|null);
                        }

                        /** Represents a BoostSpecs. */
                        class BoostSpecs implements IBoostSpecs {

                            /**
                             * Constructs a new BoostSpecs.
                             * @param [properties] Properties to set
                             */
                            constructor(properties?: google.cloud.dialogflow.v2.SearchKnowledgeRequest.SearchConfig.IBoostSpecs);

                            /** BoostSpecs dataStores. */
                            public dataStores: string[];

                            /** BoostSpecs spec. */
                            public spec: google.cloud.dialogflow.v2.SearchKnowledgeRequest.SearchConfig.BoostSpecs.IBoostSpec[];

                            /**
                             * Creates a new BoostSpecs instance using the specified properties.
                             * @param [properties] Properties to set
                             * @returns BoostSpecs instance
                             */
                            public static create(properties?: google.cloud.dialogflow.v2.SearchKnowledgeRequest.SearchConfig.IBoostSpecs): google.cloud.dialogflow.v2.SearchKnowledgeRequest.SearchConfig.BoostSpecs;

                            /**
                             * Encodes the specified BoostSpecs message. Does not implicitly {@link google.cloud.dialogflow.v2.SearchKnowledgeRequest.SearchConfig.BoostSpecs.verify|verify} messages.
                             * @param message BoostSpecs message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encode(message: google.cloud.dialogflow.v2.SearchKnowledgeRequest.SearchConfig.IBoostSpecs, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Encodes the specified BoostSpecs message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.SearchKnowledgeRequest.SearchConfig.BoostSpecs.verify|verify} messages.
                             * @param message BoostSpecs message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encodeDelimited(message: google.cloud.dialogflow.v2.SearchKnowledgeRequest.SearchConfig.IBoostSpecs, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Decodes a BoostSpecs message from the specified reader or buffer.
                             * @param reader Reader or buffer to decode from
                             * @param [length] Message length if known beforehand
                             * @returns BoostSpecs
                             * @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.cloud.dialogflow.v2.SearchKnowledgeRequest.SearchConfig.BoostSpecs;

                            /**
                             * Decodes a BoostSpecs message from the specified reader or buffer, length delimited.
                             * @param reader Reader or buffer to decode from
                             * @returns BoostSpecs
                             * @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.cloud.dialogflow.v2.SearchKnowledgeRequest.SearchConfig.BoostSpecs;

                            /**
                             * Verifies a BoostSpecs 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 BoostSpecs message from a plain object. Also converts values to their respective internal types.
                             * @param object Plain object
                             * @returns BoostSpecs
                             */
                            public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.SearchKnowledgeRequest.SearchConfig.BoostSpecs;

                            /**
                             * Creates a plain object from a BoostSpecs message. Also converts values to other types if specified.
                             * @param message BoostSpecs
                             * @param [options] Conversion options
                             * @returns Plain object
                             */
                            public static toObject(message: google.cloud.dialogflow.v2.SearchKnowledgeRequest.SearchConfig.BoostSpecs, options?: $protobuf.IConversionOptions): { [k: string]: any };

                            /**
                             * Converts this BoostSpecs to JSON.
                             * @returns JSON object
                             */
                            public toJSON(): { [k: string]: any };

                            /**
                             * Gets the default type url for BoostSpecs
                             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                             * @returns The default type url
                             */
                            public static getTypeUrl(typeUrlPrefix?: string): string;
                        }

                        namespace BoostSpecs {

                            /** Properties of a BoostSpec. */
                            interface IBoostSpec {

                                /** BoostSpec conditionBoostSpecs */
                                conditionBoostSpecs?: (google.cloud.dialogflow.v2.SearchKnowledgeRequest.SearchConfig.BoostSpecs.BoostSpec.IConditionBoostSpec[]|null);
                            }

                            /** Represents a BoostSpec. */
                            class BoostSpec implements IBoostSpec {

                                /**
                                 * Constructs a new BoostSpec.
                                 * @param [properties] Properties to set
                                 */
                                constructor(properties?: google.cloud.dialogflow.v2.SearchKnowledgeRequest.SearchConfig.BoostSpecs.IBoostSpec);

                                /** BoostSpec conditionBoostSpecs. */
                                public conditionBoostSpecs: google.cloud.dialogflow.v2.SearchKnowledgeRequest.SearchConfig.BoostSpecs.BoostSpec.IConditionBoostSpec[];

                                /**
                                 * Creates a new BoostSpec instance using the specified properties.
                                 * @param [properties] Properties to set
                                 * @returns BoostSpec instance
                                 */
                                public static create(properties?: google.cloud.dialogflow.v2.SearchKnowledgeRequest.SearchConfig.BoostSpecs.IBoostSpec): google.cloud.dialogflow.v2.SearchKnowledgeRequest.SearchConfig.BoostSpecs.BoostSpec;

                                /**
                                 * Encodes the specified BoostSpec message. Does not implicitly {@link google.cloud.dialogflow.v2.SearchKnowledgeRequest.SearchConfig.BoostSpecs.BoostSpec.verify|verify} messages.
                                 * @param message BoostSpec message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encode(message: google.cloud.dialogflow.v2.SearchKnowledgeRequest.SearchConfig.BoostSpecs.IBoostSpec, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Encodes the specified BoostSpec message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.SearchKnowledgeRequest.SearchConfig.BoostSpecs.BoostSpec.verify|verify} messages.
                                 * @param message BoostSpec message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encodeDelimited(message: google.cloud.dialogflow.v2.SearchKnowledgeRequest.SearchConfig.BoostSpecs.IBoostSpec, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Decodes a BoostSpec message from the specified reader or buffer.
                                 * @param reader Reader or buffer to decode from
                                 * @param [length] Message length if known beforehand
                                 * @returns BoostSpec
                                 * @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.cloud.dialogflow.v2.SearchKnowledgeRequest.SearchConfig.BoostSpecs.BoostSpec;

                                /**
                                 * Decodes a BoostSpec message from the specified reader or buffer, length delimited.
                                 * @param reader Reader or buffer to decode from
                                 * @returns BoostSpec
                                 * @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.cloud.dialogflow.v2.SearchKnowledgeRequest.SearchConfig.BoostSpecs.BoostSpec;

                                /**
                                 * Verifies a BoostSpec 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 BoostSpec message from a plain object. Also converts values to their respective internal types.
                                 * @param object Plain object
                                 * @returns BoostSpec
                                 */
                                public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.SearchKnowledgeRequest.SearchConfig.BoostSpecs.BoostSpec;

                                /**
                                 * Creates a plain object from a BoostSpec message. Also converts values to other types if specified.
                                 * @param message BoostSpec
                                 * @param [options] Conversion options
                                 * @returns Plain object
                                 */
                                public static toObject(message: google.cloud.dialogflow.v2.SearchKnowledgeRequest.SearchConfig.BoostSpecs.BoostSpec, options?: $protobuf.IConversionOptions): { [k: string]: any };

                                /**
                                 * Converts this BoostSpec to JSON.
                                 * @returns JSON object
                                 */
                                public toJSON(): { [k: string]: any };

                                /**
                                 * Gets the default type url for BoostSpec
                                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                                 * @returns The default type url
                                 */
                                public static getTypeUrl(typeUrlPrefix?: string): string;
                            }

                            namespace BoostSpec {

                                /** Properties of a ConditionBoostSpec. */
                                interface IConditionBoostSpec {

                                    /** ConditionBoostSpec condition */
                                    condition?: (string|null);

                                    /** ConditionBoostSpec boost */
                                    boost?: (number|null);

                                    /** ConditionBoostSpec boostControlSpec */
                                    boostControlSpec?: (google.cloud.dialogflow.v2.SearchKnowledgeRequest.SearchConfig.BoostSpecs.BoostSpec.ConditionBoostSpec.IBoostControlSpec|null);
                                }

                                /** Represents a ConditionBoostSpec. */
                                class ConditionBoostSpec implements IConditionBoostSpec {

                                    /**
                                     * Constructs a new ConditionBoostSpec.
                                     * @param [properties] Properties to set
                                     */
                                    constructor(properties?: google.cloud.dialogflow.v2.SearchKnowledgeRequest.SearchConfig.BoostSpecs.BoostSpec.IConditionBoostSpec);

                                    /** ConditionBoostSpec condition. */
                                    public condition: string;

                                    /** ConditionBoostSpec boost. */
                                    public boost: number;

                                    /** ConditionBoostSpec boostControlSpec. */
                                    public boostControlSpec?: (google.cloud.dialogflow.v2.SearchKnowledgeRequest.SearchConfig.BoostSpecs.BoostSpec.ConditionBoostSpec.IBoostControlSpec|null);

                                    /**
                                     * Creates a new ConditionBoostSpec instance using the specified properties.
                                     * @param [properties] Properties to set
                                     * @returns ConditionBoostSpec instance
                                     */
                                    public static create(properties?: google.cloud.dialogflow.v2.SearchKnowledgeRequest.SearchConfig.BoostSpecs.BoostSpec.IConditionBoostSpec): google.cloud.dialogflow.v2.SearchKnowledgeRequest.SearchConfig.BoostSpecs.BoostSpec.ConditionBoostSpec;

                                    /**
                                     * Encodes the specified ConditionBoostSpec message. Does not implicitly {@link google.cloud.dialogflow.v2.SearchKnowledgeRequest.SearchConfig.BoostSpecs.BoostSpec.ConditionBoostSpec.verify|verify} messages.
                                     * @param message ConditionBoostSpec message or plain object to encode
                                     * @param [writer] Writer to encode to
                                     * @returns Writer
                                     */
                                    public static encode(message: google.cloud.dialogflow.v2.SearchKnowledgeRequest.SearchConfig.BoostSpecs.BoostSpec.IConditionBoostSpec, writer?: $protobuf.Writer): $protobuf.Writer;

                                    /**
                                     * Encodes the specified ConditionBoostSpec message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.SearchKnowledgeRequest.SearchConfig.BoostSpecs.BoostSpec.ConditionBoostSpec.verify|verify} messages.
                                     * @param message ConditionBoostSpec message or plain object to encode
                                     * @param [writer] Writer to encode to
                                     * @returns Writer
                                     */
                                    public static encodeDelimited(message: google.cloud.dialogflow.v2.SearchKnowledgeRequest.SearchConfig.BoostSpecs.BoostSpec.IConditionBoostSpec, writer?: $protobuf.Writer): $protobuf.Writer;

                                    /**
                                     * Decodes a ConditionBoostSpec message from the specified reader or buffer.
                                     * @param reader Reader or buffer to decode from
                                     * @param [length] Message length if known beforehand
                                     * @returns ConditionBoostSpec
                                     * @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.cloud.dialogflow.v2.SearchKnowledgeRequest.SearchConfig.BoostSpecs.BoostSpec.ConditionBoostSpec;

                                    /**
                                     * Decodes a ConditionBoostSpec message from the specified reader or buffer, length delimited.
                                     * @param reader Reader or buffer to decode from
                                     * @returns ConditionBoostSpec
                                     * @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.cloud.dialogflow.v2.SearchKnowledgeRequest.SearchConfig.BoostSpecs.BoostSpec.ConditionBoostSpec;

                                    /**
                                     * Verifies a ConditionBoostSpec 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 ConditionBoostSpec message from a plain object. Also converts values to their respective internal types.
                                     * @param object Plain object
                                     * @returns ConditionBoostSpec
                                     */
                                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.SearchKnowledgeRequest.SearchConfig.BoostSpecs.BoostSpec.ConditionBoostSpec;

                                    /**
                                     * Creates a plain object from a ConditionBoostSpec message. Also converts values to other types if specified.
                                     * @param message ConditionBoostSpec
                                     * @param [options] Conversion options
                                     * @returns Plain object
                                     */
                                    public static toObject(message: google.cloud.dialogflow.v2.SearchKnowledgeRequest.SearchConfig.BoostSpecs.BoostSpec.ConditionBoostSpec, options?: $protobuf.IConversionOptions): { [k: string]: any };

                                    /**
                                     * Converts this ConditionBoostSpec to JSON.
                                     * @returns JSON object
                                     */
                                    public toJSON(): { [k: string]: any };

                                    /**
                                     * Gets the default type url for ConditionBoostSpec
                                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                                     * @returns The default type url
                                     */
                                    public static getTypeUrl(typeUrlPrefix?: string): string;
                                }

                                namespace ConditionBoostSpec {

                                    /** Properties of a BoostControlSpec. */
                                    interface IBoostControlSpec {

                                        /** BoostControlSpec fieldName */
                                        fieldName?: (string|null);

                                        /** BoostControlSpec attributeType */
                                        attributeType?: (google.cloud.dialogflow.v2.SearchKnowledgeRequest.SearchConfig.BoostSpecs.BoostSpec.ConditionBoostSpec.BoostControlSpec.AttributeType|keyof typeof google.cloud.dialogflow.v2.SearchKnowledgeRequest.SearchConfig.BoostSpecs.BoostSpec.ConditionBoostSpec.BoostControlSpec.AttributeType|null);

                                        /** BoostControlSpec interpolationType */
                                        interpolationType?: (google.cloud.dialogflow.v2.SearchKnowledgeRequest.SearchConfig.BoostSpecs.BoostSpec.ConditionBoostSpec.BoostControlSpec.InterpolationType|keyof typeof google.cloud.dialogflow.v2.SearchKnowledgeRequest.SearchConfig.BoostSpecs.BoostSpec.ConditionBoostSpec.BoostControlSpec.InterpolationType|null);

                                        /** BoostControlSpec controlPoints */
                                        controlPoints?: (google.cloud.dialogflow.v2.SearchKnowledgeRequest.SearchConfig.BoostSpecs.BoostSpec.ConditionBoostSpec.BoostControlSpec.IControlPoint[]|null);
                                    }

                                    /** Represents a BoostControlSpec. */
                                    class BoostControlSpec implements IBoostControlSpec {

                                        /**
                                         * Constructs a new BoostControlSpec.
                                         * @param [properties] Properties to set
                                         */
                                        constructor(properties?: google.cloud.dialogflow.v2.SearchKnowledgeRequest.SearchConfig.BoostSpecs.BoostSpec.ConditionBoostSpec.IBoostControlSpec);

                                        /** BoostControlSpec fieldName. */
                                        public fieldName: string;

                                        /** BoostControlSpec attributeType. */
                                        public attributeType: (google.cloud.dialogflow.v2.SearchKnowledgeRequest.SearchConfig.BoostSpecs.BoostSpec.ConditionBoostSpec.BoostControlSpec.AttributeType|keyof typeof google.cloud.dialogflow.v2.SearchKnowledgeRequest.SearchConfig.BoostSpecs.BoostSpec.ConditionBoostSpec.BoostControlSpec.AttributeType);

                                        /** BoostControlSpec interpolationType. */
                                        public interpolationType: (google.cloud.dialogflow.v2.SearchKnowledgeRequest.SearchConfig.BoostSpecs.BoostSpec.ConditionBoostSpec.BoostControlSpec.InterpolationType|keyof typeof google.cloud.dialogflow.v2.SearchKnowledgeRequest.SearchConfig.BoostSpecs.BoostSpec.ConditionBoostSpec.BoostControlSpec.InterpolationType);

                                        /** BoostControlSpec controlPoints. */
                                        public controlPoints: google.cloud.dialogflow.v2.SearchKnowledgeRequest.SearchConfig.BoostSpecs.BoostSpec.ConditionBoostSpec.BoostControlSpec.IControlPoint[];

                                        /**
                                         * Creates a new BoostControlSpec instance using the specified properties.
                                         * @param [properties] Properties to set
                                         * @returns BoostControlSpec instance
                                         */
                                        public static create(properties?: google.cloud.dialogflow.v2.SearchKnowledgeRequest.SearchConfig.BoostSpecs.BoostSpec.ConditionBoostSpec.IBoostControlSpec): google.cloud.dialogflow.v2.SearchKnowledgeRequest.SearchConfig.BoostSpecs.BoostSpec.ConditionBoostSpec.BoostControlSpec;

                                        /**
                                         * Encodes the specified BoostControlSpec message. Does not implicitly {@link google.cloud.dialogflow.v2.SearchKnowledgeRequest.SearchConfig.BoostSpecs.BoostSpec.ConditionBoostSpec.BoostControlSpec.verify|verify} messages.
                                         * @param message BoostControlSpec message or plain object to encode
                                         * @param [writer] Writer to encode to
                                         * @returns Writer
                                         */
                                        public static encode(message: google.cloud.dialogflow.v2.SearchKnowledgeRequest.SearchConfig.BoostSpecs.BoostSpec.ConditionBoostSpec.IBoostControlSpec, writer?: $protobuf.Writer): $protobuf.Writer;

                                        /**
                                         * Encodes the specified BoostControlSpec message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.SearchKnowledgeRequest.SearchConfig.BoostSpecs.BoostSpec.ConditionBoostSpec.BoostControlSpec.verify|verify} messages.
                                         * @param message BoostControlSpec message or plain object to encode
                                         * @param [writer] Writer to encode to
                                         * @returns Writer
                                         */
                                        public static encodeDelimited(message: google.cloud.dialogflow.v2.SearchKnowledgeRequest.SearchConfig.BoostSpecs.BoostSpec.ConditionBoostSpec.IBoostControlSpec, writer?: $protobuf.Writer): $protobuf.Writer;

                                        /**
                                         * Decodes a BoostControlSpec message from the specified reader or buffer.
                                         * @param reader Reader or buffer to decode from
                                         * @param [length] Message length if known beforehand
                                         * @returns BoostControlSpec
                                         * @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.cloud.dialogflow.v2.SearchKnowledgeRequest.SearchConfig.BoostSpecs.BoostSpec.ConditionBoostSpec.BoostControlSpec;

                                        /**
                                         * Decodes a BoostControlSpec message from the specified reader or buffer, length delimited.
                                         * @param reader Reader or buffer to decode from
                                         * @returns BoostControlSpec
                                         * @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.cloud.dialogflow.v2.SearchKnowledgeRequest.SearchConfig.BoostSpecs.BoostSpec.ConditionBoostSpec.BoostControlSpec;

                                        /**
                                         * Verifies a BoostControlSpec 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 BoostControlSpec message from a plain object. Also converts values to their respective internal types.
                                         * @param object Plain object
                                         * @returns BoostControlSpec
                                         */
                                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.SearchKnowledgeRequest.SearchConfig.BoostSpecs.BoostSpec.ConditionBoostSpec.BoostControlSpec;

                                        /**
                                         * Creates a plain object from a BoostControlSpec message. Also converts values to other types if specified.
                                         * @param message BoostControlSpec
                                         * @param [options] Conversion options
                                         * @returns Plain object
                                         */
                                        public static toObject(message: google.cloud.dialogflow.v2.SearchKnowledgeRequest.SearchConfig.BoostSpecs.BoostSpec.ConditionBoostSpec.BoostControlSpec, options?: $protobuf.IConversionOptions): { [k: string]: any };

                                        /**
                                         * Converts this BoostControlSpec to JSON.
                                         * @returns JSON object
                                         */
                                        public toJSON(): { [k: string]: any };

                                        /**
                                         * Gets the default type url for BoostControlSpec
                                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                                         * @returns The default type url
                                         */
                                        public static getTypeUrl(typeUrlPrefix?: string): string;
                                    }

                                    namespace BoostControlSpec {

                                        /** AttributeType enum. */
                                        enum AttributeType {
                                            ATTRIBUTE_TYPE_UNSPECIFIED = 0,
                                            NUMERICAL = 1,
                                            FRESHNESS = 2
                                        }

                                        /** InterpolationType enum. */
                                        enum InterpolationType {
                                            INTERPOLATION_TYPE_UNSPECIFIED = 0,
                                            LINEAR = 1
                                        }

                                        /** Properties of a ControlPoint. */
                                        interface IControlPoint {

                                            /** ControlPoint attributeValue */
                                            attributeValue?: (string|null);

                                            /** ControlPoint boostAmount */
                                            boostAmount?: (number|null);
                                        }

                                        /** Represents a ControlPoint. */
                                        class ControlPoint implements IControlPoint {

                                            /**
                                             * Constructs a new ControlPoint.
                                             * @param [properties] Properties to set
                                             */
                                            constructor(properties?: google.cloud.dialogflow.v2.SearchKnowledgeRequest.SearchConfig.BoostSpecs.BoostSpec.ConditionBoostSpec.BoostControlSpec.IControlPoint);

                                            /** ControlPoint attributeValue. */
                                            public attributeValue: string;

                                            /** ControlPoint boostAmount. */
                                            public boostAmount: number;

                                            /**
                                             * Creates a new ControlPoint instance using the specified properties.
                                             * @param [properties] Properties to set
                                             * @returns ControlPoint instance
                                             */
                                            public static create(properties?: google.cloud.dialogflow.v2.SearchKnowledgeRequest.SearchConfig.BoostSpecs.BoostSpec.ConditionBoostSpec.BoostControlSpec.IControlPoint): google.cloud.dialogflow.v2.SearchKnowledgeRequest.SearchConfig.BoostSpecs.BoostSpec.ConditionBoostSpec.BoostControlSpec.ControlPoint;

                                            /**
                                             * Encodes the specified ControlPoint message. Does not implicitly {@link google.cloud.dialogflow.v2.SearchKnowledgeRequest.SearchConfig.BoostSpecs.BoostSpec.ConditionBoostSpec.BoostControlSpec.ControlPoint.verify|verify} messages.
                                             * @param message ControlPoint message or plain object to encode
                                             * @param [writer] Writer to encode to
                                             * @returns Writer
                                             */
                                            public static encode(message: google.cloud.dialogflow.v2.SearchKnowledgeRequest.SearchConfig.BoostSpecs.BoostSpec.ConditionBoostSpec.BoostControlSpec.IControlPoint, writer?: $protobuf.Writer): $protobuf.Writer;

                                            /**
                                             * Encodes the specified ControlPoint message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.SearchKnowledgeRequest.SearchConfig.BoostSpecs.BoostSpec.ConditionBoostSpec.BoostControlSpec.ControlPoint.verify|verify} messages.
                                             * @param message ControlPoint message or plain object to encode
                                             * @param [writer] Writer to encode to
                                             * @returns Writer
                                             */
                                            public static encodeDelimited(message: google.cloud.dialogflow.v2.SearchKnowledgeRequest.SearchConfig.BoostSpecs.BoostSpec.ConditionBoostSpec.BoostControlSpec.IControlPoint, writer?: $protobuf.Writer): $protobuf.Writer;

                                            /**
                                             * Decodes a ControlPoint message from the specified reader or buffer.
                                             * @param reader Reader or buffer to decode from
                                             * @param [length] Message length if known beforehand
                                             * @returns ControlPoint
                                             * @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.cloud.dialogflow.v2.SearchKnowledgeRequest.SearchConfig.BoostSpecs.BoostSpec.ConditionBoostSpec.BoostControlSpec.ControlPoint;

                                            /**
                                             * Decodes a ControlPoint message from the specified reader or buffer, length delimited.
                                             * @param reader Reader or buffer to decode from
                                             * @returns ControlPoint
                                             * @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.cloud.dialogflow.v2.SearchKnowledgeRequest.SearchConfig.BoostSpecs.BoostSpec.ConditionBoostSpec.BoostControlSpec.ControlPoint;

                                            /**
                                             * Verifies a ControlPoint 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 ControlPoint message from a plain object. Also converts values to their respective internal types.
                                             * @param object Plain object
                                             * @returns ControlPoint
                                             */
                                            public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.SearchKnowledgeRequest.SearchConfig.BoostSpecs.BoostSpec.ConditionBoostSpec.BoostControlSpec.ControlPoint;

                                            /**
                                             * Creates a plain object from a ControlPoint message. Also converts values to other types if specified.
                                             * @param message ControlPoint
                                             * @param [options] Conversion options
                                             * @returns Plain object
                                             */
                                            public static toObject(message: google.cloud.dialogflow.v2.SearchKnowledgeRequest.SearchConfig.BoostSpecs.BoostSpec.ConditionBoostSpec.BoostControlSpec.ControlPoint, options?: $protobuf.IConversionOptions): { [k: string]: any };

                                            /**
                                             * Converts this ControlPoint to JSON.
                                             * @returns JSON object
                                             */
                                            public toJSON(): { [k: string]: any };

                                            /**
                                             * Gets the default type url for ControlPoint
                                             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                                             * @returns The default type url
                                             */
                                            public static getTypeUrl(typeUrlPrefix?: string): string;
                                        }
                                    }
                                }
                            }
                        }

                        /** Properties of a FilterSpecs. */
                        interface IFilterSpecs {

                            /** FilterSpecs dataStores */
                            dataStores?: (string[]|null);

                            /** FilterSpecs filter */
                            filter?: (string|null);
                        }

                        /** Represents a FilterSpecs. */
                        class FilterSpecs implements IFilterSpecs {

                            /**
                             * Constructs a new FilterSpecs.
                             * @param [properties] Properties to set
                             */
                            constructor(properties?: google.cloud.dialogflow.v2.SearchKnowledgeRequest.SearchConfig.IFilterSpecs);

                            /** FilterSpecs dataStores. */
                            public dataStores: string[];

                            /** FilterSpecs filter. */
                            public filter: string;

                            /**
                             * Creates a new FilterSpecs instance using the specified properties.
                             * @param [properties] Properties to set
                             * @returns FilterSpecs instance
                             */
                            public static create(properties?: google.cloud.dialogflow.v2.SearchKnowledgeRequest.SearchConfig.IFilterSpecs): google.cloud.dialogflow.v2.SearchKnowledgeRequest.SearchConfig.FilterSpecs;

                            /**
                             * Encodes the specified FilterSpecs message. Does not implicitly {@link google.cloud.dialogflow.v2.SearchKnowledgeRequest.SearchConfig.FilterSpecs.verify|verify} messages.
                             * @param message FilterSpecs message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encode(message: google.cloud.dialogflow.v2.SearchKnowledgeRequest.SearchConfig.IFilterSpecs, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Encodes the specified FilterSpecs message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.SearchKnowledgeRequest.SearchConfig.FilterSpecs.verify|verify} messages.
                             * @param message FilterSpecs message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encodeDelimited(message: google.cloud.dialogflow.v2.SearchKnowledgeRequest.SearchConfig.IFilterSpecs, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Decodes a FilterSpecs message from the specified reader or buffer.
                             * @param reader Reader or buffer to decode from
                             * @param [length] Message length if known beforehand
                             * @returns FilterSpecs
                             * @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.cloud.dialogflow.v2.SearchKnowledgeRequest.SearchConfig.FilterSpecs;

                            /**
                             * Decodes a FilterSpecs message from the specified reader or buffer, length delimited.
                             * @param reader Reader or buffer to decode from
                             * @returns FilterSpecs
                             * @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.cloud.dialogflow.v2.SearchKnowledgeRequest.SearchConfig.FilterSpecs;

                            /**
                             * Verifies a FilterSpecs 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 FilterSpecs message from a plain object. Also converts values to their respective internal types.
                             * @param object Plain object
                             * @returns FilterSpecs
                             */
                            public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.SearchKnowledgeRequest.SearchConfig.FilterSpecs;

                            /**
                             * Creates a plain object from a FilterSpecs message. Also converts values to other types if specified.
                             * @param message FilterSpecs
                             * @param [options] Conversion options
                             * @returns Plain object
                             */
                            public static toObject(message: google.cloud.dialogflow.v2.SearchKnowledgeRequest.SearchConfig.FilterSpecs, options?: $protobuf.IConversionOptions): { [k: string]: any };

                            /**
                             * Converts this FilterSpecs to JSON.
                             * @returns JSON object
                             */
                            public toJSON(): { [k: string]: any };

                            /**
                             * Gets the default type url for FilterSpecs
                             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                             * @returns The default type url
                             */
                            public static getTypeUrl(typeUrlPrefix?: string): string;
                        }
                    }
                }

                /** Properties of a SearchKnowledgeDebugInfo. */
                interface ISearchKnowledgeDebugInfo {

                    /** SearchKnowledgeDebugInfo datastoreResponseReason */
                    datastoreResponseReason?: (google.cloud.dialogflow.v2.DatastoreResponseReason|keyof typeof google.cloud.dialogflow.v2.DatastoreResponseReason|null);

                    /** SearchKnowledgeDebugInfo searchKnowledgeBehavior */
                    searchKnowledgeBehavior?: (google.cloud.dialogflow.v2.SearchKnowledgeDebugInfo.ISearchKnowledgeBehavior|null);

                    /** SearchKnowledgeDebugInfo ingestedContextReferenceDebugInfo */
                    ingestedContextReferenceDebugInfo?: (google.cloud.dialogflow.v2.IIngestedContextReferenceDebugInfo|null);

                    /** SearchKnowledgeDebugInfo serviceLatency */
                    serviceLatency?: (google.cloud.dialogflow.v2.IServiceLatency|null);
                }

                /** Represents a SearchKnowledgeDebugInfo. */
                class SearchKnowledgeDebugInfo implements ISearchKnowledgeDebugInfo {

                    /**
                     * Constructs a new SearchKnowledgeDebugInfo.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.ISearchKnowledgeDebugInfo);

                    /** SearchKnowledgeDebugInfo datastoreResponseReason. */
                    public datastoreResponseReason: (google.cloud.dialogflow.v2.DatastoreResponseReason|keyof typeof google.cloud.dialogflow.v2.DatastoreResponseReason);

                    /** SearchKnowledgeDebugInfo searchKnowledgeBehavior. */
                    public searchKnowledgeBehavior?: (google.cloud.dialogflow.v2.SearchKnowledgeDebugInfo.ISearchKnowledgeBehavior|null);

                    /** SearchKnowledgeDebugInfo ingestedContextReferenceDebugInfo. */
                    public ingestedContextReferenceDebugInfo?: (google.cloud.dialogflow.v2.IIngestedContextReferenceDebugInfo|null);

                    /** SearchKnowledgeDebugInfo serviceLatency. */
                    public serviceLatency?: (google.cloud.dialogflow.v2.IServiceLatency|null);

                    /**
                     * Creates a new SearchKnowledgeDebugInfo instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SearchKnowledgeDebugInfo instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.ISearchKnowledgeDebugInfo): google.cloud.dialogflow.v2.SearchKnowledgeDebugInfo;

                    /**
                     * Encodes the specified SearchKnowledgeDebugInfo message. Does not implicitly {@link google.cloud.dialogflow.v2.SearchKnowledgeDebugInfo.verify|verify} messages.
                     * @param message SearchKnowledgeDebugInfo message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.ISearchKnowledgeDebugInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SearchKnowledgeDebugInfo message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.SearchKnowledgeDebugInfo.verify|verify} messages.
                     * @param message SearchKnowledgeDebugInfo message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.ISearchKnowledgeDebugInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SearchKnowledgeDebugInfo message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SearchKnowledgeDebugInfo
                     * @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.cloud.dialogflow.v2.SearchKnowledgeDebugInfo;

                    /**
                     * Decodes a SearchKnowledgeDebugInfo message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SearchKnowledgeDebugInfo
                     * @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.cloud.dialogflow.v2.SearchKnowledgeDebugInfo;

                    /**
                     * Verifies a SearchKnowledgeDebugInfo 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 SearchKnowledgeDebugInfo message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SearchKnowledgeDebugInfo
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.SearchKnowledgeDebugInfo;

                    /**
                     * Creates a plain object from a SearchKnowledgeDebugInfo message. Also converts values to other types if specified.
                     * @param message SearchKnowledgeDebugInfo
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.SearchKnowledgeDebugInfo, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SearchKnowledgeDebugInfo to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SearchKnowledgeDebugInfo
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace SearchKnowledgeDebugInfo {

                    /** Properties of a SearchKnowledgeBehavior. */
                    interface ISearchKnowledgeBehavior {

                        /** SearchKnowledgeBehavior answerGenerationRewriterOn */
                        answerGenerationRewriterOn?: (boolean|null);

                        /** SearchKnowledgeBehavior endUserMetadataIncluded */
                        endUserMetadataIncluded?: (boolean|null);

                        /** SearchKnowledgeBehavior thirdPartyConnectorAllowed */
                        thirdPartyConnectorAllowed?: (boolean|null);
                    }

                    /** Represents a SearchKnowledgeBehavior. */
                    class SearchKnowledgeBehavior implements ISearchKnowledgeBehavior {

                        /**
                         * Constructs a new SearchKnowledgeBehavior.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2.SearchKnowledgeDebugInfo.ISearchKnowledgeBehavior);

                        /** SearchKnowledgeBehavior answerGenerationRewriterOn. */
                        public answerGenerationRewriterOn: boolean;

                        /** SearchKnowledgeBehavior endUserMetadataIncluded. */
                        public endUserMetadataIncluded: boolean;

                        /** SearchKnowledgeBehavior thirdPartyConnectorAllowed. */
                        public thirdPartyConnectorAllowed: boolean;

                        /**
                         * Creates a new SearchKnowledgeBehavior instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns SearchKnowledgeBehavior instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2.SearchKnowledgeDebugInfo.ISearchKnowledgeBehavior): google.cloud.dialogflow.v2.SearchKnowledgeDebugInfo.SearchKnowledgeBehavior;

                        /**
                         * Encodes the specified SearchKnowledgeBehavior message. Does not implicitly {@link google.cloud.dialogflow.v2.SearchKnowledgeDebugInfo.SearchKnowledgeBehavior.verify|verify} messages.
                         * @param message SearchKnowledgeBehavior message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2.SearchKnowledgeDebugInfo.ISearchKnowledgeBehavior, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified SearchKnowledgeBehavior message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.SearchKnowledgeDebugInfo.SearchKnowledgeBehavior.verify|verify} messages.
                         * @param message SearchKnowledgeBehavior message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2.SearchKnowledgeDebugInfo.ISearchKnowledgeBehavior, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a SearchKnowledgeBehavior message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns SearchKnowledgeBehavior
                         * @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.cloud.dialogflow.v2.SearchKnowledgeDebugInfo.SearchKnowledgeBehavior;

                        /**
                         * Decodes a SearchKnowledgeBehavior message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns SearchKnowledgeBehavior
                         * @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.cloud.dialogflow.v2.SearchKnowledgeDebugInfo.SearchKnowledgeBehavior;

                        /**
                         * Verifies a SearchKnowledgeBehavior 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 SearchKnowledgeBehavior message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns SearchKnowledgeBehavior
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.SearchKnowledgeDebugInfo.SearchKnowledgeBehavior;

                        /**
                         * Creates a plain object from a SearchKnowledgeBehavior message. Also converts values to other types if specified.
                         * @param message SearchKnowledgeBehavior
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.dialogflow.v2.SearchKnowledgeDebugInfo.SearchKnowledgeBehavior, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this SearchKnowledgeBehavior to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for SearchKnowledgeBehavior
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }
                }

                /** Properties of a SearchKnowledgeResponse. */
                interface ISearchKnowledgeResponse {

                    /** SearchKnowledgeResponse answers */
                    answers?: (google.cloud.dialogflow.v2.ISearchKnowledgeAnswer[]|null);

                    /** SearchKnowledgeResponse rewrittenQuery */
                    rewrittenQuery?: (string|null);

                    /** SearchKnowledgeResponse searchKnowledgeDebugInfo */
                    searchKnowledgeDebugInfo?: (google.cloud.dialogflow.v2.ISearchKnowledgeDebugInfo|null);
                }

                /** Represents a SearchKnowledgeResponse. */
                class SearchKnowledgeResponse implements ISearchKnowledgeResponse {

                    /**
                     * Constructs a new SearchKnowledgeResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.ISearchKnowledgeResponse);

                    /** SearchKnowledgeResponse answers. */
                    public answers: google.cloud.dialogflow.v2.ISearchKnowledgeAnswer[];

                    /** SearchKnowledgeResponse rewrittenQuery. */
                    public rewrittenQuery: string;

                    /** SearchKnowledgeResponse searchKnowledgeDebugInfo. */
                    public searchKnowledgeDebugInfo?: (google.cloud.dialogflow.v2.ISearchKnowledgeDebugInfo|null);

                    /**
                     * Creates a new SearchKnowledgeResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SearchKnowledgeResponse instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.ISearchKnowledgeResponse): google.cloud.dialogflow.v2.SearchKnowledgeResponse;

                    /**
                     * Encodes the specified SearchKnowledgeResponse message. Does not implicitly {@link google.cloud.dialogflow.v2.SearchKnowledgeResponse.verify|verify} messages.
                     * @param message SearchKnowledgeResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.ISearchKnowledgeResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SearchKnowledgeResponse message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.SearchKnowledgeResponse.verify|verify} messages.
                     * @param message SearchKnowledgeResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.ISearchKnowledgeResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SearchKnowledgeResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SearchKnowledgeResponse
                     * @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.cloud.dialogflow.v2.SearchKnowledgeResponse;

                    /**
                     * Decodes a SearchKnowledgeResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SearchKnowledgeResponse
                     * @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.cloud.dialogflow.v2.SearchKnowledgeResponse;

                    /**
                     * Verifies a SearchKnowledgeResponse 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 SearchKnowledgeResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SearchKnowledgeResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.SearchKnowledgeResponse;

                    /**
                     * Creates a plain object from a SearchKnowledgeResponse message. Also converts values to other types if specified.
                     * @param message SearchKnowledgeResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.SearchKnowledgeResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SearchKnowledgeResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SearchKnowledgeResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SearchKnowledgeAnswer. */
                interface ISearchKnowledgeAnswer {

                    /** SearchKnowledgeAnswer answer */
                    answer?: (string|null);

                    /** SearchKnowledgeAnswer answerType */
                    answerType?: (google.cloud.dialogflow.v2.SearchKnowledgeAnswer.AnswerType|keyof typeof google.cloud.dialogflow.v2.SearchKnowledgeAnswer.AnswerType|null);

                    /** SearchKnowledgeAnswer answerSources */
                    answerSources?: (google.cloud.dialogflow.v2.SearchKnowledgeAnswer.IAnswerSource[]|null);

                    /** SearchKnowledgeAnswer answerRecord */
                    answerRecord?: (string|null);
                }

                /** Represents a SearchKnowledgeAnswer. */
                class SearchKnowledgeAnswer implements ISearchKnowledgeAnswer {

                    /**
                     * Constructs a new SearchKnowledgeAnswer.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.ISearchKnowledgeAnswer);

                    /** SearchKnowledgeAnswer answer. */
                    public answer: string;

                    /** SearchKnowledgeAnswer answerType. */
                    public answerType: (google.cloud.dialogflow.v2.SearchKnowledgeAnswer.AnswerType|keyof typeof google.cloud.dialogflow.v2.SearchKnowledgeAnswer.AnswerType);

                    /** SearchKnowledgeAnswer answerSources. */
                    public answerSources: google.cloud.dialogflow.v2.SearchKnowledgeAnswer.IAnswerSource[];

                    /** SearchKnowledgeAnswer answerRecord. */
                    public answerRecord: string;

                    /**
                     * Creates a new SearchKnowledgeAnswer instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SearchKnowledgeAnswer instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.ISearchKnowledgeAnswer): google.cloud.dialogflow.v2.SearchKnowledgeAnswer;

                    /**
                     * Encodes the specified SearchKnowledgeAnswer message. Does not implicitly {@link google.cloud.dialogflow.v2.SearchKnowledgeAnswer.verify|verify} messages.
                     * @param message SearchKnowledgeAnswer message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.ISearchKnowledgeAnswer, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SearchKnowledgeAnswer message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.SearchKnowledgeAnswer.verify|verify} messages.
                     * @param message SearchKnowledgeAnswer message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.ISearchKnowledgeAnswer, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SearchKnowledgeAnswer message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SearchKnowledgeAnswer
                     * @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.cloud.dialogflow.v2.SearchKnowledgeAnswer;

                    /**
                     * Decodes a SearchKnowledgeAnswer message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SearchKnowledgeAnswer
                     * @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.cloud.dialogflow.v2.SearchKnowledgeAnswer;

                    /**
                     * Verifies a SearchKnowledgeAnswer 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 SearchKnowledgeAnswer message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SearchKnowledgeAnswer
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.SearchKnowledgeAnswer;

                    /**
                     * Creates a plain object from a SearchKnowledgeAnswer message. Also converts values to other types if specified.
                     * @param message SearchKnowledgeAnswer
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.SearchKnowledgeAnswer, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SearchKnowledgeAnswer to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SearchKnowledgeAnswer
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace SearchKnowledgeAnswer {

                    /** AnswerType enum. */
                    enum AnswerType {
                        ANSWER_TYPE_UNSPECIFIED = 0,
                        FAQ = 1,
                        GENERATIVE = 2,
                        INTENT = 3
                    }

                    /** Properties of an AnswerSource. */
                    interface IAnswerSource {

                        /** AnswerSource title */
                        title?: (string|null);

                        /** AnswerSource uri */
                        uri?: (string|null);

                        /** AnswerSource snippet */
                        snippet?: (string|null);

                        /** AnswerSource metadata */
                        metadata?: (google.protobuf.IStruct|null);
                    }

                    /** Represents an AnswerSource. */
                    class AnswerSource implements IAnswerSource {

                        /**
                         * Constructs a new AnswerSource.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2.SearchKnowledgeAnswer.IAnswerSource);

                        /** AnswerSource title. */
                        public title: string;

                        /** AnswerSource uri. */
                        public uri: string;

                        /** AnswerSource snippet. */
                        public snippet: string;

                        /** AnswerSource metadata. */
                        public metadata?: (google.protobuf.IStruct|null);

                        /**
                         * Creates a new AnswerSource instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns AnswerSource instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2.SearchKnowledgeAnswer.IAnswerSource): google.cloud.dialogflow.v2.SearchKnowledgeAnswer.AnswerSource;

                        /**
                         * Encodes the specified AnswerSource message. Does not implicitly {@link google.cloud.dialogflow.v2.SearchKnowledgeAnswer.AnswerSource.verify|verify} messages.
                         * @param message AnswerSource message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2.SearchKnowledgeAnswer.IAnswerSource, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified AnswerSource message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.SearchKnowledgeAnswer.AnswerSource.verify|verify} messages.
                         * @param message AnswerSource message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2.SearchKnowledgeAnswer.IAnswerSource, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes an AnswerSource message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns AnswerSource
                         * @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.cloud.dialogflow.v2.SearchKnowledgeAnswer.AnswerSource;

                        /**
                         * Decodes an AnswerSource message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns AnswerSource
                         * @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.cloud.dialogflow.v2.SearchKnowledgeAnswer.AnswerSource;

                        /**
                         * Verifies an AnswerSource 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 AnswerSource message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns AnswerSource
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.SearchKnowledgeAnswer.AnswerSource;

                        /**
                         * Creates a plain object from an AnswerSource message. Also converts values to other types if specified.
                         * @param message AnswerSource
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.dialogflow.v2.SearchKnowledgeAnswer.AnswerSource, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this AnswerSource to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for AnswerSource
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }
                }

                /** Properties of a GenerateSuggestionsRequest. */
                interface IGenerateSuggestionsRequest {

                    /** GenerateSuggestionsRequest conversation */
                    conversation?: (string|null);

                    /** GenerateSuggestionsRequest latestMessage */
                    latestMessage?: (string|null);

                    /** GenerateSuggestionsRequest triggerEvents */
                    triggerEvents?: (google.cloud.dialogflow.v2.TriggerEvent[]|null);
                }

                /** Represents a GenerateSuggestionsRequest. */
                class GenerateSuggestionsRequest implements IGenerateSuggestionsRequest {

                    /**
                     * Constructs a new GenerateSuggestionsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IGenerateSuggestionsRequest);

                    /** GenerateSuggestionsRequest conversation. */
                    public conversation: string;

                    /** GenerateSuggestionsRequest latestMessage. */
                    public latestMessage: string;

                    /** GenerateSuggestionsRequest triggerEvents. */
                    public triggerEvents: google.cloud.dialogflow.v2.TriggerEvent[];

                    /**
                     * Creates a new GenerateSuggestionsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GenerateSuggestionsRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IGenerateSuggestionsRequest): google.cloud.dialogflow.v2.GenerateSuggestionsRequest;

                    /**
                     * Encodes the specified GenerateSuggestionsRequest message. Does not implicitly {@link google.cloud.dialogflow.v2.GenerateSuggestionsRequest.verify|verify} messages.
                     * @param message GenerateSuggestionsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IGenerateSuggestionsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GenerateSuggestionsRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.GenerateSuggestionsRequest.verify|verify} messages.
                     * @param message GenerateSuggestionsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.IGenerateSuggestionsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GenerateSuggestionsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GenerateSuggestionsRequest
                     * @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.cloud.dialogflow.v2.GenerateSuggestionsRequest;

                    /**
                     * Decodes a GenerateSuggestionsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GenerateSuggestionsRequest
                     * @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.cloud.dialogflow.v2.GenerateSuggestionsRequest;

                    /**
                     * Verifies a GenerateSuggestionsRequest 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 GenerateSuggestionsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GenerateSuggestionsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.GenerateSuggestionsRequest;

                    /**
                     * Creates a plain object from a GenerateSuggestionsRequest message. Also converts values to other types if specified.
                     * @param message GenerateSuggestionsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.GenerateSuggestionsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GenerateSuggestionsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GenerateSuggestionsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Represents a ConversationProfiles */
                class ConversationProfiles extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new ConversationProfiles 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 ConversationProfiles 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): ConversationProfiles;

                    /**
                     * Calls ListConversationProfiles.
                     * @param request ListConversationProfilesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ListConversationProfilesResponse
                     */
                    public listConversationProfiles(request: google.cloud.dialogflow.v2.IListConversationProfilesRequest, callback: google.cloud.dialogflow.v2.ConversationProfiles.ListConversationProfilesCallback): void;

                    /**
                     * Calls ListConversationProfiles.
                     * @param request ListConversationProfilesRequest message or plain object
                     * @returns Promise
                     */
                    public listConversationProfiles(request: google.cloud.dialogflow.v2.IListConversationProfilesRequest): Promise<google.cloud.dialogflow.v2.ListConversationProfilesResponse>;

                    /**
                     * Calls GetConversationProfile.
                     * @param request GetConversationProfileRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ConversationProfile
                     */
                    public getConversationProfile(request: google.cloud.dialogflow.v2.IGetConversationProfileRequest, callback: google.cloud.dialogflow.v2.ConversationProfiles.GetConversationProfileCallback): void;

                    /**
                     * Calls GetConversationProfile.
                     * @param request GetConversationProfileRequest message or plain object
                     * @returns Promise
                     */
                    public getConversationProfile(request: google.cloud.dialogflow.v2.IGetConversationProfileRequest): Promise<google.cloud.dialogflow.v2.ConversationProfile>;

                    /**
                     * Calls CreateConversationProfile.
                     * @param request CreateConversationProfileRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ConversationProfile
                     */
                    public createConversationProfile(request: google.cloud.dialogflow.v2.ICreateConversationProfileRequest, callback: google.cloud.dialogflow.v2.ConversationProfiles.CreateConversationProfileCallback): void;

                    /**
                     * Calls CreateConversationProfile.
                     * @param request CreateConversationProfileRequest message or plain object
                     * @returns Promise
                     */
                    public createConversationProfile(request: google.cloud.dialogflow.v2.ICreateConversationProfileRequest): Promise<google.cloud.dialogflow.v2.ConversationProfile>;

                    /**
                     * Calls UpdateConversationProfile.
                     * @param request UpdateConversationProfileRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ConversationProfile
                     */
                    public updateConversationProfile(request: google.cloud.dialogflow.v2.IUpdateConversationProfileRequest, callback: google.cloud.dialogflow.v2.ConversationProfiles.UpdateConversationProfileCallback): void;

                    /**
                     * Calls UpdateConversationProfile.
                     * @param request UpdateConversationProfileRequest message or plain object
                     * @returns Promise
                     */
                    public updateConversationProfile(request: google.cloud.dialogflow.v2.IUpdateConversationProfileRequest): Promise<google.cloud.dialogflow.v2.ConversationProfile>;

                    /**
                     * Calls DeleteConversationProfile.
                     * @param request DeleteConversationProfileRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Empty
                     */
                    public deleteConversationProfile(request: google.cloud.dialogflow.v2.IDeleteConversationProfileRequest, callback: google.cloud.dialogflow.v2.ConversationProfiles.DeleteConversationProfileCallback): void;

                    /**
                     * Calls DeleteConversationProfile.
                     * @param request DeleteConversationProfileRequest message or plain object
                     * @returns Promise
                     */
                    public deleteConversationProfile(request: google.cloud.dialogflow.v2.IDeleteConversationProfileRequest): Promise<google.protobuf.Empty>;

                    /**
                     * Calls SetSuggestionFeatureConfig.
                     * @param request SetSuggestionFeatureConfigRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setSuggestionFeatureConfig(request: google.cloud.dialogflow.v2.ISetSuggestionFeatureConfigRequest, callback: google.cloud.dialogflow.v2.ConversationProfiles.SetSuggestionFeatureConfigCallback): void;

                    /**
                     * Calls SetSuggestionFeatureConfig.
                     * @param request SetSuggestionFeatureConfigRequest message or plain object
                     * @returns Promise
                     */
                    public setSuggestionFeatureConfig(request: google.cloud.dialogflow.v2.ISetSuggestionFeatureConfigRequest): Promise<google.longrunning.Operation>;

                    /**
                     * Calls ClearSuggestionFeatureConfig.
                     * @param request ClearSuggestionFeatureConfigRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public clearSuggestionFeatureConfig(request: google.cloud.dialogflow.v2.IClearSuggestionFeatureConfigRequest, callback: google.cloud.dialogflow.v2.ConversationProfiles.ClearSuggestionFeatureConfigCallback): void;

                    /**
                     * Calls ClearSuggestionFeatureConfig.
                     * @param request ClearSuggestionFeatureConfigRequest message or plain object
                     * @returns Promise
                     */
                    public clearSuggestionFeatureConfig(request: google.cloud.dialogflow.v2.IClearSuggestionFeatureConfigRequest): Promise<google.longrunning.Operation>;
                }

                namespace ConversationProfiles {

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2.ConversationProfiles|listConversationProfiles}.
                     * @param error Error, if any
                     * @param [response] ListConversationProfilesResponse
                     */
                    type ListConversationProfilesCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2.ListConversationProfilesResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2.ConversationProfiles|getConversationProfile}.
                     * @param error Error, if any
                     * @param [response] ConversationProfile
                     */
                    type GetConversationProfileCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2.ConversationProfile) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2.ConversationProfiles|createConversationProfile}.
                     * @param error Error, if any
                     * @param [response] ConversationProfile
                     */
                    type CreateConversationProfileCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2.ConversationProfile) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2.ConversationProfiles|updateConversationProfile}.
                     * @param error Error, if any
                     * @param [response] ConversationProfile
                     */
                    type UpdateConversationProfileCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2.ConversationProfile) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2.ConversationProfiles|deleteConversationProfile}.
                     * @param error Error, if any
                     * @param [response] Empty
                     */
                    type DeleteConversationProfileCallback = (error: (Error|null), response?: google.protobuf.Empty) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2.ConversationProfiles|setSuggestionFeatureConfig}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetSuggestionFeatureConfigCallback = (error: (Error|null), response?: google.longrunning.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2.ConversationProfiles|clearSuggestionFeatureConfig}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type ClearSuggestionFeatureConfigCallback = (error: (Error|null), response?: google.longrunning.Operation) => void;
                }

                /** Properties of a ConversationProfile. */
                interface IConversationProfile {

                    /** ConversationProfile name */
                    name?: (string|null);

                    /** ConversationProfile displayName */
                    displayName?: (string|null);

                    /** ConversationProfile createTime */
                    createTime?: (google.protobuf.ITimestamp|null);

                    /** ConversationProfile updateTime */
                    updateTime?: (google.protobuf.ITimestamp|null);

                    /** ConversationProfile automatedAgentConfig */
                    automatedAgentConfig?: (google.cloud.dialogflow.v2.IAutomatedAgentConfig|null);

                    /** ConversationProfile humanAgentAssistantConfig */
                    humanAgentAssistantConfig?: (google.cloud.dialogflow.v2.IHumanAgentAssistantConfig|null);

                    /** ConversationProfile humanAgentHandoffConfig */
                    humanAgentHandoffConfig?: (google.cloud.dialogflow.v2.IHumanAgentHandoffConfig|null);

                    /** ConversationProfile notificationConfig */
                    notificationConfig?: (google.cloud.dialogflow.v2.INotificationConfig|null);

                    /** ConversationProfile loggingConfig */
                    loggingConfig?: (google.cloud.dialogflow.v2.ILoggingConfig|null);

                    /** ConversationProfile newMessageEventNotificationConfig */
                    newMessageEventNotificationConfig?: (google.cloud.dialogflow.v2.INotificationConfig|null);

                    /** ConversationProfile newRecognitionResultNotificationConfig */
                    newRecognitionResultNotificationConfig?: (google.cloud.dialogflow.v2.INotificationConfig|null);

                    /** ConversationProfile sttConfig */
                    sttConfig?: (google.cloud.dialogflow.v2.ISpeechToTextConfig|null);

                    /** ConversationProfile languageCode */
                    languageCode?: (string|null);

                    /** ConversationProfile timeZone */
                    timeZone?: (string|null);

                    /** ConversationProfile securitySettings */
                    securitySettings?: (string|null);

                    /** ConversationProfile ttsConfig */
                    ttsConfig?: (google.cloud.dialogflow.v2.ISynthesizeSpeechConfig|null);
                }

                /** Represents a ConversationProfile. */
                class ConversationProfile implements IConversationProfile {

                    /**
                     * Constructs a new ConversationProfile.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IConversationProfile);

                    /** ConversationProfile name. */
                    public name: string;

                    /** ConversationProfile displayName. */
                    public displayName: string;

                    /** ConversationProfile createTime. */
                    public createTime?: (google.protobuf.ITimestamp|null);

                    /** ConversationProfile updateTime. */
                    public updateTime?: (google.protobuf.ITimestamp|null);

                    /** ConversationProfile automatedAgentConfig. */
                    public automatedAgentConfig?: (google.cloud.dialogflow.v2.IAutomatedAgentConfig|null);

                    /** ConversationProfile humanAgentAssistantConfig. */
                    public humanAgentAssistantConfig?: (google.cloud.dialogflow.v2.IHumanAgentAssistantConfig|null);

                    /** ConversationProfile humanAgentHandoffConfig. */
                    public humanAgentHandoffConfig?: (google.cloud.dialogflow.v2.IHumanAgentHandoffConfig|null);

                    /** ConversationProfile notificationConfig. */
                    public notificationConfig?: (google.cloud.dialogflow.v2.INotificationConfig|null);

                    /** ConversationProfile loggingConfig. */
                    public loggingConfig?: (google.cloud.dialogflow.v2.ILoggingConfig|null);

                    /** ConversationProfile newMessageEventNotificationConfig. */
                    public newMessageEventNotificationConfig?: (google.cloud.dialogflow.v2.INotificationConfig|null);

                    /** ConversationProfile newRecognitionResultNotificationConfig. */
                    public newRecognitionResultNotificationConfig?: (google.cloud.dialogflow.v2.INotificationConfig|null);

                    /** ConversationProfile sttConfig. */
                    public sttConfig?: (google.cloud.dialogflow.v2.ISpeechToTextConfig|null);

                    /** ConversationProfile languageCode. */
                    public languageCode: string;

                    /** ConversationProfile timeZone. */
                    public timeZone: string;

                    /** ConversationProfile securitySettings. */
                    public securitySettings: string;

                    /** ConversationProfile ttsConfig. */
                    public ttsConfig?: (google.cloud.dialogflow.v2.ISynthesizeSpeechConfig|null);

                    /**
                     * Creates a new ConversationProfile instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ConversationProfile instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IConversationProfile): google.cloud.dialogflow.v2.ConversationProfile;

                    /**
                     * Encodes the specified ConversationProfile message. Does not implicitly {@link google.cloud.dialogflow.v2.ConversationProfile.verify|verify} messages.
                     * @param message ConversationProfile message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IConversationProfile, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ConversationProfile message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.ConversationProfile.verify|verify} messages.
                     * @param message ConversationProfile message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.IConversationProfile, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ConversationProfile message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ConversationProfile
                     * @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.cloud.dialogflow.v2.ConversationProfile;

                    /**
                     * Decodes a ConversationProfile message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ConversationProfile
                     * @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.cloud.dialogflow.v2.ConversationProfile;

                    /**
                     * Verifies a ConversationProfile 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 ConversationProfile message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ConversationProfile
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.ConversationProfile;

                    /**
                     * Creates a plain object from a ConversationProfile message. Also converts values to other types if specified.
                     * @param message ConversationProfile
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.ConversationProfile, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ConversationProfile to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ConversationProfile
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListConversationProfilesRequest. */
                interface IListConversationProfilesRequest {

                    /** ListConversationProfilesRequest parent */
                    parent?: (string|null);

                    /** ListConversationProfilesRequest pageSize */
                    pageSize?: (number|null);

                    /** ListConversationProfilesRequest pageToken */
                    pageToken?: (string|null);
                }

                /** Represents a ListConversationProfilesRequest. */
                class ListConversationProfilesRequest implements IListConversationProfilesRequest {

                    /**
                     * Constructs a new ListConversationProfilesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IListConversationProfilesRequest);

                    /** ListConversationProfilesRequest parent. */
                    public parent: string;

                    /** ListConversationProfilesRequest pageSize. */
                    public pageSize: number;

                    /** ListConversationProfilesRequest pageToken. */
                    public pageToken: string;

                    /**
                     * Creates a new ListConversationProfilesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListConversationProfilesRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IListConversationProfilesRequest): google.cloud.dialogflow.v2.ListConversationProfilesRequest;

                    /**
                     * Encodes the specified ListConversationProfilesRequest message. Does not implicitly {@link google.cloud.dialogflow.v2.ListConversationProfilesRequest.verify|verify} messages.
                     * @param message ListConversationProfilesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IListConversationProfilesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListConversationProfilesRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.ListConversationProfilesRequest.verify|verify} messages.
                     * @param message ListConversationProfilesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.IListConversationProfilesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListConversationProfilesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListConversationProfilesRequest
                     * @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.cloud.dialogflow.v2.ListConversationProfilesRequest;

                    /**
                     * Decodes a ListConversationProfilesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListConversationProfilesRequest
                     * @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.cloud.dialogflow.v2.ListConversationProfilesRequest;

                    /**
                     * Verifies a ListConversationProfilesRequest 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 ListConversationProfilesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListConversationProfilesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.ListConversationProfilesRequest;

                    /**
                     * Creates a plain object from a ListConversationProfilesRequest message. Also converts values to other types if specified.
                     * @param message ListConversationProfilesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.ListConversationProfilesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListConversationProfilesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListConversationProfilesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListConversationProfilesResponse. */
                interface IListConversationProfilesResponse {

                    /** ListConversationProfilesResponse conversationProfiles */
                    conversationProfiles?: (google.cloud.dialogflow.v2.IConversationProfile[]|null);

                    /** ListConversationProfilesResponse nextPageToken */
                    nextPageToken?: (string|null);
                }

                /** Represents a ListConversationProfilesResponse. */
                class ListConversationProfilesResponse implements IListConversationProfilesResponse {

                    /**
                     * Constructs a new ListConversationProfilesResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IListConversationProfilesResponse);

                    /** ListConversationProfilesResponse conversationProfiles. */
                    public conversationProfiles: google.cloud.dialogflow.v2.IConversationProfile[];

                    /** ListConversationProfilesResponse nextPageToken. */
                    public nextPageToken: string;

                    /**
                     * Creates a new ListConversationProfilesResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListConversationProfilesResponse instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IListConversationProfilesResponse): google.cloud.dialogflow.v2.ListConversationProfilesResponse;

                    /**
                     * Encodes the specified ListConversationProfilesResponse message. Does not implicitly {@link google.cloud.dialogflow.v2.ListConversationProfilesResponse.verify|verify} messages.
                     * @param message ListConversationProfilesResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IListConversationProfilesResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListConversationProfilesResponse message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.ListConversationProfilesResponse.verify|verify} messages.
                     * @param message ListConversationProfilesResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.IListConversationProfilesResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListConversationProfilesResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListConversationProfilesResponse
                     * @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.cloud.dialogflow.v2.ListConversationProfilesResponse;

                    /**
                     * Decodes a ListConversationProfilesResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListConversationProfilesResponse
                     * @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.cloud.dialogflow.v2.ListConversationProfilesResponse;

                    /**
                     * Verifies a ListConversationProfilesResponse 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 ListConversationProfilesResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListConversationProfilesResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.ListConversationProfilesResponse;

                    /**
                     * Creates a plain object from a ListConversationProfilesResponse message. Also converts values to other types if specified.
                     * @param message ListConversationProfilesResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.ListConversationProfilesResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListConversationProfilesResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListConversationProfilesResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetConversationProfileRequest. */
                interface IGetConversationProfileRequest {

                    /** GetConversationProfileRequest name */
                    name?: (string|null);
                }

                /** Represents a GetConversationProfileRequest. */
                class GetConversationProfileRequest implements IGetConversationProfileRequest {

                    /**
                     * Constructs a new GetConversationProfileRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IGetConversationProfileRequest);

                    /** GetConversationProfileRequest name. */
                    public name: string;

                    /**
                     * Creates a new GetConversationProfileRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetConversationProfileRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IGetConversationProfileRequest): google.cloud.dialogflow.v2.GetConversationProfileRequest;

                    /**
                     * Encodes the specified GetConversationProfileRequest message. Does not implicitly {@link google.cloud.dialogflow.v2.GetConversationProfileRequest.verify|verify} messages.
                     * @param message GetConversationProfileRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IGetConversationProfileRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetConversationProfileRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.GetConversationProfileRequest.verify|verify} messages.
                     * @param message GetConversationProfileRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.IGetConversationProfileRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetConversationProfileRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetConversationProfileRequest
                     * @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.cloud.dialogflow.v2.GetConversationProfileRequest;

                    /**
                     * Decodes a GetConversationProfileRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetConversationProfileRequest
                     * @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.cloud.dialogflow.v2.GetConversationProfileRequest;

                    /**
                     * Verifies a GetConversationProfileRequest 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 GetConversationProfileRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetConversationProfileRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.GetConversationProfileRequest;

                    /**
                     * Creates a plain object from a GetConversationProfileRequest message. Also converts values to other types if specified.
                     * @param message GetConversationProfileRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.GetConversationProfileRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetConversationProfileRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetConversationProfileRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a CreateConversationProfileRequest. */
                interface ICreateConversationProfileRequest {

                    /** CreateConversationProfileRequest parent */
                    parent?: (string|null);

                    /** CreateConversationProfileRequest conversationProfile */
                    conversationProfile?: (google.cloud.dialogflow.v2.IConversationProfile|null);
                }

                /** Represents a CreateConversationProfileRequest. */
                class CreateConversationProfileRequest implements ICreateConversationProfileRequest {

                    /**
                     * Constructs a new CreateConversationProfileRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.ICreateConversationProfileRequest);

                    /** CreateConversationProfileRequest parent. */
                    public parent: string;

                    /** CreateConversationProfileRequest conversationProfile. */
                    public conversationProfile?: (google.cloud.dialogflow.v2.IConversationProfile|null);

                    /**
                     * Creates a new CreateConversationProfileRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CreateConversationProfileRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.ICreateConversationProfileRequest): google.cloud.dialogflow.v2.CreateConversationProfileRequest;

                    /**
                     * Encodes the specified CreateConversationProfileRequest message. Does not implicitly {@link google.cloud.dialogflow.v2.CreateConversationProfileRequest.verify|verify} messages.
                     * @param message CreateConversationProfileRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.ICreateConversationProfileRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CreateConversationProfileRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.CreateConversationProfileRequest.verify|verify} messages.
                     * @param message CreateConversationProfileRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.ICreateConversationProfileRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CreateConversationProfileRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CreateConversationProfileRequest
                     * @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.cloud.dialogflow.v2.CreateConversationProfileRequest;

                    /**
                     * Decodes a CreateConversationProfileRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CreateConversationProfileRequest
                     * @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.cloud.dialogflow.v2.CreateConversationProfileRequest;

                    /**
                     * Verifies a CreateConversationProfileRequest 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 CreateConversationProfileRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CreateConversationProfileRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.CreateConversationProfileRequest;

                    /**
                     * Creates a plain object from a CreateConversationProfileRequest message. Also converts values to other types if specified.
                     * @param message CreateConversationProfileRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.CreateConversationProfileRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CreateConversationProfileRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CreateConversationProfileRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an UpdateConversationProfileRequest. */
                interface IUpdateConversationProfileRequest {

                    /** UpdateConversationProfileRequest conversationProfile */
                    conversationProfile?: (google.cloud.dialogflow.v2.IConversationProfile|null);

                    /** UpdateConversationProfileRequest updateMask */
                    updateMask?: (google.protobuf.IFieldMask|null);
                }

                /** Represents an UpdateConversationProfileRequest. */
                class UpdateConversationProfileRequest implements IUpdateConversationProfileRequest {

                    /**
                     * Constructs a new UpdateConversationProfileRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IUpdateConversationProfileRequest);

                    /** UpdateConversationProfileRequest conversationProfile. */
                    public conversationProfile?: (google.cloud.dialogflow.v2.IConversationProfile|null);

                    /** UpdateConversationProfileRequest updateMask. */
                    public updateMask?: (google.protobuf.IFieldMask|null);

                    /**
                     * Creates a new UpdateConversationProfileRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UpdateConversationProfileRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IUpdateConversationProfileRequest): google.cloud.dialogflow.v2.UpdateConversationProfileRequest;

                    /**
                     * Encodes the specified UpdateConversationProfileRequest message. Does not implicitly {@link google.cloud.dialogflow.v2.UpdateConversationProfileRequest.verify|verify} messages.
                     * @param message UpdateConversationProfileRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IUpdateConversationProfileRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified UpdateConversationProfileRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.UpdateConversationProfileRequest.verify|verify} messages.
                     * @param message UpdateConversationProfileRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.IUpdateConversationProfileRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an UpdateConversationProfileRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns UpdateConversationProfileRequest
                     * @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.cloud.dialogflow.v2.UpdateConversationProfileRequest;

                    /**
                     * Decodes an UpdateConversationProfileRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns UpdateConversationProfileRequest
                     * @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.cloud.dialogflow.v2.UpdateConversationProfileRequest;

                    /**
                     * Verifies an UpdateConversationProfileRequest 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 UpdateConversationProfileRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UpdateConversationProfileRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.UpdateConversationProfileRequest;

                    /**
                     * Creates a plain object from an UpdateConversationProfileRequest message. Also converts values to other types if specified.
                     * @param message UpdateConversationProfileRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.UpdateConversationProfileRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this UpdateConversationProfileRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for UpdateConversationProfileRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteConversationProfileRequest. */
                interface IDeleteConversationProfileRequest {

                    /** DeleteConversationProfileRequest name */
                    name?: (string|null);
                }

                /** Represents a DeleteConversationProfileRequest. */
                class DeleteConversationProfileRequest implements IDeleteConversationProfileRequest {

                    /**
                     * Constructs a new DeleteConversationProfileRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IDeleteConversationProfileRequest);

                    /** DeleteConversationProfileRequest name. */
                    public name: string;

                    /**
                     * Creates a new DeleteConversationProfileRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteConversationProfileRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IDeleteConversationProfileRequest): google.cloud.dialogflow.v2.DeleteConversationProfileRequest;

                    /**
                     * Encodes the specified DeleteConversationProfileRequest message. Does not implicitly {@link google.cloud.dialogflow.v2.DeleteConversationProfileRequest.verify|verify} messages.
                     * @param message DeleteConversationProfileRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IDeleteConversationProfileRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteConversationProfileRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.DeleteConversationProfileRequest.verify|verify} messages.
                     * @param message DeleteConversationProfileRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.IDeleteConversationProfileRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteConversationProfileRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteConversationProfileRequest
                     * @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.cloud.dialogflow.v2.DeleteConversationProfileRequest;

                    /**
                     * Decodes a DeleteConversationProfileRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteConversationProfileRequest
                     * @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.cloud.dialogflow.v2.DeleteConversationProfileRequest;

                    /**
                     * Verifies a DeleteConversationProfileRequest 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 DeleteConversationProfileRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteConversationProfileRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.DeleteConversationProfileRequest;

                    /**
                     * Creates a plain object from a DeleteConversationProfileRequest message. Also converts values to other types if specified.
                     * @param message DeleteConversationProfileRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.DeleteConversationProfileRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteConversationProfileRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteConversationProfileRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AutomatedAgentConfig. */
                interface IAutomatedAgentConfig {

                    /** AutomatedAgentConfig agent */
                    agent?: (string|null);

                    /** AutomatedAgentConfig sessionTtl */
                    sessionTtl?: (google.protobuf.IDuration|null);
                }

                /** Represents an AutomatedAgentConfig. */
                class AutomatedAgentConfig implements IAutomatedAgentConfig {

                    /**
                     * Constructs a new AutomatedAgentConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IAutomatedAgentConfig);

                    /** AutomatedAgentConfig agent. */
                    public agent: string;

                    /** AutomatedAgentConfig sessionTtl. */
                    public sessionTtl?: (google.protobuf.IDuration|null);

                    /**
                     * Creates a new AutomatedAgentConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AutomatedAgentConfig instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IAutomatedAgentConfig): google.cloud.dialogflow.v2.AutomatedAgentConfig;

                    /**
                     * Encodes the specified AutomatedAgentConfig message. Does not implicitly {@link google.cloud.dialogflow.v2.AutomatedAgentConfig.verify|verify} messages.
                     * @param message AutomatedAgentConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IAutomatedAgentConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AutomatedAgentConfig message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.AutomatedAgentConfig.verify|verify} messages.
                     * @param message AutomatedAgentConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.IAutomatedAgentConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AutomatedAgentConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AutomatedAgentConfig
                     * @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.cloud.dialogflow.v2.AutomatedAgentConfig;

                    /**
                     * Decodes an AutomatedAgentConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AutomatedAgentConfig
                     * @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.cloud.dialogflow.v2.AutomatedAgentConfig;

                    /**
                     * Verifies an AutomatedAgentConfig 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 AutomatedAgentConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AutomatedAgentConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.AutomatedAgentConfig;

                    /**
                     * Creates a plain object from an AutomatedAgentConfig message. Also converts values to other types if specified.
                     * @param message AutomatedAgentConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.AutomatedAgentConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AutomatedAgentConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AutomatedAgentConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a HumanAgentAssistantConfig. */
                interface IHumanAgentAssistantConfig {

                    /** HumanAgentAssistantConfig notificationConfig */
                    notificationConfig?: (google.cloud.dialogflow.v2.INotificationConfig|null);

                    /** HumanAgentAssistantConfig humanAgentSuggestionConfig */
                    humanAgentSuggestionConfig?: (google.cloud.dialogflow.v2.HumanAgentAssistantConfig.ISuggestionConfig|null);

                    /** HumanAgentAssistantConfig endUserSuggestionConfig */
                    endUserSuggestionConfig?: (google.cloud.dialogflow.v2.HumanAgentAssistantConfig.ISuggestionConfig|null);

                    /** HumanAgentAssistantConfig messageAnalysisConfig */
                    messageAnalysisConfig?: (google.cloud.dialogflow.v2.HumanAgentAssistantConfig.IMessageAnalysisConfig|null);
                }

                /** Represents a HumanAgentAssistantConfig. */
                class HumanAgentAssistantConfig implements IHumanAgentAssistantConfig {

                    /**
                     * Constructs a new HumanAgentAssistantConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IHumanAgentAssistantConfig);

                    /** HumanAgentAssistantConfig notificationConfig. */
                    public notificationConfig?: (google.cloud.dialogflow.v2.INotificationConfig|null);

                    /** HumanAgentAssistantConfig humanAgentSuggestionConfig. */
                    public humanAgentSuggestionConfig?: (google.cloud.dialogflow.v2.HumanAgentAssistantConfig.ISuggestionConfig|null);

                    /** HumanAgentAssistantConfig endUserSuggestionConfig. */
                    public endUserSuggestionConfig?: (google.cloud.dialogflow.v2.HumanAgentAssistantConfig.ISuggestionConfig|null);

                    /** HumanAgentAssistantConfig messageAnalysisConfig. */
                    public messageAnalysisConfig?: (google.cloud.dialogflow.v2.HumanAgentAssistantConfig.IMessageAnalysisConfig|null);

                    /**
                     * Creates a new HumanAgentAssistantConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns HumanAgentAssistantConfig instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IHumanAgentAssistantConfig): google.cloud.dialogflow.v2.HumanAgentAssistantConfig;

                    /**
                     * Encodes the specified HumanAgentAssistantConfig message. Does not implicitly {@link google.cloud.dialogflow.v2.HumanAgentAssistantConfig.verify|verify} messages.
                     * @param message HumanAgentAssistantConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IHumanAgentAssistantConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified HumanAgentAssistantConfig message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.HumanAgentAssistantConfig.verify|verify} messages.
                     * @param message HumanAgentAssistantConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.IHumanAgentAssistantConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a HumanAgentAssistantConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns HumanAgentAssistantConfig
                     * @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.cloud.dialogflow.v2.HumanAgentAssistantConfig;

                    /**
                     * Decodes a HumanAgentAssistantConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns HumanAgentAssistantConfig
                     * @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.cloud.dialogflow.v2.HumanAgentAssistantConfig;

                    /**
                     * Verifies a HumanAgentAssistantConfig 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 HumanAgentAssistantConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns HumanAgentAssistantConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.HumanAgentAssistantConfig;

                    /**
                     * Creates a plain object from a HumanAgentAssistantConfig message. Also converts values to other types if specified.
                     * @param message HumanAgentAssistantConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.HumanAgentAssistantConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this HumanAgentAssistantConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for HumanAgentAssistantConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace HumanAgentAssistantConfig {

                    /** Properties of a SuggestionTriggerSettings. */
                    interface ISuggestionTriggerSettings {

                        /** SuggestionTriggerSettings noSmalltalk */
                        noSmalltalk?: (boolean|null);

                        /** SuggestionTriggerSettings onlyEndUser */
                        onlyEndUser?: (boolean|null);
                    }

                    /** Represents a SuggestionTriggerSettings. */
                    class SuggestionTriggerSettings implements ISuggestionTriggerSettings {

                        /**
                         * Constructs a new SuggestionTriggerSettings.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2.HumanAgentAssistantConfig.ISuggestionTriggerSettings);

                        /** SuggestionTriggerSettings noSmalltalk. */
                        public noSmalltalk: boolean;

                        /** SuggestionTriggerSettings onlyEndUser. */
                        public onlyEndUser: boolean;

                        /**
                         * Creates a new SuggestionTriggerSettings instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns SuggestionTriggerSettings instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2.HumanAgentAssistantConfig.ISuggestionTriggerSettings): google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionTriggerSettings;

                        /**
                         * Encodes the specified SuggestionTriggerSettings message. Does not implicitly {@link google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionTriggerSettings.verify|verify} messages.
                         * @param message SuggestionTriggerSettings message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2.HumanAgentAssistantConfig.ISuggestionTriggerSettings, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified SuggestionTriggerSettings message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionTriggerSettings.verify|verify} messages.
                         * @param message SuggestionTriggerSettings message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2.HumanAgentAssistantConfig.ISuggestionTriggerSettings, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a SuggestionTriggerSettings message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns SuggestionTriggerSettings
                         * @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.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionTriggerSettings;

                        /**
                         * Decodes a SuggestionTriggerSettings message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns SuggestionTriggerSettings
                         * @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.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionTriggerSettings;

                        /**
                         * Verifies a SuggestionTriggerSettings 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 SuggestionTriggerSettings message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns SuggestionTriggerSettings
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionTriggerSettings;

                        /**
                         * Creates a plain object from a SuggestionTriggerSettings message. Also converts values to other types if specified.
                         * @param message SuggestionTriggerSettings
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionTriggerSettings, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this SuggestionTriggerSettings to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for SuggestionTriggerSettings
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    /** Properties of a SuggestionFeatureConfig. */
                    interface ISuggestionFeatureConfig {

                        /** SuggestionFeatureConfig suggestionFeature */
                        suggestionFeature?: (google.cloud.dialogflow.v2.ISuggestionFeature|null);

                        /** SuggestionFeatureConfig enableEventBasedSuggestion */
                        enableEventBasedSuggestion?: (boolean|null);

                        /** SuggestionFeatureConfig disableAgentQueryLogging */
                        disableAgentQueryLogging?: (boolean|null);

                        /** SuggestionFeatureConfig enableQuerySuggestionWhenNoAnswer */
                        enableQuerySuggestionWhenNoAnswer?: (boolean|null);

                        /** SuggestionFeatureConfig enableConversationAugmentedQuery */
                        enableConversationAugmentedQuery?: (boolean|null);

                        /** SuggestionFeatureConfig enableQuerySuggestionOnly */
                        enableQuerySuggestionOnly?: (boolean|null);

                        /** SuggestionFeatureConfig enableResponseDebugInfo */
                        enableResponseDebugInfo?: (boolean|null);

                        /** SuggestionFeatureConfig raiSettings */
                        raiSettings?: (google.cloud.dialogflow.v2.IRaiSettings|null);

                        /** SuggestionFeatureConfig suggestionTriggerSettings */
                        suggestionTriggerSettings?: (google.cloud.dialogflow.v2.HumanAgentAssistantConfig.ISuggestionTriggerSettings|null);

                        /** SuggestionFeatureConfig queryConfig */
                        queryConfig?: (google.cloud.dialogflow.v2.HumanAgentAssistantConfig.ISuggestionQueryConfig|null);

                        /** SuggestionFeatureConfig conversationModelConfig */
                        conversationModelConfig?: (google.cloud.dialogflow.v2.HumanAgentAssistantConfig.IConversationModelConfig|null);

                        /** SuggestionFeatureConfig conversationProcessConfig */
                        conversationProcessConfig?: (google.cloud.dialogflow.v2.HumanAgentAssistantConfig.IConversationProcessConfig|null);
                    }

                    /** Represents a SuggestionFeatureConfig. */
                    class SuggestionFeatureConfig implements ISuggestionFeatureConfig {

                        /**
                         * Constructs a new SuggestionFeatureConfig.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2.HumanAgentAssistantConfig.ISuggestionFeatureConfig);

                        /** SuggestionFeatureConfig suggestionFeature. */
                        public suggestionFeature?: (google.cloud.dialogflow.v2.ISuggestionFeature|null);

                        /** SuggestionFeatureConfig enableEventBasedSuggestion. */
                        public enableEventBasedSuggestion: boolean;

                        /** SuggestionFeatureConfig disableAgentQueryLogging. */
                        public disableAgentQueryLogging: boolean;

                        /** SuggestionFeatureConfig enableQuerySuggestionWhenNoAnswer. */
                        public enableQuerySuggestionWhenNoAnswer: boolean;

                        /** SuggestionFeatureConfig enableConversationAugmentedQuery. */
                        public enableConversationAugmentedQuery: boolean;

                        /** SuggestionFeatureConfig enableQuerySuggestionOnly. */
                        public enableQuerySuggestionOnly: boolean;

                        /** SuggestionFeatureConfig enableResponseDebugInfo. */
                        public enableResponseDebugInfo: boolean;

                        /** SuggestionFeatureConfig raiSettings. */
                        public raiSettings?: (google.cloud.dialogflow.v2.IRaiSettings|null);

                        /** SuggestionFeatureConfig suggestionTriggerSettings. */
                        public suggestionTriggerSettings?: (google.cloud.dialogflow.v2.HumanAgentAssistantConfig.ISuggestionTriggerSettings|null);

                        /** SuggestionFeatureConfig queryConfig. */
                        public queryConfig?: (google.cloud.dialogflow.v2.HumanAgentAssistantConfig.ISuggestionQueryConfig|null);

                        /** SuggestionFeatureConfig conversationModelConfig. */
                        public conversationModelConfig?: (google.cloud.dialogflow.v2.HumanAgentAssistantConfig.IConversationModelConfig|null);

                        /** SuggestionFeatureConfig conversationProcessConfig. */
                        public conversationProcessConfig?: (google.cloud.dialogflow.v2.HumanAgentAssistantConfig.IConversationProcessConfig|null);

                        /**
                         * Creates a new SuggestionFeatureConfig instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns SuggestionFeatureConfig instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2.HumanAgentAssistantConfig.ISuggestionFeatureConfig): google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionFeatureConfig;

                        /**
                         * Encodes the specified SuggestionFeatureConfig message. Does not implicitly {@link google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionFeatureConfig.verify|verify} messages.
                         * @param message SuggestionFeatureConfig message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2.HumanAgentAssistantConfig.ISuggestionFeatureConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified SuggestionFeatureConfig message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionFeatureConfig.verify|verify} messages.
                         * @param message SuggestionFeatureConfig message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2.HumanAgentAssistantConfig.ISuggestionFeatureConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a SuggestionFeatureConfig message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns SuggestionFeatureConfig
                         * @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.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionFeatureConfig;

                        /**
                         * Decodes a SuggestionFeatureConfig message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns SuggestionFeatureConfig
                         * @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.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionFeatureConfig;

                        /**
                         * Verifies a SuggestionFeatureConfig 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 SuggestionFeatureConfig message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns SuggestionFeatureConfig
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionFeatureConfig;

                        /**
                         * Creates a plain object from a SuggestionFeatureConfig message. Also converts values to other types if specified.
                         * @param message SuggestionFeatureConfig
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionFeatureConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this SuggestionFeatureConfig to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for SuggestionFeatureConfig
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    /** Properties of a SuggestionConfig. */
                    interface ISuggestionConfig {

                        /** SuggestionConfig featureConfigs */
                        featureConfigs?: (google.cloud.dialogflow.v2.HumanAgentAssistantConfig.ISuggestionFeatureConfig[]|null);

                        /** SuggestionConfig groupSuggestionResponses */
                        groupSuggestionResponses?: (boolean|null);

                        /** SuggestionConfig generators */
                        generators?: (string[]|null);

                        /** SuggestionConfig disableHighLatencyFeaturesSyncDelivery */
                        disableHighLatencyFeaturesSyncDelivery?: (boolean|null);

                        /** SuggestionConfig skipEmptyEventBasedSuggestion */
                        skipEmptyEventBasedSuggestion?: (boolean|null);

                        /** SuggestionConfig useUnredactedConversationData */
                        useUnredactedConversationData?: (boolean|null);

                        /** SuggestionConfig enableAsyncToolCall */
                        enableAsyncToolCall?: (boolean|null);
                    }

                    /** Represents a SuggestionConfig. */
                    class SuggestionConfig implements ISuggestionConfig {

                        /**
                         * Constructs a new SuggestionConfig.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2.HumanAgentAssistantConfig.ISuggestionConfig);

                        /** SuggestionConfig featureConfigs. */
                        public featureConfigs: google.cloud.dialogflow.v2.HumanAgentAssistantConfig.ISuggestionFeatureConfig[];

                        /** SuggestionConfig groupSuggestionResponses. */
                        public groupSuggestionResponses: boolean;

                        /** SuggestionConfig generators. */
                        public generators: string[];

                        /** SuggestionConfig disableHighLatencyFeaturesSyncDelivery. */
                        public disableHighLatencyFeaturesSyncDelivery: boolean;

                        /** SuggestionConfig skipEmptyEventBasedSuggestion. */
                        public skipEmptyEventBasedSuggestion: boolean;

                        /** SuggestionConfig useUnredactedConversationData. */
                        public useUnredactedConversationData: boolean;

                        /** SuggestionConfig enableAsyncToolCall. */
                        public enableAsyncToolCall: boolean;

                        /**
                         * Creates a new SuggestionConfig instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns SuggestionConfig instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2.HumanAgentAssistantConfig.ISuggestionConfig): google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionConfig;

                        /**
                         * Encodes the specified SuggestionConfig message. Does not implicitly {@link google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionConfig.verify|verify} messages.
                         * @param message SuggestionConfig message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2.HumanAgentAssistantConfig.ISuggestionConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified SuggestionConfig message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionConfig.verify|verify} messages.
                         * @param message SuggestionConfig message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2.HumanAgentAssistantConfig.ISuggestionConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a SuggestionConfig message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns SuggestionConfig
                         * @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.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionConfig;

                        /**
                         * Decodes a SuggestionConfig message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns SuggestionConfig
                         * @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.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionConfig;

                        /**
                         * Verifies a SuggestionConfig 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 SuggestionConfig message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns SuggestionConfig
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionConfig;

                        /**
                         * Creates a plain object from a SuggestionConfig message. Also converts values to other types if specified.
                         * @param message SuggestionConfig
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this SuggestionConfig to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for SuggestionConfig
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    /** Properties of a SuggestionQueryConfig. */
                    interface ISuggestionQueryConfig {

                        /** SuggestionQueryConfig knowledgeBaseQuerySource */
                        knowledgeBaseQuerySource?: (google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionQueryConfig.IKnowledgeBaseQuerySource|null);

                        /** SuggestionQueryConfig documentQuerySource */
                        documentQuerySource?: (google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionQueryConfig.IDocumentQuerySource|null);

                        /** SuggestionQueryConfig dialogflowQuerySource */
                        dialogflowQuerySource?: (google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionQueryConfig.IDialogflowQuerySource|null);

                        /** SuggestionQueryConfig maxResults */
                        maxResults?: (number|null);

                        /** SuggestionQueryConfig confidenceThreshold */
                        confidenceThreshold?: (number|null);

                        /** SuggestionQueryConfig contextFilterSettings */
                        contextFilterSettings?: (google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionQueryConfig.IContextFilterSettings|null);

                        /** SuggestionQueryConfig sections */
                        sections?: (google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionQueryConfig.ISections|null);

                        /** SuggestionQueryConfig contextSize */
                        contextSize?: (number|null);
                    }

                    /** Represents a SuggestionQueryConfig. */
                    class SuggestionQueryConfig implements ISuggestionQueryConfig {

                        /**
                         * Constructs a new SuggestionQueryConfig.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2.HumanAgentAssistantConfig.ISuggestionQueryConfig);

                        /** SuggestionQueryConfig knowledgeBaseQuerySource. */
                        public knowledgeBaseQuerySource?: (google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionQueryConfig.IKnowledgeBaseQuerySource|null);

                        /** SuggestionQueryConfig documentQuerySource. */
                        public documentQuerySource?: (google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionQueryConfig.IDocumentQuerySource|null);

                        /** SuggestionQueryConfig dialogflowQuerySource. */
                        public dialogflowQuerySource?: (google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionQueryConfig.IDialogflowQuerySource|null);

                        /** SuggestionQueryConfig maxResults. */
                        public maxResults: number;

                        /** SuggestionQueryConfig confidenceThreshold. */
                        public confidenceThreshold: number;

                        /** SuggestionQueryConfig contextFilterSettings. */
                        public contextFilterSettings?: (google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionQueryConfig.IContextFilterSettings|null);

                        /** SuggestionQueryConfig sections. */
                        public sections?: (google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionQueryConfig.ISections|null);

                        /** SuggestionQueryConfig contextSize. */
                        public contextSize: number;

                        /** SuggestionQueryConfig querySource. */
                        public querySource?: ("knowledgeBaseQuerySource"|"documentQuerySource"|"dialogflowQuerySource");

                        /**
                         * Creates a new SuggestionQueryConfig instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns SuggestionQueryConfig instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2.HumanAgentAssistantConfig.ISuggestionQueryConfig): google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionQueryConfig;

                        /**
                         * Encodes the specified SuggestionQueryConfig message. Does not implicitly {@link google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionQueryConfig.verify|verify} messages.
                         * @param message SuggestionQueryConfig message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2.HumanAgentAssistantConfig.ISuggestionQueryConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified SuggestionQueryConfig message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionQueryConfig.verify|verify} messages.
                         * @param message SuggestionQueryConfig message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2.HumanAgentAssistantConfig.ISuggestionQueryConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a SuggestionQueryConfig message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns SuggestionQueryConfig
                         * @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.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionQueryConfig;

                        /**
                         * Decodes a SuggestionQueryConfig message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns SuggestionQueryConfig
                         * @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.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionQueryConfig;

                        /**
                         * Verifies a SuggestionQueryConfig 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 SuggestionQueryConfig message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns SuggestionQueryConfig
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionQueryConfig;

                        /**
                         * Creates a plain object from a SuggestionQueryConfig message. Also converts values to other types if specified.
                         * @param message SuggestionQueryConfig
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionQueryConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this SuggestionQueryConfig to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for SuggestionQueryConfig
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    namespace SuggestionQueryConfig {

                        /** Properties of a KnowledgeBaseQuerySource. */
                        interface IKnowledgeBaseQuerySource {

                            /** KnowledgeBaseQuerySource knowledgeBases */
                            knowledgeBases?: (string[]|null);
                        }

                        /** Represents a KnowledgeBaseQuerySource. */
                        class KnowledgeBaseQuerySource implements IKnowledgeBaseQuerySource {

                            /**
                             * Constructs a new KnowledgeBaseQuerySource.
                             * @param [properties] Properties to set
                             */
                            constructor(properties?: google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionQueryConfig.IKnowledgeBaseQuerySource);

                            /** KnowledgeBaseQuerySource knowledgeBases. */
                            public knowledgeBases: string[];

                            /**
                             * Creates a new KnowledgeBaseQuerySource instance using the specified properties.
                             * @param [properties] Properties to set
                             * @returns KnowledgeBaseQuerySource instance
                             */
                            public static create(properties?: google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionQueryConfig.IKnowledgeBaseQuerySource): google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionQueryConfig.KnowledgeBaseQuerySource;

                            /**
                             * Encodes the specified KnowledgeBaseQuerySource message. Does not implicitly {@link google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionQueryConfig.KnowledgeBaseQuerySource.verify|verify} messages.
                             * @param message KnowledgeBaseQuerySource message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encode(message: google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionQueryConfig.IKnowledgeBaseQuerySource, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Encodes the specified KnowledgeBaseQuerySource message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionQueryConfig.KnowledgeBaseQuerySource.verify|verify} messages.
                             * @param message KnowledgeBaseQuerySource message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encodeDelimited(message: google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionQueryConfig.IKnowledgeBaseQuerySource, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Decodes a KnowledgeBaseQuerySource message from the specified reader or buffer.
                             * @param reader Reader or buffer to decode from
                             * @param [length] Message length if known beforehand
                             * @returns KnowledgeBaseQuerySource
                             * @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.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionQueryConfig.KnowledgeBaseQuerySource;

                            /**
                             * Decodes a KnowledgeBaseQuerySource message from the specified reader or buffer, length delimited.
                             * @param reader Reader or buffer to decode from
                             * @returns KnowledgeBaseQuerySource
                             * @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.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionQueryConfig.KnowledgeBaseQuerySource;

                            /**
                             * Verifies a KnowledgeBaseQuerySource 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 KnowledgeBaseQuerySource message from a plain object. Also converts values to their respective internal types.
                             * @param object Plain object
                             * @returns KnowledgeBaseQuerySource
                             */
                            public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionQueryConfig.KnowledgeBaseQuerySource;

                            /**
                             * Creates a plain object from a KnowledgeBaseQuerySource message. Also converts values to other types if specified.
                             * @param message KnowledgeBaseQuerySource
                             * @param [options] Conversion options
                             * @returns Plain object
                             */
                            public static toObject(message: google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionQueryConfig.KnowledgeBaseQuerySource, options?: $protobuf.IConversionOptions): { [k: string]: any };

                            /**
                             * Converts this KnowledgeBaseQuerySource to JSON.
                             * @returns JSON object
                             */
                            public toJSON(): { [k: string]: any };

                            /**
                             * Gets the default type url for KnowledgeBaseQuerySource
                             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                             * @returns The default type url
                             */
                            public static getTypeUrl(typeUrlPrefix?: string): string;
                        }

                        /** Properties of a DocumentQuerySource. */
                        interface IDocumentQuerySource {

                            /** DocumentQuerySource documents */
                            documents?: (string[]|null);
                        }

                        /** Represents a DocumentQuerySource. */
                        class DocumentQuerySource implements IDocumentQuerySource {

                            /**
                             * Constructs a new DocumentQuerySource.
                             * @param [properties] Properties to set
                             */
                            constructor(properties?: google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionQueryConfig.IDocumentQuerySource);

                            /** DocumentQuerySource documents. */
                            public documents: string[];

                            /**
                             * Creates a new DocumentQuerySource instance using the specified properties.
                             * @param [properties] Properties to set
                             * @returns DocumentQuerySource instance
                             */
                            public static create(properties?: google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionQueryConfig.IDocumentQuerySource): google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionQueryConfig.DocumentQuerySource;

                            /**
                             * Encodes the specified DocumentQuerySource message. Does not implicitly {@link google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionQueryConfig.DocumentQuerySource.verify|verify} messages.
                             * @param message DocumentQuerySource message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encode(message: google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionQueryConfig.IDocumentQuerySource, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Encodes the specified DocumentQuerySource message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionQueryConfig.DocumentQuerySource.verify|verify} messages.
                             * @param message DocumentQuerySource message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encodeDelimited(message: google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionQueryConfig.IDocumentQuerySource, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Decodes a DocumentQuerySource message from the specified reader or buffer.
                             * @param reader Reader or buffer to decode from
                             * @param [length] Message length if known beforehand
                             * @returns DocumentQuerySource
                             * @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.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionQueryConfig.DocumentQuerySource;

                            /**
                             * Decodes a DocumentQuerySource message from the specified reader or buffer, length delimited.
                             * @param reader Reader or buffer to decode from
                             * @returns DocumentQuerySource
                             * @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.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionQueryConfig.DocumentQuerySource;

                            /**
                             * Verifies a DocumentQuerySource 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 DocumentQuerySource message from a plain object. Also converts values to their respective internal types.
                             * @param object Plain object
                             * @returns DocumentQuerySource
                             */
                            public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionQueryConfig.DocumentQuerySource;

                            /**
                             * Creates a plain object from a DocumentQuerySource message. Also converts values to other types if specified.
                             * @param message DocumentQuerySource
                             * @param [options] Conversion options
                             * @returns Plain object
                             */
                            public static toObject(message: google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionQueryConfig.DocumentQuerySource, options?: $protobuf.IConversionOptions): { [k: string]: any };

                            /**
                             * Converts this DocumentQuerySource to JSON.
                             * @returns JSON object
                             */
                            public toJSON(): { [k: string]: any };

                            /**
                             * Gets the default type url for DocumentQuerySource
                             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                             * @returns The default type url
                             */
                            public static getTypeUrl(typeUrlPrefix?: string): string;
                        }

                        /** Properties of a DialogflowQuerySource. */
                        interface IDialogflowQuerySource {

                            /** DialogflowQuerySource agent */
                            agent?: (string|null);

                            /** DialogflowQuerySource humanAgentSideConfig */
                            humanAgentSideConfig?: (google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionQueryConfig.DialogflowQuerySource.IHumanAgentSideConfig|null);
                        }

                        /** Represents a DialogflowQuerySource. */
                        class DialogflowQuerySource implements IDialogflowQuerySource {

                            /**
                             * Constructs a new DialogflowQuerySource.
                             * @param [properties] Properties to set
                             */
                            constructor(properties?: google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionQueryConfig.IDialogflowQuerySource);

                            /** DialogflowQuerySource agent. */
                            public agent: string;

                            /** DialogflowQuerySource humanAgentSideConfig. */
                            public humanAgentSideConfig?: (google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionQueryConfig.DialogflowQuerySource.IHumanAgentSideConfig|null);

                            /**
                             * Creates a new DialogflowQuerySource instance using the specified properties.
                             * @param [properties] Properties to set
                             * @returns DialogflowQuerySource instance
                             */
                            public static create(properties?: google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionQueryConfig.IDialogflowQuerySource): google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionQueryConfig.DialogflowQuerySource;

                            /**
                             * Encodes the specified DialogflowQuerySource message. Does not implicitly {@link google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionQueryConfig.DialogflowQuerySource.verify|verify} messages.
                             * @param message DialogflowQuerySource message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encode(message: google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionQueryConfig.IDialogflowQuerySource, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Encodes the specified DialogflowQuerySource message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionQueryConfig.DialogflowQuerySource.verify|verify} messages.
                             * @param message DialogflowQuerySource message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encodeDelimited(message: google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionQueryConfig.IDialogflowQuerySource, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Decodes a DialogflowQuerySource message from the specified reader or buffer.
                             * @param reader Reader or buffer to decode from
                             * @param [length] Message length if known beforehand
                             * @returns DialogflowQuerySource
                             * @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.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionQueryConfig.DialogflowQuerySource;

                            /**
                             * Decodes a DialogflowQuerySource message from the specified reader or buffer, length delimited.
                             * @param reader Reader or buffer to decode from
                             * @returns DialogflowQuerySource
                             * @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.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionQueryConfig.DialogflowQuerySource;

                            /**
                             * Verifies a DialogflowQuerySource 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 DialogflowQuerySource message from a plain object. Also converts values to their respective internal types.
                             * @param object Plain object
                             * @returns DialogflowQuerySource
                             */
                            public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionQueryConfig.DialogflowQuerySource;

                            /**
                             * Creates a plain object from a DialogflowQuerySource message. Also converts values to other types if specified.
                             * @param message DialogflowQuerySource
                             * @param [options] Conversion options
                             * @returns Plain object
                             */
                            public static toObject(message: google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionQueryConfig.DialogflowQuerySource, options?: $protobuf.IConversionOptions): { [k: string]: any };

                            /**
                             * Converts this DialogflowQuerySource to JSON.
                             * @returns JSON object
                             */
                            public toJSON(): { [k: string]: any };

                            /**
                             * Gets the default type url for DialogflowQuerySource
                             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                             * @returns The default type url
                             */
                            public static getTypeUrl(typeUrlPrefix?: string): string;
                        }

                        namespace DialogflowQuerySource {

                            /** Properties of a HumanAgentSideConfig. */
                            interface IHumanAgentSideConfig {

                                /** HumanAgentSideConfig agent */
                                agent?: (string|null);
                            }

                            /** Represents a HumanAgentSideConfig. */
                            class HumanAgentSideConfig implements IHumanAgentSideConfig {

                                /**
                                 * Constructs a new HumanAgentSideConfig.
                                 * @param [properties] Properties to set
                                 */
                                constructor(properties?: google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionQueryConfig.DialogflowQuerySource.IHumanAgentSideConfig);

                                /** HumanAgentSideConfig agent. */
                                public agent: string;

                                /**
                                 * Creates a new HumanAgentSideConfig instance using the specified properties.
                                 * @param [properties] Properties to set
                                 * @returns HumanAgentSideConfig instance
                                 */
                                public static create(properties?: google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionQueryConfig.DialogflowQuerySource.IHumanAgentSideConfig): google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionQueryConfig.DialogflowQuerySource.HumanAgentSideConfig;

                                /**
                                 * Encodes the specified HumanAgentSideConfig message. Does not implicitly {@link google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionQueryConfig.DialogflowQuerySource.HumanAgentSideConfig.verify|verify} messages.
                                 * @param message HumanAgentSideConfig message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encode(message: google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionQueryConfig.DialogflowQuerySource.IHumanAgentSideConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Encodes the specified HumanAgentSideConfig message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionQueryConfig.DialogflowQuerySource.HumanAgentSideConfig.verify|verify} messages.
                                 * @param message HumanAgentSideConfig message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encodeDelimited(message: google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionQueryConfig.DialogflowQuerySource.IHumanAgentSideConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Decodes a HumanAgentSideConfig message from the specified reader or buffer.
                                 * @param reader Reader or buffer to decode from
                                 * @param [length] Message length if known beforehand
                                 * @returns HumanAgentSideConfig
                                 * @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.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionQueryConfig.DialogflowQuerySource.HumanAgentSideConfig;

                                /**
                                 * Decodes a HumanAgentSideConfig message from the specified reader or buffer, length delimited.
                                 * @param reader Reader or buffer to decode from
                                 * @returns HumanAgentSideConfig
                                 * @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.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionQueryConfig.DialogflowQuerySource.HumanAgentSideConfig;

                                /**
                                 * Verifies a HumanAgentSideConfig 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 HumanAgentSideConfig message from a plain object. Also converts values to their respective internal types.
                                 * @param object Plain object
                                 * @returns HumanAgentSideConfig
                                 */
                                public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionQueryConfig.DialogflowQuerySource.HumanAgentSideConfig;

                                /**
                                 * Creates a plain object from a HumanAgentSideConfig message. Also converts values to other types if specified.
                                 * @param message HumanAgentSideConfig
                                 * @param [options] Conversion options
                                 * @returns Plain object
                                 */
                                public static toObject(message: google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionQueryConfig.DialogflowQuerySource.HumanAgentSideConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                                /**
                                 * Converts this HumanAgentSideConfig to JSON.
                                 * @returns JSON object
                                 */
                                public toJSON(): { [k: string]: any };

                                /**
                                 * Gets the default type url for HumanAgentSideConfig
                                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                                 * @returns The default type url
                                 */
                                public static getTypeUrl(typeUrlPrefix?: string): string;
                            }
                        }

                        /** Properties of a ContextFilterSettings. */
                        interface IContextFilterSettings {

                            /** ContextFilterSettings dropHandoffMessages */
                            dropHandoffMessages?: (boolean|null);

                            /** ContextFilterSettings dropVirtualAgentMessages */
                            dropVirtualAgentMessages?: (boolean|null);

                            /** ContextFilterSettings dropIvrMessages */
                            dropIvrMessages?: (boolean|null);
                        }

                        /** Represents a ContextFilterSettings. */
                        class ContextFilterSettings implements IContextFilterSettings {

                            /**
                             * Constructs a new ContextFilterSettings.
                             * @param [properties] Properties to set
                             */
                            constructor(properties?: google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionQueryConfig.IContextFilterSettings);

                            /** ContextFilterSettings dropHandoffMessages. */
                            public dropHandoffMessages: boolean;

                            /** ContextFilterSettings dropVirtualAgentMessages. */
                            public dropVirtualAgentMessages: boolean;

                            /** ContextFilterSettings dropIvrMessages. */
                            public dropIvrMessages: boolean;

                            /**
                             * Creates a new ContextFilterSettings instance using the specified properties.
                             * @param [properties] Properties to set
                             * @returns ContextFilterSettings instance
                             */
                            public static create(properties?: google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionQueryConfig.IContextFilterSettings): google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionQueryConfig.ContextFilterSettings;

                            /**
                             * Encodes the specified ContextFilterSettings message. Does not implicitly {@link google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionQueryConfig.ContextFilterSettings.verify|verify} messages.
                             * @param message ContextFilterSettings message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encode(message: google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionQueryConfig.IContextFilterSettings, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Encodes the specified ContextFilterSettings message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionQueryConfig.ContextFilterSettings.verify|verify} messages.
                             * @param message ContextFilterSettings message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encodeDelimited(message: google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionQueryConfig.IContextFilterSettings, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Decodes a ContextFilterSettings message from the specified reader or buffer.
                             * @param reader Reader or buffer to decode from
                             * @param [length] Message length if known beforehand
                             * @returns ContextFilterSettings
                             * @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.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionQueryConfig.ContextFilterSettings;

                            /**
                             * Decodes a ContextFilterSettings message from the specified reader or buffer, length delimited.
                             * @param reader Reader or buffer to decode from
                             * @returns ContextFilterSettings
                             * @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.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionQueryConfig.ContextFilterSettings;

                            /**
                             * Verifies a ContextFilterSettings 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 ContextFilterSettings message from a plain object. Also converts values to their respective internal types.
                             * @param object Plain object
                             * @returns ContextFilterSettings
                             */
                            public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionQueryConfig.ContextFilterSettings;

                            /**
                             * Creates a plain object from a ContextFilterSettings message. Also converts values to other types if specified.
                             * @param message ContextFilterSettings
                             * @param [options] Conversion options
                             * @returns Plain object
                             */
                            public static toObject(message: google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionQueryConfig.ContextFilterSettings, options?: $protobuf.IConversionOptions): { [k: string]: any };

                            /**
                             * Converts this ContextFilterSettings to JSON.
                             * @returns JSON object
                             */
                            public toJSON(): { [k: string]: any };

                            /**
                             * Gets the default type url for ContextFilterSettings
                             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                             * @returns The default type url
                             */
                            public static getTypeUrl(typeUrlPrefix?: string): string;
                        }

                        /** Properties of a Sections. */
                        interface ISections {

                            /** Sections sectionTypes */
                            sectionTypes?: (google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionQueryConfig.Sections.SectionType[]|null);
                        }

                        /** Represents a Sections. */
                        class Sections implements ISections {

                            /**
                             * Constructs a new Sections.
                             * @param [properties] Properties to set
                             */
                            constructor(properties?: google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionQueryConfig.ISections);

                            /** Sections sectionTypes. */
                            public sectionTypes: google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionQueryConfig.Sections.SectionType[];

                            /**
                             * Creates a new Sections instance using the specified properties.
                             * @param [properties] Properties to set
                             * @returns Sections instance
                             */
                            public static create(properties?: google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionQueryConfig.ISections): google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionQueryConfig.Sections;

                            /**
                             * Encodes the specified Sections message. Does not implicitly {@link google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionQueryConfig.Sections.verify|verify} messages.
                             * @param message Sections message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encode(message: google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionQueryConfig.ISections, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Encodes the specified Sections message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionQueryConfig.Sections.verify|verify} messages.
                             * @param message Sections message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encodeDelimited(message: google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionQueryConfig.ISections, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Decodes a Sections message from the specified reader or buffer.
                             * @param reader Reader or buffer to decode from
                             * @param [length] Message length if known beforehand
                             * @returns Sections
                             * @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.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionQueryConfig.Sections;

                            /**
                             * Decodes a Sections message from the specified reader or buffer, length delimited.
                             * @param reader Reader or buffer to decode from
                             * @returns Sections
                             * @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.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionQueryConfig.Sections;

                            /**
                             * Verifies a Sections 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 Sections message from a plain object. Also converts values to their respective internal types.
                             * @param object Plain object
                             * @returns Sections
                             */
                            public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionQueryConfig.Sections;

                            /**
                             * Creates a plain object from a Sections message. Also converts values to other types if specified.
                             * @param message Sections
                             * @param [options] Conversion options
                             * @returns Plain object
                             */
                            public static toObject(message: google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionQueryConfig.Sections, options?: $protobuf.IConversionOptions): { [k: string]: any };

                            /**
                             * Converts this Sections to JSON.
                             * @returns JSON object
                             */
                            public toJSON(): { [k: string]: any };

                            /**
                             * Gets the default type url for Sections
                             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                             * @returns The default type url
                             */
                            public static getTypeUrl(typeUrlPrefix?: string): string;
                        }

                        namespace Sections {

                            /** SectionType enum. */
                            enum SectionType {
                                SECTION_TYPE_UNSPECIFIED = 0,
                                SITUATION = 1,
                                ACTION = 2,
                                RESOLUTION = 3,
                                REASON_FOR_CANCELLATION = 4,
                                CUSTOMER_SATISFACTION = 5,
                                ENTITIES = 6
                            }
                        }
                    }

                    /** Properties of a ConversationModelConfig. */
                    interface IConversationModelConfig {

                        /** ConversationModelConfig model */
                        model?: (string|null);

                        /** ConversationModelConfig baselineModelVersion */
                        baselineModelVersion?: (string|null);
                    }

                    /** Represents a ConversationModelConfig. */
                    class ConversationModelConfig implements IConversationModelConfig {

                        /**
                         * Constructs a new ConversationModelConfig.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2.HumanAgentAssistantConfig.IConversationModelConfig);

                        /** ConversationModelConfig model. */
                        public model: string;

                        /** ConversationModelConfig baselineModelVersion. */
                        public baselineModelVersion: string;

                        /**
                         * Creates a new ConversationModelConfig instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns ConversationModelConfig instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2.HumanAgentAssistantConfig.IConversationModelConfig): google.cloud.dialogflow.v2.HumanAgentAssistantConfig.ConversationModelConfig;

                        /**
                         * Encodes the specified ConversationModelConfig message. Does not implicitly {@link google.cloud.dialogflow.v2.HumanAgentAssistantConfig.ConversationModelConfig.verify|verify} messages.
                         * @param message ConversationModelConfig message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2.HumanAgentAssistantConfig.IConversationModelConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified ConversationModelConfig message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.HumanAgentAssistantConfig.ConversationModelConfig.verify|verify} messages.
                         * @param message ConversationModelConfig message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2.HumanAgentAssistantConfig.IConversationModelConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a ConversationModelConfig message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns ConversationModelConfig
                         * @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.cloud.dialogflow.v2.HumanAgentAssistantConfig.ConversationModelConfig;

                        /**
                         * Decodes a ConversationModelConfig message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns ConversationModelConfig
                         * @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.cloud.dialogflow.v2.HumanAgentAssistantConfig.ConversationModelConfig;

                        /**
                         * Verifies a ConversationModelConfig 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 ConversationModelConfig message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns ConversationModelConfig
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.HumanAgentAssistantConfig.ConversationModelConfig;

                        /**
                         * Creates a plain object from a ConversationModelConfig message. Also converts values to other types if specified.
                         * @param message ConversationModelConfig
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.dialogflow.v2.HumanAgentAssistantConfig.ConversationModelConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this ConversationModelConfig to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for ConversationModelConfig
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    /** Properties of a ConversationProcessConfig. */
                    interface IConversationProcessConfig {

                        /** ConversationProcessConfig recentSentencesCount */
                        recentSentencesCount?: (number|null);
                    }

                    /** Represents a ConversationProcessConfig. */
                    class ConversationProcessConfig implements IConversationProcessConfig {

                        /**
                         * Constructs a new ConversationProcessConfig.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2.HumanAgentAssistantConfig.IConversationProcessConfig);

                        /** ConversationProcessConfig recentSentencesCount. */
                        public recentSentencesCount: number;

                        /**
                         * Creates a new ConversationProcessConfig instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns ConversationProcessConfig instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2.HumanAgentAssistantConfig.IConversationProcessConfig): google.cloud.dialogflow.v2.HumanAgentAssistantConfig.ConversationProcessConfig;

                        /**
                         * Encodes the specified ConversationProcessConfig message. Does not implicitly {@link google.cloud.dialogflow.v2.HumanAgentAssistantConfig.ConversationProcessConfig.verify|verify} messages.
                         * @param message ConversationProcessConfig message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2.HumanAgentAssistantConfig.IConversationProcessConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified ConversationProcessConfig message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.HumanAgentAssistantConfig.ConversationProcessConfig.verify|verify} messages.
                         * @param message ConversationProcessConfig message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2.HumanAgentAssistantConfig.IConversationProcessConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a ConversationProcessConfig message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns ConversationProcessConfig
                         * @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.cloud.dialogflow.v2.HumanAgentAssistantConfig.ConversationProcessConfig;

                        /**
                         * Decodes a ConversationProcessConfig message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns ConversationProcessConfig
                         * @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.cloud.dialogflow.v2.HumanAgentAssistantConfig.ConversationProcessConfig;

                        /**
                         * Verifies a ConversationProcessConfig 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 ConversationProcessConfig message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns ConversationProcessConfig
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.HumanAgentAssistantConfig.ConversationProcessConfig;

                        /**
                         * Creates a plain object from a ConversationProcessConfig message. Also converts values to other types if specified.
                         * @param message ConversationProcessConfig
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.dialogflow.v2.HumanAgentAssistantConfig.ConversationProcessConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this ConversationProcessConfig to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for ConversationProcessConfig
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    /** Properties of a MessageAnalysisConfig. */
                    interface IMessageAnalysisConfig {

                        /** MessageAnalysisConfig enableEntityExtraction */
                        enableEntityExtraction?: (boolean|null);

                        /** MessageAnalysisConfig enableSentimentAnalysis */
                        enableSentimentAnalysis?: (boolean|null);

                        /** MessageAnalysisConfig enableSentimentAnalysisV3 */
                        enableSentimentAnalysisV3?: (boolean|null);
                    }

                    /** Represents a MessageAnalysisConfig. */
                    class MessageAnalysisConfig implements IMessageAnalysisConfig {

                        /**
                         * Constructs a new MessageAnalysisConfig.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2.HumanAgentAssistantConfig.IMessageAnalysisConfig);

                        /** MessageAnalysisConfig enableEntityExtraction. */
                        public enableEntityExtraction: boolean;

                        /** MessageAnalysisConfig enableSentimentAnalysis. */
                        public enableSentimentAnalysis: boolean;

                        /** MessageAnalysisConfig enableSentimentAnalysisV3. */
                        public enableSentimentAnalysisV3: boolean;

                        /**
                         * Creates a new MessageAnalysisConfig instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns MessageAnalysisConfig instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2.HumanAgentAssistantConfig.IMessageAnalysisConfig): google.cloud.dialogflow.v2.HumanAgentAssistantConfig.MessageAnalysisConfig;

                        /**
                         * Encodes the specified MessageAnalysisConfig message. Does not implicitly {@link google.cloud.dialogflow.v2.HumanAgentAssistantConfig.MessageAnalysisConfig.verify|verify} messages.
                         * @param message MessageAnalysisConfig message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2.HumanAgentAssistantConfig.IMessageAnalysisConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified MessageAnalysisConfig message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.HumanAgentAssistantConfig.MessageAnalysisConfig.verify|verify} messages.
                         * @param message MessageAnalysisConfig message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2.HumanAgentAssistantConfig.IMessageAnalysisConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a MessageAnalysisConfig message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns MessageAnalysisConfig
                         * @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.cloud.dialogflow.v2.HumanAgentAssistantConfig.MessageAnalysisConfig;

                        /**
                         * Decodes a MessageAnalysisConfig message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns MessageAnalysisConfig
                         * @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.cloud.dialogflow.v2.HumanAgentAssistantConfig.MessageAnalysisConfig;

                        /**
                         * Verifies a MessageAnalysisConfig 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 MessageAnalysisConfig message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns MessageAnalysisConfig
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.HumanAgentAssistantConfig.MessageAnalysisConfig;

                        /**
                         * Creates a plain object from a MessageAnalysisConfig message. Also converts values to other types if specified.
                         * @param message MessageAnalysisConfig
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.dialogflow.v2.HumanAgentAssistantConfig.MessageAnalysisConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this MessageAnalysisConfig to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for MessageAnalysisConfig
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }
                }

                /** Properties of a HumanAgentHandoffConfig. */
                interface IHumanAgentHandoffConfig {

                    /** HumanAgentHandoffConfig livePersonConfig */
                    livePersonConfig?: (google.cloud.dialogflow.v2.HumanAgentHandoffConfig.ILivePersonConfig|null);

                    /** HumanAgentHandoffConfig salesforceLiveAgentConfig */
                    salesforceLiveAgentConfig?: (google.cloud.dialogflow.v2.HumanAgentHandoffConfig.ISalesforceLiveAgentConfig|null);
                }

                /** Represents a HumanAgentHandoffConfig. */
                class HumanAgentHandoffConfig implements IHumanAgentHandoffConfig {

                    /**
                     * Constructs a new HumanAgentHandoffConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IHumanAgentHandoffConfig);

                    /** HumanAgentHandoffConfig livePersonConfig. */
                    public livePersonConfig?: (google.cloud.dialogflow.v2.HumanAgentHandoffConfig.ILivePersonConfig|null);

                    /** HumanAgentHandoffConfig salesforceLiveAgentConfig. */
                    public salesforceLiveAgentConfig?: (google.cloud.dialogflow.v2.HumanAgentHandoffConfig.ISalesforceLiveAgentConfig|null);

                    /** HumanAgentHandoffConfig agentService. */
                    public agentService?: ("livePersonConfig"|"salesforceLiveAgentConfig");

                    /**
                     * Creates a new HumanAgentHandoffConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns HumanAgentHandoffConfig instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IHumanAgentHandoffConfig): google.cloud.dialogflow.v2.HumanAgentHandoffConfig;

                    /**
                     * Encodes the specified HumanAgentHandoffConfig message. Does not implicitly {@link google.cloud.dialogflow.v2.HumanAgentHandoffConfig.verify|verify} messages.
                     * @param message HumanAgentHandoffConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IHumanAgentHandoffConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified HumanAgentHandoffConfig message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.HumanAgentHandoffConfig.verify|verify} messages.
                     * @param message HumanAgentHandoffConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.IHumanAgentHandoffConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a HumanAgentHandoffConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns HumanAgentHandoffConfig
                     * @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.cloud.dialogflow.v2.HumanAgentHandoffConfig;

                    /**
                     * Decodes a HumanAgentHandoffConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns HumanAgentHandoffConfig
                     * @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.cloud.dialogflow.v2.HumanAgentHandoffConfig;

                    /**
                     * Verifies a HumanAgentHandoffConfig 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 HumanAgentHandoffConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns HumanAgentHandoffConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.HumanAgentHandoffConfig;

                    /**
                     * Creates a plain object from a HumanAgentHandoffConfig message. Also converts values to other types if specified.
                     * @param message HumanAgentHandoffConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.HumanAgentHandoffConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this HumanAgentHandoffConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for HumanAgentHandoffConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace HumanAgentHandoffConfig {

                    /** Properties of a LivePersonConfig. */
                    interface ILivePersonConfig {

                        /** LivePersonConfig accountNumber */
                        accountNumber?: (string|null);
                    }

                    /** Represents a LivePersonConfig. */
                    class LivePersonConfig implements ILivePersonConfig {

                        /**
                         * Constructs a new LivePersonConfig.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2.HumanAgentHandoffConfig.ILivePersonConfig);

                        /** LivePersonConfig accountNumber. */
                        public accountNumber: string;

                        /**
                         * Creates a new LivePersonConfig instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns LivePersonConfig instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2.HumanAgentHandoffConfig.ILivePersonConfig): google.cloud.dialogflow.v2.HumanAgentHandoffConfig.LivePersonConfig;

                        /**
                         * Encodes the specified LivePersonConfig message. Does not implicitly {@link google.cloud.dialogflow.v2.HumanAgentHandoffConfig.LivePersonConfig.verify|verify} messages.
                         * @param message LivePersonConfig message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2.HumanAgentHandoffConfig.ILivePersonConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified LivePersonConfig message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.HumanAgentHandoffConfig.LivePersonConfig.verify|verify} messages.
                         * @param message LivePersonConfig message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2.HumanAgentHandoffConfig.ILivePersonConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a LivePersonConfig message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns LivePersonConfig
                         * @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.cloud.dialogflow.v2.HumanAgentHandoffConfig.LivePersonConfig;

                        /**
                         * Decodes a LivePersonConfig message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns LivePersonConfig
                         * @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.cloud.dialogflow.v2.HumanAgentHandoffConfig.LivePersonConfig;

                        /**
                         * Verifies a LivePersonConfig 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 LivePersonConfig message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns LivePersonConfig
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.HumanAgentHandoffConfig.LivePersonConfig;

                        /**
                         * Creates a plain object from a LivePersonConfig message. Also converts values to other types if specified.
                         * @param message LivePersonConfig
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.dialogflow.v2.HumanAgentHandoffConfig.LivePersonConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this LivePersonConfig to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for LivePersonConfig
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    /** Properties of a SalesforceLiveAgentConfig. */
                    interface ISalesforceLiveAgentConfig {

                        /** SalesforceLiveAgentConfig organizationId */
                        organizationId?: (string|null);

                        /** SalesforceLiveAgentConfig deploymentId */
                        deploymentId?: (string|null);

                        /** SalesforceLiveAgentConfig buttonId */
                        buttonId?: (string|null);

                        /** SalesforceLiveAgentConfig endpointDomain */
                        endpointDomain?: (string|null);
                    }

                    /** Represents a SalesforceLiveAgentConfig. */
                    class SalesforceLiveAgentConfig implements ISalesforceLiveAgentConfig {

                        /**
                         * Constructs a new SalesforceLiveAgentConfig.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2.HumanAgentHandoffConfig.ISalesforceLiveAgentConfig);

                        /** SalesforceLiveAgentConfig organizationId. */
                        public organizationId: string;

                        /** SalesforceLiveAgentConfig deploymentId. */
                        public deploymentId: string;

                        /** SalesforceLiveAgentConfig buttonId. */
                        public buttonId: string;

                        /** SalesforceLiveAgentConfig endpointDomain. */
                        public endpointDomain: string;

                        /**
                         * Creates a new SalesforceLiveAgentConfig instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns SalesforceLiveAgentConfig instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2.HumanAgentHandoffConfig.ISalesforceLiveAgentConfig): google.cloud.dialogflow.v2.HumanAgentHandoffConfig.SalesforceLiveAgentConfig;

                        /**
                         * Encodes the specified SalesforceLiveAgentConfig message. Does not implicitly {@link google.cloud.dialogflow.v2.HumanAgentHandoffConfig.SalesforceLiveAgentConfig.verify|verify} messages.
                         * @param message SalesforceLiveAgentConfig message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2.HumanAgentHandoffConfig.ISalesforceLiveAgentConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified SalesforceLiveAgentConfig message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.HumanAgentHandoffConfig.SalesforceLiveAgentConfig.verify|verify} messages.
                         * @param message SalesforceLiveAgentConfig message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2.HumanAgentHandoffConfig.ISalesforceLiveAgentConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a SalesforceLiveAgentConfig message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns SalesforceLiveAgentConfig
                         * @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.cloud.dialogflow.v2.HumanAgentHandoffConfig.SalesforceLiveAgentConfig;

                        /**
                         * Decodes a SalesforceLiveAgentConfig message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns SalesforceLiveAgentConfig
                         * @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.cloud.dialogflow.v2.HumanAgentHandoffConfig.SalesforceLiveAgentConfig;

                        /**
                         * Verifies a SalesforceLiveAgentConfig 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 SalesforceLiveAgentConfig message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns SalesforceLiveAgentConfig
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.HumanAgentHandoffConfig.SalesforceLiveAgentConfig;

                        /**
                         * Creates a plain object from a SalesforceLiveAgentConfig message. Also converts values to other types if specified.
                         * @param message SalesforceLiveAgentConfig
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.dialogflow.v2.HumanAgentHandoffConfig.SalesforceLiveAgentConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this SalesforceLiveAgentConfig to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for SalesforceLiveAgentConfig
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }
                }

                /** Properties of a NotificationConfig. */
                interface INotificationConfig {

                    /** NotificationConfig topic */
                    topic?: (string|null);

                    /** NotificationConfig messageFormat */
                    messageFormat?: (google.cloud.dialogflow.v2.NotificationConfig.MessageFormat|keyof typeof google.cloud.dialogflow.v2.NotificationConfig.MessageFormat|null);
                }

                /** Represents a NotificationConfig. */
                class NotificationConfig implements INotificationConfig {

                    /**
                     * Constructs a new NotificationConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.INotificationConfig);

                    /** NotificationConfig topic. */
                    public topic: string;

                    /** NotificationConfig messageFormat. */
                    public messageFormat: (google.cloud.dialogflow.v2.NotificationConfig.MessageFormat|keyof typeof google.cloud.dialogflow.v2.NotificationConfig.MessageFormat);

                    /**
                     * Creates a new NotificationConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NotificationConfig instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.INotificationConfig): google.cloud.dialogflow.v2.NotificationConfig;

                    /**
                     * Encodes the specified NotificationConfig message. Does not implicitly {@link google.cloud.dialogflow.v2.NotificationConfig.verify|verify} messages.
                     * @param message NotificationConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.INotificationConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NotificationConfig message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.NotificationConfig.verify|verify} messages.
                     * @param message NotificationConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.INotificationConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NotificationConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NotificationConfig
                     * @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.cloud.dialogflow.v2.NotificationConfig;

                    /**
                     * Decodes a NotificationConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NotificationConfig
                     * @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.cloud.dialogflow.v2.NotificationConfig;

                    /**
                     * Verifies a NotificationConfig 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 NotificationConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NotificationConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.NotificationConfig;

                    /**
                     * Creates a plain object from a NotificationConfig message. Also converts values to other types if specified.
                     * @param message NotificationConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.NotificationConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NotificationConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NotificationConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace NotificationConfig {

                    /** MessageFormat enum. */
                    enum MessageFormat {
                        MESSAGE_FORMAT_UNSPECIFIED = 0,
                        PROTO = 1,
                        JSON = 2
                    }
                }

                /** Properties of a LoggingConfig. */
                interface ILoggingConfig {

                    /** LoggingConfig enableStackdriverLogging */
                    enableStackdriverLogging?: (boolean|null);
                }

                /** Represents a LoggingConfig. */
                class LoggingConfig implements ILoggingConfig {

                    /**
                     * Constructs a new LoggingConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.ILoggingConfig);

                    /** LoggingConfig enableStackdriverLogging. */
                    public enableStackdriverLogging: boolean;

                    /**
                     * Creates a new LoggingConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns LoggingConfig instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.ILoggingConfig): google.cloud.dialogflow.v2.LoggingConfig;

                    /**
                     * Encodes the specified LoggingConfig message. Does not implicitly {@link google.cloud.dialogflow.v2.LoggingConfig.verify|verify} messages.
                     * @param message LoggingConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.ILoggingConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified LoggingConfig message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.LoggingConfig.verify|verify} messages.
                     * @param message LoggingConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.ILoggingConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a LoggingConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns LoggingConfig
                     * @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.cloud.dialogflow.v2.LoggingConfig;

                    /**
                     * Decodes a LoggingConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns LoggingConfig
                     * @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.cloud.dialogflow.v2.LoggingConfig;

                    /**
                     * Verifies a LoggingConfig 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 LoggingConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns LoggingConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.LoggingConfig;

                    /**
                     * Creates a plain object from a LoggingConfig message. Also converts values to other types if specified.
                     * @param message LoggingConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.LoggingConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this LoggingConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for LoggingConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SuggestionFeature. */
                interface ISuggestionFeature {

                    /** SuggestionFeature type */
                    type?: (google.cloud.dialogflow.v2.SuggestionFeature.Type|keyof typeof google.cloud.dialogflow.v2.SuggestionFeature.Type|null);
                }

                /** Represents a SuggestionFeature. */
                class SuggestionFeature implements ISuggestionFeature {

                    /**
                     * Constructs a new SuggestionFeature.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.ISuggestionFeature);

                    /** SuggestionFeature type. */
                    public type: (google.cloud.dialogflow.v2.SuggestionFeature.Type|keyof typeof google.cloud.dialogflow.v2.SuggestionFeature.Type);

                    /**
                     * Creates a new SuggestionFeature instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SuggestionFeature instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.ISuggestionFeature): google.cloud.dialogflow.v2.SuggestionFeature;

                    /**
                     * Encodes the specified SuggestionFeature message. Does not implicitly {@link google.cloud.dialogflow.v2.SuggestionFeature.verify|verify} messages.
                     * @param message SuggestionFeature message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.ISuggestionFeature, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SuggestionFeature message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.SuggestionFeature.verify|verify} messages.
                     * @param message SuggestionFeature message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.ISuggestionFeature, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SuggestionFeature message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SuggestionFeature
                     * @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.cloud.dialogflow.v2.SuggestionFeature;

                    /**
                     * Decodes a SuggestionFeature message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SuggestionFeature
                     * @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.cloud.dialogflow.v2.SuggestionFeature;

                    /**
                     * Verifies a SuggestionFeature 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 SuggestionFeature message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SuggestionFeature
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.SuggestionFeature;

                    /**
                     * Creates a plain object from a SuggestionFeature message. Also converts values to other types if specified.
                     * @param message SuggestionFeature
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.SuggestionFeature, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SuggestionFeature to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SuggestionFeature
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace SuggestionFeature {

                    /** Type enum. */
                    enum Type {
                        TYPE_UNSPECIFIED = 0,
                        ARTICLE_SUGGESTION = 1,
                        FAQ = 2,
                        SMART_REPLY = 3,
                        CONVERSATION_SUMMARIZATION = 8,
                        KNOWLEDGE_SEARCH = 14,
                        KNOWLEDGE_ASSIST = 15
                    }
                }

                /** Properties of a SetSuggestionFeatureConfigRequest. */
                interface ISetSuggestionFeatureConfigRequest {

                    /** SetSuggestionFeatureConfigRequest conversationProfile */
                    conversationProfile?: (string|null);

                    /** SetSuggestionFeatureConfigRequest participantRole */
                    participantRole?: (google.cloud.dialogflow.v2.Participant.Role|keyof typeof google.cloud.dialogflow.v2.Participant.Role|null);

                    /** SetSuggestionFeatureConfigRequest suggestionFeatureConfig */
                    suggestionFeatureConfig?: (google.cloud.dialogflow.v2.HumanAgentAssistantConfig.ISuggestionFeatureConfig|null);
                }

                /** Represents a SetSuggestionFeatureConfigRequest. */
                class SetSuggestionFeatureConfigRequest implements ISetSuggestionFeatureConfigRequest {

                    /**
                     * Constructs a new SetSuggestionFeatureConfigRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.ISetSuggestionFeatureConfigRequest);

                    /** SetSuggestionFeatureConfigRequest conversationProfile. */
                    public conversationProfile: string;

                    /** SetSuggestionFeatureConfigRequest participantRole. */
                    public participantRole: (google.cloud.dialogflow.v2.Participant.Role|keyof typeof google.cloud.dialogflow.v2.Participant.Role);

                    /** SetSuggestionFeatureConfigRequest suggestionFeatureConfig. */
                    public suggestionFeatureConfig?: (google.cloud.dialogflow.v2.HumanAgentAssistantConfig.ISuggestionFeatureConfig|null);

                    /**
                     * Creates a new SetSuggestionFeatureConfigRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetSuggestionFeatureConfigRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.ISetSuggestionFeatureConfigRequest): google.cloud.dialogflow.v2.SetSuggestionFeatureConfigRequest;

                    /**
                     * Encodes the specified SetSuggestionFeatureConfigRequest message. Does not implicitly {@link google.cloud.dialogflow.v2.SetSuggestionFeatureConfigRequest.verify|verify} messages.
                     * @param message SetSuggestionFeatureConfigRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.ISetSuggestionFeatureConfigRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetSuggestionFeatureConfigRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.SetSuggestionFeatureConfigRequest.verify|verify} messages.
                     * @param message SetSuggestionFeatureConfigRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.ISetSuggestionFeatureConfigRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetSuggestionFeatureConfigRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetSuggestionFeatureConfigRequest
                     * @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.cloud.dialogflow.v2.SetSuggestionFeatureConfigRequest;

                    /**
                     * Decodes a SetSuggestionFeatureConfigRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetSuggestionFeatureConfigRequest
                     * @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.cloud.dialogflow.v2.SetSuggestionFeatureConfigRequest;

                    /**
                     * Verifies a SetSuggestionFeatureConfigRequest 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 SetSuggestionFeatureConfigRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetSuggestionFeatureConfigRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.SetSuggestionFeatureConfigRequest;

                    /**
                     * Creates a plain object from a SetSuggestionFeatureConfigRequest message. Also converts values to other types if specified.
                     * @param message SetSuggestionFeatureConfigRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.SetSuggestionFeatureConfigRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetSuggestionFeatureConfigRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetSuggestionFeatureConfigRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ClearSuggestionFeatureConfigRequest. */
                interface IClearSuggestionFeatureConfigRequest {

                    /** ClearSuggestionFeatureConfigRequest conversationProfile */
                    conversationProfile?: (string|null);

                    /** ClearSuggestionFeatureConfigRequest participantRole */
                    participantRole?: (google.cloud.dialogflow.v2.Participant.Role|keyof typeof google.cloud.dialogflow.v2.Participant.Role|null);

                    /** ClearSuggestionFeatureConfigRequest suggestionFeatureType */
                    suggestionFeatureType?: (google.cloud.dialogflow.v2.SuggestionFeature.Type|keyof typeof google.cloud.dialogflow.v2.SuggestionFeature.Type|null);
                }

                /** Represents a ClearSuggestionFeatureConfigRequest. */
                class ClearSuggestionFeatureConfigRequest implements IClearSuggestionFeatureConfigRequest {

                    /**
                     * Constructs a new ClearSuggestionFeatureConfigRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IClearSuggestionFeatureConfigRequest);

                    /** ClearSuggestionFeatureConfigRequest conversationProfile. */
                    public conversationProfile: string;

                    /** ClearSuggestionFeatureConfigRequest participantRole. */
                    public participantRole: (google.cloud.dialogflow.v2.Participant.Role|keyof typeof google.cloud.dialogflow.v2.Participant.Role);

                    /** ClearSuggestionFeatureConfigRequest suggestionFeatureType. */
                    public suggestionFeatureType: (google.cloud.dialogflow.v2.SuggestionFeature.Type|keyof typeof google.cloud.dialogflow.v2.SuggestionFeature.Type);

                    /**
                     * Creates a new ClearSuggestionFeatureConfigRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ClearSuggestionFeatureConfigRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IClearSuggestionFeatureConfigRequest): google.cloud.dialogflow.v2.ClearSuggestionFeatureConfigRequest;

                    /**
                     * Encodes the specified ClearSuggestionFeatureConfigRequest message. Does not implicitly {@link google.cloud.dialogflow.v2.ClearSuggestionFeatureConfigRequest.verify|verify} messages.
                     * @param message ClearSuggestionFeatureConfigRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IClearSuggestionFeatureConfigRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ClearSuggestionFeatureConfigRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.ClearSuggestionFeatureConfigRequest.verify|verify} messages.
                     * @param message ClearSuggestionFeatureConfigRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.IClearSuggestionFeatureConfigRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ClearSuggestionFeatureConfigRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ClearSuggestionFeatureConfigRequest
                     * @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.cloud.dialogflow.v2.ClearSuggestionFeatureConfigRequest;

                    /**
                     * Decodes a ClearSuggestionFeatureConfigRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ClearSuggestionFeatureConfigRequest
                     * @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.cloud.dialogflow.v2.ClearSuggestionFeatureConfigRequest;

                    /**
                     * Verifies a ClearSuggestionFeatureConfigRequest 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 ClearSuggestionFeatureConfigRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ClearSuggestionFeatureConfigRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.ClearSuggestionFeatureConfigRequest;

                    /**
                     * Creates a plain object from a ClearSuggestionFeatureConfigRequest message. Also converts values to other types if specified.
                     * @param message ClearSuggestionFeatureConfigRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.ClearSuggestionFeatureConfigRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ClearSuggestionFeatureConfigRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ClearSuggestionFeatureConfigRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetSuggestionFeatureConfigOperationMetadata. */
                interface ISetSuggestionFeatureConfigOperationMetadata {

                    /** SetSuggestionFeatureConfigOperationMetadata conversationProfile */
                    conversationProfile?: (string|null);

                    /** SetSuggestionFeatureConfigOperationMetadata participantRole */
                    participantRole?: (google.cloud.dialogflow.v2.Participant.Role|keyof typeof google.cloud.dialogflow.v2.Participant.Role|null);

                    /** SetSuggestionFeatureConfigOperationMetadata suggestionFeatureType */
                    suggestionFeatureType?: (google.cloud.dialogflow.v2.SuggestionFeature.Type|keyof typeof google.cloud.dialogflow.v2.SuggestionFeature.Type|null);

                    /** SetSuggestionFeatureConfigOperationMetadata createTime */
                    createTime?: (google.protobuf.ITimestamp|null);
                }

                /** Represents a SetSuggestionFeatureConfigOperationMetadata. */
                class SetSuggestionFeatureConfigOperationMetadata implements ISetSuggestionFeatureConfigOperationMetadata {

                    /**
                     * Constructs a new SetSuggestionFeatureConfigOperationMetadata.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.ISetSuggestionFeatureConfigOperationMetadata);

                    /** SetSuggestionFeatureConfigOperationMetadata conversationProfile. */
                    public conversationProfile: string;

                    /** SetSuggestionFeatureConfigOperationMetadata participantRole. */
                    public participantRole: (google.cloud.dialogflow.v2.Participant.Role|keyof typeof google.cloud.dialogflow.v2.Participant.Role);

                    /** SetSuggestionFeatureConfigOperationMetadata suggestionFeatureType. */
                    public suggestionFeatureType: (google.cloud.dialogflow.v2.SuggestionFeature.Type|keyof typeof google.cloud.dialogflow.v2.SuggestionFeature.Type);

                    /** SetSuggestionFeatureConfigOperationMetadata createTime. */
                    public createTime?: (google.protobuf.ITimestamp|null);

                    /**
                     * Creates a new SetSuggestionFeatureConfigOperationMetadata instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetSuggestionFeatureConfigOperationMetadata instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.ISetSuggestionFeatureConfigOperationMetadata): google.cloud.dialogflow.v2.SetSuggestionFeatureConfigOperationMetadata;

                    /**
                     * Encodes the specified SetSuggestionFeatureConfigOperationMetadata message. Does not implicitly {@link google.cloud.dialogflow.v2.SetSuggestionFeatureConfigOperationMetadata.verify|verify} messages.
                     * @param message SetSuggestionFeatureConfigOperationMetadata message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.ISetSuggestionFeatureConfigOperationMetadata, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetSuggestionFeatureConfigOperationMetadata message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.SetSuggestionFeatureConfigOperationMetadata.verify|verify} messages.
                     * @param message SetSuggestionFeatureConfigOperationMetadata message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.ISetSuggestionFeatureConfigOperationMetadata, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetSuggestionFeatureConfigOperationMetadata message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetSuggestionFeatureConfigOperationMetadata
                     * @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.cloud.dialogflow.v2.SetSuggestionFeatureConfigOperationMetadata;

                    /**
                     * Decodes a SetSuggestionFeatureConfigOperationMetadata message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetSuggestionFeatureConfigOperationMetadata
                     * @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.cloud.dialogflow.v2.SetSuggestionFeatureConfigOperationMetadata;

                    /**
                     * Verifies a SetSuggestionFeatureConfigOperationMetadata 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 SetSuggestionFeatureConfigOperationMetadata message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetSuggestionFeatureConfigOperationMetadata
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.SetSuggestionFeatureConfigOperationMetadata;

                    /**
                     * Creates a plain object from a SetSuggestionFeatureConfigOperationMetadata message. Also converts values to other types if specified.
                     * @param message SetSuggestionFeatureConfigOperationMetadata
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.SetSuggestionFeatureConfigOperationMetadata, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetSuggestionFeatureConfigOperationMetadata to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetSuggestionFeatureConfigOperationMetadata
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ClearSuggestionFeatureConfigOperationMetadata. */
                interface IClearSuggestionFeatureConfigOperationMetadata {

                    /** ClearSuggestionFeatureConfigOperationMetadata conversationProfile */
                    conversationProfile?: (string|null);

                    /** ClearSuggestionFeatureConfigOperationMetadata participantRole */
                    participantRole?: (google.cloud.dialogflow.v2.Participant.Role|keyof typeof google.cloud.dialogflow.v2.Participant.Role|null);

                    /** ClearSuggestionFeatureConfigOperationMetadata suggestionFeatureType */
                    suggestionFeatureType?: (google.cloud.dialogflow.v2.SuggestionFeature.Type|keyof typeof google.cloud.dialogflow.v2.SuggestionFeature.Type|null);

                    /** ClearSuggestionFeatureConfigOperationMetadata createTime */
                    createTime?: (google.protobuf.ITimestamp|null);
                }

                /** Represents a ClearSuggestionFeatureConfigOperationMetadata. */
                class ClearSuggestionFeatureConfigOperationMetadata implements IClearSuggestionFeatureConfigOperationMetadata {

                    /**
                     * Constructs a new ClearSuggestionFeatureConfigOperationMetadata.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IClearSuggestionFeatureConfigOperationMetadata);

                    /** ClearSuggestionFeatureConfigOperationMetadata conversationProfile. */
                    public conversationProfile: string;

                    /** ClearSuggestionFeatureConfigOperationMetadata participantRole. */
                    public participantRole: (google.cloud.dialogflow.v2.Participant.Role|keyof typeof google.cloud.dialogflow.v2.Participant.Role);

                    /** ClearSuggestionFeatureConfigOperationMetadata suggestionFeatureType. */
                    public suggestionFeatureType: (google.cloud.dialogflow.v2.SuggestionFeature.Type|keyof typeof google.cloud.dialogflow.v2.SuggestionFeature.Type);

                    /** ClearSuggestionFeatureConfigOperationMetadata createTime. */
                    public createTime?: (google.protobuf.ITimestamp|null);

                    /**
                     * Creates a new ClearSuggestionFeatureConfigOperationMetadata instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ClearSuggestionFeatureConfigOperationMetadata instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IClearSuggestionFeatureConfigOperationMetadata): google.cloud.dialogflow.v2.ClearSuggestionFeatureConfigOperationMetadata;

                    /**
                     * Encodes the specified ClearSuggestionFeatureConfigOperationMetadata message. Does not implicitly {@link google.cloud.dialogflow.v2.ClearSuggestionFeatureConfigOperationMetadata.verify|verify} messages.
                     * @param message ClearSuggestionFeatureConfigOperationMetadata message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IClearSuggestionFeatureConfigOperationMetadata, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ClearSuggestionFeatureConfigOperationMetadata message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.ClearSuggestionFeatureConfigOperationMetadata.verify|verify} messages.
                     * @param message ClearSuggestionFeatureConfigOperationMetadata message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.IClearSuggestionFeatureConfigOperationMetadata, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ClearSuggestionFeatureConfigOperationMetadata message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ClearSuggestionFeatureConfigOperationMetadata
                     * @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.cloud.dialogflow.v2.ClearSuggestionFeatureConfigOperationMetadata;

                    /**
                     * Decodes a ClearSuggestionFeatureConfigOperationMetadata message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ClearSuggestionFeatureConfigOperationMetadata
                     * @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.cloud.dialogflow.v2.ClearSuggestionFeatureConfigOperationMetadata;

                    /**
                     * Verifies a ClearSuggestionFeatureConfigOperationMetadata 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 ClearSuggestionFeatureConfigOperationMetadata message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ClearSuggestionFeatureConfigOperationMetadata
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.ClearSuggestionFeatureConfigOperationMetadata;

                    /**
                     * Creates a plain object from a ClearSuggestionFeatureConfigOperationMetadata message. Also converts values to other types if specified.
                     * @param message ClearSuggestionFeatureConfigOperationMetadata
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.ClearSuggestionFeatureConfigOperationMetadata, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ClearSuggestionFeatureConfigOperationMetadata to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ClearSuggestionFeatureConfigOperationMetadata
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Represents a ConversationDatasets */
                class ConversationDatasets extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new ConversationDatasets 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 ConversationDatasets 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): ConversationDatasets;

                    /**
                     * Calls CreateConversationDataset.
                     * @param request CreateConversationDatasetRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public createConversationDataset(request: google.cloud.dialogflow.v2.ICreateConversationDatasetRequest, callback: google.cloud.dialogflow.v2.ConversationDatasets.CreateConversationDatasetCallback): void;

                    /**
                     * Calls CreateConversationDataset.
                     * @param request CreateConversationDatasetRequest message or plain object
                     * @returns Promise
                     */
                    public createConversationDataset(request: google.cloud.dialogflow.v2.ICreateConversationDatasetRequest): Promise<google.longrunning.Operation>;

                    /**
                     * Calls GetConversationDataset.
                     * @param request GetConversationDatasetRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ConversationDataset
                     */
                    public getConversationDataset(request: google.cloud.dialogflow.v2.IGetConversationDatasetRequest, callback: google.cloud.dialogflow.v2.ConversationDatasets.GetConversationDatasetCallback): void;

                    /**
                     * Calls GetConversationDataset.
                     * @param request GetConversationDatasetRequest message or plain object
                     * @returns Promise
                     */
                    public getConversationDataset(request: google.cloud.dialogflow.v2.IGetConversationDatasetRequest): Promise<google.cloud.dialogflow.v2.ConversationDataset>;

                    /**
                     * Calls ListConversationDatasets.
                     * @param request ListConversationDatasetsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ListConversationDatasetsResponse
                     */
                    public listConversationDatasets(request: google.cloud.dialogflow.v2.IListConversationDatasetsRequest, callback: google.cloud.dialogflow.v2.ConversationDatasets.ListConversationDatasetsCallback): void;

                    /**
                     * Calls ListConversationDatasets.
                     * @param request ListConversationDatasetsRequest message or plain object
                     * @returns Promise
                     */
                    public listConversationDatasets(request: google.cloud.dialogflow.v2.IListConversationDatasetsRequest): Promise<google.cloud.dialogflow.v2.ListConversationDatasetsResponse>;

                    /**
                     * Calls DeleteConversationDataset.
                     * @param request DeleteConversationDatasetRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public deleteConversationDataset(request: google.cloud.dialogflow.v2.IDeleteConversationDatasetRequest, callback: google.cloud.dialogflow.v2.ConversationDatasets.DeleteConversationDatasetCallback): void;

                    /**
                     * Calls DeleteConversationDataset.
                     * @param request DeleteConversationDatasetRequest message or plain object
                     * @returns Promise
                     */
                    public deleteConversationDataset(request: google.cloud.dialogflow.v2.IDeleteConversationDatasetRequest): Promise<google.longrunning.Operation>;

                    /**
                     * Calls ImportConversationData.
                     * @param request ImportConversationDataRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public importConversationData(request: google.cloud.dialogflow.v2.IImportConversationDataRequest, callback: google.cloud.dialogflow.v2.ConversationDatasets.ImportConversationDataCallback): void;

                    /**
                     * Calls ImportConversationData.
                     * @param request ImportConversationDataRequest message or plain object
                     * @returns Promise
                     */
                    public importConversationData(request: google.cloud.dialogflow.v2.IImportConversationDataRequest): Promise<google.longrunning.Operation>;
                }

                namespace ConversationDatasets {

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2.ConversationDatasets|createConversationDataset}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type CreateConversationDatasetCallback = (error: (Error|null), response?: google.longrunning.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2.ConversationDatasets|getConversationDataset}.
                     * @param error Error, if any
                     * @param [response] ConversationDataset
                     */
                    type GetConversationDatasetCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2.ConversationDataset) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2.ConversationDatasets|listConversationDatasets}.
                     * @param error Error, if any
                     * @param [response] ListConversationDatasetsResponse
                     */
                    type ListConversationDatasetsCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2.ListConversationDatasetsResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2.ConversationDatasets|deleteConversationDataset}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteConversationDatasetCallback = (error: (Error|null), response?: google.longrunning.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2.ConversationDatasets|importConversationData}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type ImportConversationDataCallback = (error: (Error|null), response?: google.longrunning.Operation) => void;
                }

                /** Properties of a ConversationInfo. */
                interface IConversationInfo {

                    /** ConversationInfo languageCode */
                    languageCode?: (string|null);
                }

                /** Represents a ConversationInfo. */
                class ConversationInfo implements IConversationInfo {

                    /**
                     * Constructs a new ConversationInfo.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IConversationInfo);

                    /** ConversationInfo languageCode. */
                    public languageCode: string;

                    /**
                     * Creates a new ConversationInfo instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ConversationInfo instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IConversationInfo): google.cloud.dialogflow.v2.ConversationInfo;

                    /**
                     * Encodes the specified ConversationInfo message. Does not implicitly {@link google.cloud.dialogflow.v2.ConversationInfo.verify|verify} messages.
                     * @param message ConversationInfo message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IConversationInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ConversationInfo message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.ConversationInfo.verify|verify} messages.
                     * @param message ConversationInfo message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.IConversationInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ConversationInfo message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ConversationInfo
                     * @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.cloud.dialogflow.v2.ConversationInfo;

                    /**
                     * Decodes a ConversationInfo message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ConversationInfo
                     * @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.cloud.dialogflow.v2.ConversationInfo;

                    /**
                     * Verifies a ConversationInfo 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 ConversationInfo message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ConversationInfo
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.ConversationInfo;

                    /**
                     * Creates a plain object from a ConversationInfo message. Also converts values to other types if specified.
                     * @param message ConversationInfo
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.ConversationInfo, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ConversationInfo to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ConversationInfo
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InputConfig. */
                interface IInputConfig {

                    /** InputConfig gcsSource */
                    gcsSource?: (google.cloud.dialogflow.v2.IGcsSources|null);
                }

                /** Represents an InputConfig. */
                class InputConfig implements IInputConfig {

                    /**
                     * Constructs a new InputConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IInputConfig);

                    /** InputConfig gcsSource. */
                    public gcsSource?: (google.cloud.dialogflow.v2.IGcsSources|null);

                    /** InputConfig source. */
                    public source?: "gcsSource";

                    /**
                     * Creates a new InputConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InputConfig instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IInputConfig): google.cloud.dialogflow.v2.InputConfig;

                    /**
                     * Encodes the specified InputConfig message. Does not implicitly {@link google.cloud.dialogflow.v2.InputConfig.verify|verify} messages.
                     * @param message InputConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IInputConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InputConfig message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.InputConfig.verify|verify} messages.
                     * @param message InputConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.IInputConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InputConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InputConfig
                     * @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.cloud.dialogflow.v2.InputConfig;

                    /**
                     * Decodes an InputConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InputConfig
                     * @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.cloud.dialogflow.v2.InputConfig;

                    /**
                     * Verifies an InputConfig 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 InputConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InputConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.InputConfig;

                    /**
                     * Creates a plain object from an InputConfig message. Also converts values to other types if specified.
                     * @param message InputConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.InputConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InputConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InputConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ConversationDataset. */
                interface IConversationDataset {

                    /** ConversationDataset name */
                    name?: (string|null);

                    /** ConversationDataset displayName */
                    displayName?: (string|null);

                    /** ConversationDataset description */
                    description?: (string|null);

                    /** ConversationDataset createTime */
                    createTime?: (google.protobuf.ITimestamp|null);

                    /** ConversationDataset inputConfig */
                    inputConfig?: (google.cloud.dialogflow.v2.IInputConfig|null);

                    /** ConversationDataset conversationInfo */
                    conversationInfo?: (google.cloud.dialogflow.v2.IConversationInfo|null);

                    /** ConversationDataset conversationCount */
                    conversationCount?: (number|Long|string|null);

                    /** ConversationDataset satisfiesPzi */
                    satisfiesPzi?: (boolean|null);

                    /** ConversationDataset satisfiesPzs */
                    satisfiesPzs?: (boolean|null);
                }

                /** Represents a ConversationDataset. */
                class ConversationDataset implements IConversationDataset {

                    /**
                     * Constructs a new ConversationDataset.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IConversationDataset);

                    /** ConversationDataset name. */
                    public name: string;

                    /** ConversationDataset displayName. */
                    public displayName: string;

                    /** ConversationDataset description. */
                    public description: string;

                    /** ConversationDataset createTime. */
                    public createTime?: (google.protobuf.ITimestamp|null);

                    /** ConversationDataset inputConfig. */
                    public inputConfig?: (google.cloud.dialogflow.v2.IInputConfig|null);

                    /** ConversationDataset conversationInfo. */
                    public conversationInfo?: (google.cloud.dialogflow.v2.IConversationInfo|null);

                    /** ConversationDataset conversationCount. */
                    public conversationCount: (number|Long|string);

                    /** ConversationDataset satisfiesPzi. */
                    public satisfiesPzi?: (boolean|null);

                    /** ConversationDataset satisfiesPzs. */
                    public satisfiesPzs?: (boolean|null);

                    /**
                     * Creates a new ConversationDataset instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ConversationDataset instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IConversationDataset): google.cloud.dialogflow.v2.ConversationDataset;

                    /**
                     * Encodes the specified ConversationDataset message. Does not implicitly {@link google.cloud.dialogflow.v2.ConversationDataset.verify|verify} messages.
                     * @param message ConversationDataset message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IConversationDataset, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ConversationDataset message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.ConversationDataset.verify|verify} messages.
                     * @param message ConversationDataset message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.IConversationDataset, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ConversationDataset message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ConversationDataset
                     * @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.cloud.dialogflow.v2.ConversationDataset;

                    /**
                     * Decodes a ConversationDataset message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ConversationDataset
                     * @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.cloud.dialogflow.v2.ConversationDataset;

                    /**
                     * Verifies a ConversationDataset 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 ConversationDataset message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ConversationDataset
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.ConversationDataset;

                    /**
                     * Creates a plain object from a ConversationDataset message. Also converts values to other types if specified.
                     * @param message ConversationDataset
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.ConversationDataset, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ConversationDataset to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ConversationDataset
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a CreateConversationDatasetRequest. */
                interface ICreateConversationDatasetRequest {

                    /** CreateConversationDatasetRequest parent */
                    parent?: (string|null);

                    /** CreateConversationDatasetRequest conversationDataset */
                    conversationDataset?: (google.cloud.dialogflow.v2.IConversationDataset|null);
                }

                /** Represents a CreateConversationDatasetRequest. */
                class CreateConversationDatasetRequest implements ICreateConversationDatasetRequest {

                    /**
                     * Constructs a new CreateConversationDatasetRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.ICreateConversationDatasetRequest);

                    /** CreateConversationDatasetRequest parent. */
                    public parent: string;

                    /** CreateConversationDatasetRequest conversationDataset. */
                    public conversationDataset?: (google.cloud.dialogflow.v2.IConversationDataset|null);

                    /**
                     * Creates a new CreateConversationDatasetRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CreateConversationDatasetRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.ICreateConversationDatasetRequest): google.cloud.dialogflow.v2.CreateConversationDatasetRequest;

                    /**
                     * Encodes the specified CreateConversationDatasetRequest message. Does not implicitly {@link google.cloud.dialogflow.v2.CreateConversationDatasetRequest.verify|verify} messages.
                     * @param message CreateConversationDatasetRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.ICreateConversationDatasetRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CreateConversationDatasetRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.CreateConversationDatasetRequest.verify|verify} messages.
                     * @param message CreateConversationDatasetRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.ICreateConversationDatasetRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CreateConversationDatasetRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CreateConversationDatasetRequest
                     * @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.cloud.dialogflow.v2.CreateConversationDatasetRequest;

                    /**
                     * Decodes a CreateConversationDatasetRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CreateConversationDatasetRequest
                     * @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.cloud.dialogflow.v2.CreateConversationDatasetRequest;

                    /**
                     * Verifies a CreateConversationDatasetRequest 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 CreateConversationDatasetRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CreateConversationDatasetRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.CreateConversationDatasetRequest;

                    /**
                     * Creates a plain object from a CreateConversationDatasetRequest message. Also converts values to other types if specified.
                     * @param message CreateConversationDatasetRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.CreateConversationDatasetRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CreateConversationDatasetRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CreateConversationDatasetRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetConversationDatasetRequest. */
                interface IGetConversationDatasetRequest {

                    /** GetConversationDatasetRequest name */
                    name?: (string|null);
                }

                /** Represents a GetConversationDatasetRequest. */
                class GetConversationDatasetRequest implements IGetConversationDatasetRequest {

                    /**
                     * Constructs a new GetConversationDatasetRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IGetConversationDatasetRequest);

                    /** GetConversationDatasetRequest name. */
                    public name: string;

                    /**
                     * Creates a new GetConversationDatasetRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetConversationDatasetRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IGetConversationDatasetRequest): google.cloud.dialogflow.v2.GetConversationDatasetRequest;

                    /**
                     * Encodes the specified GetConversationDatasetRequest message. Does not implicitly {@link google.cloud.dialogflow.v2.GetConversationDatasetRequest.verify|verify} messages.
                     * @param message GetConversationDatasetRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IGetConversationDatasetRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetConversationDatasetRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.GetConversationDatasetRequest.verify|verify} messages.
                     * @param message GetConversationDatasetRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.IGetConversationDatasetRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetConversationDatasetRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetConversationDatasetRequest
                     * @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.cloud.dialogflow.v2.GetConversationDatasetRequest;

                    /**
                     * Decodes a GetConversationDatasetRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetConversationDatasetRequest
                     * @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.cloud.dialogflow.v2.GetConversationDatasetRequest;

                    /**
                     * Verifies a GetConversationDatasetRequest 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 GetConversationDatasetRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetConversationDatasetRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.GetConversationDatasetRequest;

                    /**
                     * Creates a plain object from a GetConversationDatasetRequest message. Also converts values to other types if specified.
                     * @param message GetConversationDatasetRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.GetConversationDatasetRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetConversationDatasetRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetConversationDatasetRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListConversationDatasetsRequest. */
                interface IListConversationDatasetsRequest {

                    /** ListConversationDatasetsRequest parent */
                    parent?: (string|null);

                    /** ListConversationDatasetsRequest pageSize */
                    pageSize?: (number|null);

                    /** ListConversationDatasetsRequest pageToken */
                    pageToken?: (string|null);
                }

                /** Represents a ListConversationDatasetsRequest. */
                class ListConversationDatasetsRequest implements IListConversationDatasetsRequest {

                    /**
                     * Constructs a new ListConversationDatasetsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IListConversationDatasetsRequest);

                    /** ListConversationDatasetsRequest parent. */
                    public parent: string;

                    /** ListConversationDatasetsRequest pageSize. */
                    public pageSize: number;

                    /** ListConversationDatasetsRequest pageToken. */
                    public pageToken: string;

                    /**
                     * Creates a new ListConversationDatasetsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListConversationDatasetsRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IListConversationDatasetsRequest): google.cloud.dialogflow.v2.ListConversationDatasetsRequest;

                    /**
                     * Encodes the specified ListConversationDatasetsRequest message. Does not implicitly {@link google.cloud.dialogflow.v2.ListConversationDatasetsRequest.verify|verify} messages.
                     * @param message ListConversationDatasetsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IListConversationDatasetsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListConversationDatasetsRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.ListConversationDatasetsRequest.verify|verify} messages.
                     * @param message ListConversationDatasetsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.IListConversationDatasetsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListConversationDatasetsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListConversationDatasetsRequest
                     * @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.cloud.dialogflow.v2.ListConversationDatasetsRequest;

                    /**
                     * Decodes a ListConversationDatasetsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListConversationDatasetsRequest
                     * @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.cloud.dialogflow.v2.ListConversationDatasetsRequest;

                    /**
                     * Verifies a ListConversationDatasetsRequest 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 ListConversationDatasetsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListConversationDatasetsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.ListConversationDatasetsRequest;

                    /**
                     * Creates a plain object from a ListConversationDatasetsRequest message. Also converts values to other types if specified.
                     * @param message ListConversationDatasetsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.ListConversationDatasetsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListConversationDatasetsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListConversationDatasetsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListConversationDatasetsResponse. */
                interface IListConversationDatasetsResponse {

                    /** ListConversationDatasetsResponse conversationDatasets */
                    conversationDatasets?: (google.cloud.dialogflow.v2.IConversationDataset[]|null);

                    /** ListConversationDatasetsResponse nextPageToken */
                    nextPageToken?: (string|null);
                }

                /** Represents a ListConversationDatasetsResponse. */
                class ListConversationDatasetsResponse implements IListConversationDatasetsResponse {

                    /**
                     * Constructs a new ListConversationDatasetsResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IListConversationDatasetsResponse);

                    /** ListConversationDatasetsResponse conversationDatasets. */
                    public conversationDatasets: google.cloud.dialogflow.v2.IConversationDataset[];

                    /** ListConversationDatasetsResponse nextPageToken. */
                    public nextPageToken: string;

                    /**
                     * Creates a new ListConversationDatasetsResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListConversationDatasetsResponse instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IListConversationDatasetsResponse): google.cloud.dialogflow.v2.ListConversationDatasetsResponse;

                    /**
                     * Encodes the specified ListConversationDatasetsResponse message. Does not implicitly {@link google.cloud.dialogflow.v2.ListConversationDatasetsResponse.verify|verify} messages.
                     * @param message ListConversationDatasetsResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IListConversationDatasetsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListConversationDatasetsResponse message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.ListConversationDatasetsResponse.verify|verify} messages.
                     * @param message ListConversationDatasetsResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.IListConversationDatasetsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListConversationDatasetsResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListConversationDatasetsResponse
                     * @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.cloud.dialogflow.v2.ListConversationDatasetsResponse;

                    /**
                     * Decodes a ListConversationDatasetsResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListConversationDatasetsResponse
                     * @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.cloud.dialogflow.v2.ListConversationDatasetsResponse;

                    /**
                     * Verifies a ListConversationDatasetsResponse 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 ListConversationDatasetsResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListConversationDatasetsResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.ListConversationDatasetsResponse;

                    /**
                     * Creates a plain object from a ListConversationDatasetsResponse message. Also converts values to other types if specified.
                     * @param message ListConversationDatasetsResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.ListConversationDatasetsResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListConversationDatasetsResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListConversationDatasetsResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteConversationDatasetRequest. */
                interface IDeleteConversationDatasetRequest {

                    /** DeleteConversationDatasetRequest name */
                    name?: (string|null);
                }

                /** Represents a DeleteConversationDatasetRequest. */
                class DeleteConversationDatasetRequest implements IDeleteConversationDatasetRequest {

                    /**
                     * Constructs a new DeleteConversationDatasetRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IDeleteConversationDatasetRequest);

                    /** DeleteConversationDatasetRequest name. */
                    public name: string;

                    /**
                     * Creates a new DeleteConversationDatasetRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteConversationDatasetRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IDeleteConversationDatasetRequest): google.cloud.dialogflow.v2.DeleteConversationDatasetRequest;

                    /**
                     * Encodes the specified DeleteConversationDatasetRequest message. Does not implicitly {@link google.cloud.dialogflow.v2.DeleteConversationDatasetRequest.verify|verify} messages.
                     * @param message DeleteConversationDatasetRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IDeleteConversationDatasetRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteConversationDatasetRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.DeleteConversationDatasetRequest.verify|verify} messages.
                     * @param message DeleteConversationDatasetRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.IDeleteConversationDatasetRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteConversationDatasetRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteConversationDatasetRequest
                     * @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.cloud.dialogflow.v2.DeleteConversationDatasetRequest;

                    /**
                     * Decodes a DeleteConversationDatasetRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteConversationDatasetRequest
                     * @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.cloud.dialogflow.v2.DeleteConversationDatasetRequest;

                    /**
                     * Verifies a DeleteConversationDatasetRequest 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 DeleteConversationDatasetRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteConversationDatasetRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.DeleteConversationDatasetRequest;

                    /**
                     * Creates a plain object from a DeleteConversationDatasetRequest message. Also converts values to other types if specified.
                     * @param message DeleteConversationDatasetRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.DeleteConversationDatasetRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteConversationDatasetRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteConversationDatasetRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an ImportConversationDataRequest. */
                interface IImportConversationDataRequest {

                    /** ImportConversationDataRequest name */
                    name?: (string|null);

                    /** ImportConversationDataRequest inputConfig */
                    inputConfig?: (google.cloud.dialogflow.v2.IInputConfig|null);
                }

                /** Represents an ImportConversationDataRequest. */
                class ImportConversationDataRequest implements IImportConversationDataRequest {

                    /**
                     * Constructs a new ImportConversationDataRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IImportConversationDataRequest);

                    /** ImportConversationDataRequest name. */
                    public name: string;

                    /** ImportConversationDataRequest inputConfig. */
                    public inputConfig?: (google.cloud.dialogflow.v2.IInputConfig|null);

                    /**
                     * Creates a new ImportConversationDataRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ImportConversationDataRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IImportConversationDataRequest): google.cloud.dialogflow.v2.ImportConversationDataRequest;

                    /**
                     * Encodes the specified ImportConversationDataRequest message. Does not implicitly {@link google.cloud.dialogflow.v2.ImportConversationDataRequest.verify|verify} messages.
                     * @param message ImportConversationDataRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IImportConversationDataRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ImportConversationDataRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.ImportConversationDataRequest.verify|verify} messages.
                     * @param message ImportConversationDataRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.IImportConversationDataRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an ImportConversationDataRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ImportConversationDataRequest
                     * @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.cloud.dialogflow.v2.ImportConversationDataRequest;

                    /**
                     * Decodes an ImportConversationDataRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ImportConversationDataRequest
                     * @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.cloud.dialogflow.v2.ImportConversationDataRequest;

                    /**
                     * Verifies an ImportConversationDataRequest 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 ImportConversationDataRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ImportConversationDataRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.ImportConversationDataRequest;

                    /**
                     * Creates a plain object from an ImportConversationDataRequest message. Also converts values to other types if specified.
                     * @param message ImportConversationDataRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.ImportConversationDataRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ImportConversationDataRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ImportConversationDataRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an ImportConversationDataOperationMetadata. */
                interface IImportConversationDataOperationMetadata {

                    /** ImportConversationDataOperationMetadata conversationDataset */
                    conversationDataset?: (string|null);

                    /** ImportConversationDataOperationMetadata partialFailures */
                    partialFailures?: (google.rpc.IStatus[]|null);

                    /** ImportConversationDataOperationMetadata createTime */
                    createTime?: (google.protobuf.ITimestamp|null);
                }

                /** Represents an ImportConversationDataOperationMetadata. */
                class ImportConversationDataOperationMetadata implements IImportConversationDataOperationMetadata {

                    /**
                     * Constructs a new ImportConversationDataOperationMetadata.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IImportConversationDataOperationMetadata);

                    /** ImportConversationDataOperationMetadata conversationDataset. */
                    public conversationDataset: string;

                    /** ImportConversationDataOperationMetadata partialFailures. */
                    public partialFailures: google.rpc.IStatus[];

                    /** ImportConversationDataOperationMetadata createTime. */
                    public createTime?: (google.protobuf.ITimestamp|null);

                    /**
                     * Creates a new ImportConversationDataOperationMetadata instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ImportConversationDataOperationMetadata instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IImportConversationDataOperationMetadata): google.cloud.dialogflow.v2.ImportConversationDataOperationMetadata;

                    /**
                     * Encodes the specified ImportConversationDataOperationMetadata message. Does not implicitly {@link google.cloud.dialogflow.v2.ImportConversationDataOperationMetadata.verify|verify} messages.
                     * @param message ImportConversationDataOperationMetadata message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IImportConversationDataOperationMetadata, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ImportConversationDataOperationMetadata message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.ImportConversationDataOperationMetadata.verify|verify} messages.
                     * @param message ImportConversationDataOperationMetadata message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.IImportConversationDataOperationMetadata, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an ImportConversationDataOperationMetadata message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ImportConversationDataOperationMetadata
                     * @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.cloud.dialogflow.v2.ImportConversationDataOperationMetadata;

                    /**
                     * Decodes an ImportConversationDataOperationMetadata message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ImportConversationDataOperationMetadata
                     * @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.cloud.dialogflow.v2.ImportConversationDataOperationMetadata;

                    /**
                     * Verifies an ImportConversationDataOperationMetadata 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 ImportConversationDataOperationMetadata message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ImportConversationDataOperationMetadata
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.ImportConversationDataOperationMetadata;

                    /**
                     * Creates a plain object from an ImportConversationDataOperationMetadata message. Also converts values to other types if specified.
                     * @param message ImportConversationDataOperationMetadata
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.ImportConversationDataOperationMetadata, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ImportConversationDataOperationMetadata to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ImportConversationDataOperationMetadata
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an ImportConversationDataOperationResponse. */
                interface IImportConversationDataOperationResponse {

                    /** ImportConversationDataOperationResponse conversationDataset */
                    conversationDataset?: (string|null);

                    /** ImportConversationDataOperationResponse importCount */
                    importCount?: (number|null);
                }

                /** Represents an ImportConversationDataOperationResponse. */
                class ImportConversationDataOperationResponse implements IImportConversationDataOperationResponse {

                    /**
                     * Constructs a new ImportConversationDataOperationResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IImportConversationDataOperationResponse);

                    /** ImportConversationDataOperationResponse conversationDataset. */
                    public conversationDataset: string;

                    /** ImportConversationDataOperationResponse importCount. */
                    public importCount: number;

                    /**
                     * Creates a new ImportConversationDataOperationResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ImportConversationDataOperationResponse instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IImportConversationDataOperationResponse): google.cloud.dialogflow.v2.ImportConversationDataOperationResponse;

                    /**
                     * Encodes the specified ImportConversationDataOperationResponse message. Does not implicitly {@link google.cloud.dialogflow.v2.ImportConversationDataOperationResponse.verify|verify} messages.
                     * @param message ImportConversationDataOperationResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IImportConversationDataOperationResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ImportConversationDataOperationResponse message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.ImportConversationDataOperationResponse.verify|verify} messages.
                     * @param message ImportConversationDataOperationResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.IImportConversationDataOperationResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an ImportConversationDataOperationResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ImportConversationDataOperationResponse
                     * @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.cloud.dialogflow.v2.ImportConversationDataOperationResponse;

                    /**
                     * Decodes an ImportConversationDataOperationResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ImportConversationDataOperationResponse
                     * @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.cloud.dialogflow.v2.ImportConversationDataOperationResponse;

                    /**
                     * Verifies an ImportConversationDataOperationResponse 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 ImportConversationDataOperationResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ImportConversationDataOperationResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.ImportConversationDataOperationResponse;

                    /**
                     * Creates a plain object from an ImportConversationDataOperationResponse message. Also converts values to other types if specified.
                     * @param message ImportConversationDataOperationResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.ImportConversationDataOperationResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ImportConversationDataOperationResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ImportConversationDataOperationResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a CreateConversationDatasetOperationMetadata. */
                interface ICreateConversationDatasetOperationMetadata {

                    /** CreateConversationDatasetOperationMetadata conversationDataset */
                    conversationDataset?: (string|null);
                }

                /** Represents a CreateConversationDatasetOperationMetadata. */
                class CreateConversationDatasetOperationMetadata implements ICreateConversationDatasetOperationMetadata {

                    /**
                     * Constructs a new CreateConversationDatasetOperationMetadata.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.ICreateConversationDatasetOperationMetadata);

                    /** CreateConversationDatasetOperationMetadata conversationDataset. */
                    public conversationDataset: string;

                    /**
                     * Creates a new CreateConversationDatasetOperationMetadata instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CreateConversationDatasetOperationMetadata instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.ICreateConversationDatasetOperationMetadata): google.cloud.dialogflow.v2.CreateConversationDatasetOperationMetadata;

                    /**
                     * Encodes the specified CreateConversationDatasetOperationMetadata message. Does not implicitly {@link google.cloud.dialogflow.v2.CreateConversationDatasetOperationMetadata.verify|verify} messages.
                     * @param message CreateConversationDatasetOperationMetadata message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.ICreateConversationDatasetOperationMetadata, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CreateConversationDatasetOperationMetadata message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.CreateConversationDatasetOperationMetadata.verify|verify} messages.
                     * @param message CreateConversationDatasetOperationMetadata message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.ICreateConversationDatasetOperationMetadata, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CreateConversationDatasetOperationMetadata message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CreateConversationDatasetOperationMetadata
                     * @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.cloud.dialogflow.v2.CreateConversationDatasetOperationMetadata;

                    /**
                     * Decodes a CreateConversationDatasetOperationMetadata message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CreateConversationDatasetOperationMetadata
                     * @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.cloud.dialogflow.v2.CreateConversationDatasetOperationMetadata;

                    /**
                     * Verifies a CreateConversationDatasetOperationMetadata 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 CreateConversationDatasetOperationMetadata message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CreateConversationDatasetOperationMetadata
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.CreateConversationDatasetOperationMetadata;

                    /**
                     * Creates a plain object from a CreateConversationDatasetOperationMetadata message. Also converts values to other types if specified.
                     * @param message CreateConversationDatasetOperationMetadata
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.CreateConversationDatasetOperationMetadata, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CreateConversationDatasetOperationMetadata to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CreateConversationDatasetOperationMetadata
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteConversationDatasetOperationMetadata. */
                interface IDeleteConversationDatasetOperationMetadata {
                }

                /** Represents a DeleteConversationDatasetOperationMetadata. */
                class DeleteConversationDatasetOperationMetadata implements IDeleteConversationDatasetOperationMetadata {

                    /**
                     * Constructs a new DeleteConversationDatasetOperationMetadata.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IDeleteConversationDatasetOperationMetadata);

                    /**
                     * Creates a new DeleteConversationDatasetOperationMetadata instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteConversationDatasetOperationMetadata instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IDeleteConversationDatasetOperationMetadata): google.cloud.dialogflow.v2.DeleteConversationDatasetOperationMetadata;

                    /**
                     * Encodes the specified DeleteConversationDatasetOperationMetadata message. Does not implicitly {@link google.cloud.dialogflow.v2.DeleteConversationDatasetOperationMetadata.verify|verify} messages.
                     * @param message DeleteConversationDatasetOperationMetadata message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IDeleteConversationDatasetOperationMetadata, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteConversationDatasetOperationMetadata message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.DeleteConversationDatasetOperationMetadata.verify|verify} messages.
                     * @param message DeleteConversationDatasetOperationMetadata message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.IDeleteConversationDatasetOperationMetadata, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteConversationDatasetOperationMetadata message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteConversationDatasetOperationMetadata
                     * @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.cloud.dialogflow.v2.DeleteConversationDatasetOperationMetadata;

                    /**
                     * Decodes a DeleteConversationDatasetOperationMetadata message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteConversationDatasetOperationMetadata
                     * @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.cloud.dialogflow.v2.DeleteConversationDatasetOperationMetadata;

                    /**
                     * Verifies a DeleteConversationDatasetOperationMetadata 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 DeleteConversationDatasetOperationMetadata message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteConversationDatasetOperationMetadata
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.DeleteConversationDatasetOperationMetadata;

                    /**
                     * Creates a plain object from a DeleteConversationDatasetOperationMetadata message. Also converts values to other types if specified.
                     * @param message DeleteConversationDatasetOperationMetadata
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.DeleteConversationDatasetOperationMetadata, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteConversationDatasetOperationMetadata to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteConversationDatasetOperationMetadata
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GcsSources. */
                interface IGcsSources {

                    /** GcsSources uris */
                    uris?: (string[]|null);
                }

                /** Represents a GcsSources. */
                class GcsSources implements IGcsSources {

                    /**
                     * Constructs a new GcsSources.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IGcsSources);

                    /** GcsSources uris. */
                    public uris: string[];

                    /**
                     * Creates a new GcsSources instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GcsSources instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IGcsSources): google.cloud.dialogflow.v2.GcsSources;

                    /**
                     * Encodes the specified GcsSources message. Does not implicitly {@link google.cloud.dialogflow.v2.GcsSources.verify|verify} messages.
                     * @param message GcsSources message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IGcsSources, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GcsSources message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.GcsSources.verify|verify} messages.
                     * @param message GcsSources message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.IGcsSources, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GcsSources message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GcsSources
                     * @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.cloud.dialogflow.v2.GcsSources;

                    /**
                     * Decodes a GcsSources message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GcsSources
                     * @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.cloud.dialogflow.v2.GcsSources;

                    /**
                     * Verifies a GcsSources 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 GcsSources message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GcsSources
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.GcsSources;

                    /**
                     * Creates a plain object from a GcsSources message. Also converts values to other types if specified.
                     * @param message GcsSources
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.GcsSources, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GcsSources to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GcsSources
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GcsDestination. */
                interface IGcsDestination {

                    /** GcsDestination uri */
                    uri?: (string|null);
                }

                /** Represents a GcsDestination. */
                class GcsDestination implements IGcsDestination {

                    /**
                     * Constructs a new GcsDestination.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IGcsDestination);

                    /** GcsDestination uri. */
                    public uri: string;

                    /**
                     * Creates a new GcsDestination instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GcsDestination instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IGcsDestination): google.cloud.dialogflow.v2.GcsDestination;

                    /**
                     * Encodes the specified GcsDestination message. Does not implicitly {@link google.cloud.dialogflow.v2.GcsDestination.verify|verify} messages.
                     * @param message GcsDestination message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IGcsDestination, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GcsDestination message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.GcsDestination.verify|verify} messages.
                     * @param message GcsDestination message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.IGcsDestination, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GcsDestination message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GcsDestination
                     * @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.cloud.dialogflow.v2.GcsDestination;

                    /**
                     * Decodes a GcsDestination message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GcsDestination
                     * @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.cloud.dialogflow.v2.GcsDestination;

                    /**
                     * Verifies a GcsDestination 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 GcsDestination message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GcsDestination
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.GcsDestination;

                    /**
                     * Creates a plain object from a GcsDestination message. Also converts values to other types if specified.
                     * @param message GcsDestination
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.GcsDestination, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GcsDestination to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GcsDestination
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ConversationEvent. */
                interface IConversationEvent {

                    /** ConversationEvent conversation */
                    conversation?: (string|null);

                    /** ConversationEvent type */
                    type?: (google.cloud.dialogflow.v2.ConversationEvent.Type|keyof typeof google.cloud.dialogflow.v2.ConversationEvent.Type|null);

                    /** ConversationEvent errorStatus */
                    errorStatus?: (google.rpc.IStatus|null);

                    /** ConversationEvent newMessagePayload */
                    newMessagePayload?: (google.cloud.dialogflow.v2.IMessage|null);

                    /** ConversationEvent newRecognitionResultPayload */
                    newRecognitionResultPayload?: (google.cloud.dialogflow.v2.IStreamingRecognitionResult|null);
                }

                /** Represents a ConversationEvent. */
                class ConversationEvent implements IConversationEvent {

                    /**
                     * Constructs a new ConversationEvent.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IConversationEvent);

                    /** ConversationEvent conversation. */
                    public conversation: string;

                    /** ConversationEvent type. */
                    public type: (google.cloud.dialogflow.v2.ConversationEvent.Type|keyof typeof google.cloud.dialogflow.v2.ConversationEvent.Type);

                    /** ConversationEvent errorStatus. */
                    public errorStatus?: (google.rpc.IStatus|null);

                    /** ConversationEvent newMessagePayload. */
                    public newMessagePayload?: (google.cloud.dialogflow.v2.IMessage|null);

                    /** ConversationEvent newRecognitionResultPayload. */
                    public newRecognitionResultPayload?: (google.cloud.dialogflow.v2.IStreamingRecognitionResult|null);

                    /** ConversationEvent payload. */
                    public payload?: ("newMessagePayload"|"newRecognitionResultPayload");

                    /**
                     * Creates a new ConversationEvent instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ConversationEvent instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IConversationEvent): google.cloud.dialogflow.v2.ConversationEvent;

                    /**
                     * Encodes the specified ConversationEvent message. Does not implicitly {@link google.cloud.dialogflow.v2.ConversationEvent.verify|verify} messages.
                     * @param message ConversationEvent message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IConversationEvent, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ConversationEvent message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.ConversationEvent.verify|verify} messages.
                     * @param message ConversationEvent message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.IConversationEvent, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ConversationEvent message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ConversationEvent
                     * @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.cloud.dialogflow.v2.ConversationEvent;

                    /**
                     * Decodes a ConversationEvent message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ConversationEvent
                     * @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.cloud.dialogflow.v2.ConversationEvent;

                    /**
                     * Verifies a ConversationEvent 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 ConversationEvent message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ConversationEvent
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.ConversationEvent;

                    /**
                     * Creates a plain object from a ConversationEvent message. Also converts values to other types if specified.
                     * @param message ConversationEvent
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.ConversationEvent, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ConversationEvent to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ConversationEvent
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace ConversationEvent {

                    /** Type enum. */
                    enum Type {
                        TYPE_UNSPECIFIED = 0,
                        CONVERSATION_STARTED = 1,
                        CONVERSATION_FINISHED = 2,
                        HUMAN_INTERVENTION_NEEDED = 3,
                        NEW_MESSAGE = 5,
                        NEW_RECOGNITION_RESULT = 7,
                        UNRECOVERABLE_ERROR = 4
                    }
                }

                /** Represents a ConversationModels */
                class ConversationModels extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new ConversationModels 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 ConversationModels 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): ConversationModels;

                    /**
                     * Calls CreateConversationModel.
                     * @param request CreateConversationModelRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public createConversationModel(request: google.cloud.dialogflow.v2.ICreateConversationModelRequest, callback: google.cloud.dialogflow.v2.ConversationModels.CreateConversationModelCallback): void;

                    /**
                     * Calls CreateConversationModel.
                     * @param request CreateConversationModelRequest message or plain object
                     * @returns Promise
                     */
                    public createConversationModel(request: google.cloud.dialogflow.v2.ICreateConversationModelRequest): Promise<google.longrunning.Operation>;

                    /**
                     * Calls GetConversationModel.
                     * @param request GetConversationModelRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ConversationModel
                     */
                    public getConversationModel(request: google.cloud.dialogflow.v2.IGetConversationModelRequest, callback: google.cloud.dialogflow.v2.ConversationModels.GetConversationModelCallback): void;

                    /**
                     * Calls GetConversationModel.
                     * @param request GetConversationModelRequest message or plain object
                     * @returns Promise
                     */
                    public getConversationModel(request: google.cloud.dialogflow.v2.IGetConversationModelRequest): Promise<google.cloud.dialogflow.v2.ConversationModel>;

                    /**
                     * Calls ListConversationModels.
                     * @param request ListConversationModelsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ListConversationModelsResponse
                     */
                    public listConversationModels(request: google.cloud.dialogflow.v2.IListConversationModelsRequest, callback: google.cloud.dialogflow.v2.ConversationModels.ListConversationModelsCallback): void;

                    /**
                     * Calls ListConversationModels.
                     * @param request ListConversationModelsRequest message or plain object
                     * @returns Promise
                     */
                    public listConversationModels(request: google.cloud.dialogflow.v2.IListConversationModelsRequest): Promise<google.cloud.dialogflow.v2.ListConversationModelsResponse>;

                    /**
                     * Calls DeleteConversationModel.
                     * @param request DeleteConversationModelRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public deleteConversationModel(request: google.cloud.dialogflow.v2.IDeleteConversationModelRequest, callback: google.cloud.dialogflow.v2.ConversationModels.DeleteConversationModelCallback): void;

                    /**
                     * Calls DeleteConversationModel.
                     * @param request DeleteConversationModelRequest message or plain object
                     * @returns Promise
                     */
                    public deleteConversationModel(request: google.cloud.dialogflow.v2.IDeleteConversationModelRequest): Promise<google.longrunning.Operation>;

                    /**
                     * Calls DeployConversationModel.
                     * @param request DeployConversationModelRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public deployConversationModel(request: google.cloud.dialogflow.v2.IDeployConversationModelRequest, callback: google.cloud.dialogflow.v2.ConversationModels.DeployConversationModelCallback): void;

                    /**
                     * Calls DeployConversationModel.
                     * @param request DeployConversationModelRequest message or plain object
                     * @returns Promise
                     */
                    public deployConversationModel(request: google.cloud.dialogflow.v2.IDeployConversationModelRequest): Promise<google.longrunning.Operation>;

                    /**
                     * Calls UndeployConversationModel.
                     * @param request UndeployConversationModelRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public undeployConversationModel(request: google.cloud.dialogflow.v2.IUndeployConversationModelRequest, callback: google.cloud.dialogflow.v2.ConversationModels.UndeployConversationModelCallback): void;

                    /**
                     * Calls UndeployConversationModel.
                     * @param request UndeployConversationModelRequest message or plain object
                     * @returns Promise
                     */
                    public undeployConversationModel(request: google.cloud.dialogflow.v2.IUndeployConversationModelRequest): Promise<google.longrunning.Operation>;

                    /**
                     * Calls GetConversationModelEvaluation.
                     * @param request GetConversationModelEvaluationRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ConversationModelEvaluation
                     */
                    public getConversationModelEvaluation(request: google.cloud.dialogflow.v2.IGetConversationModelEvaluationRequest, callback: google.cloud.dialogflow.v2.ConversationModels.GetConversationModelEvaluationCallback): void;

                    /**
                     * Calls GetConversationModelEvaluation.
                     * @param request GetConversationModelEvaluationRequest message or plain object
                     * @returns Promise
                     */
                    public getConversationModelEvaluation(request: google.cloud.dialogflow.v2.IGetConversationModelEvaluationRequest): Promise<google.cloud.dialogflow.v2.ConversationModelEvaluation>;

                    /**
                     * Calls ListConversationModelEvaluations.
                     * @param request ListConversationModelEvaluationsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ListConversationModelEvaluationsResponse
                     */
                    public listConversationModelEvaluations(request: google.cloud.dialogflow.v2.IListConversationModelEvaluationsRequest, callback: google.cloud.dialogflow.v2.ConversationModels.ListConversationModelEvaluationsCallback): void;

                    /**
                     * Calls ListConversationModelEvaluations.
                     * @param request ListConversationModelEvaluationsRequest message or plain object
                     * @returns Promise
                     */
                    public listConversationModelEvaluations(request: google.cloud.dialogflow.v2.IListConversationModelEvaluationsRequest): Promise<google.cloud.dialogflow.v2.ListConversationModelEvaluationsResponse>;

                    /**
                     * Calls CreateConversationModelEvaluation.
                     * @param request CreateConversationModelEvaluationRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public createConversationModelEvaluation(request: google.cloud.dialogflow.v2.ICreateConversationModelEvaluationRequest, callback: google.cloud.dialogflow.v2.ConversationModels.CreateConversationModelEvaluationCallback): void;

                    /**
                     * Calls CreateConversationModelEvaluation.
                     * @param request CreateConversationModelEvaluationRequest message or plain object
                     * @returns Promise
                     */
                    public createConversationModelEvaluation(request: google.cloud.dialogflow.v2.ICreateConversationModelEvaluationRequest): Promise<google.longrunning.Operation>;
                }

                namespace ConversationModels {

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2.ConversationModels|createConversationModel}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type CreateConversationModelCallback = (error: (Error|null), response?: google.longrunning.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2.ConversationModels|getConversationModel}.
                     * @param error Error, if any
                     * @param [response] ConversationModel
                     */
                    type GetConversationModelCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2.ConversationModel) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2.ConversationModels|listConversationModels}.
                     * @param error Error, if any
                     * @param [response] ListConversationModelsResponse
                     */
                    type ListConversationModelsCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2.ListConversationModelsResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2.ConversationModels|deleteConversationModel}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteConversationModelCallback = (error: (Error|null), response?: google.longrunning.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2.ConversationModels|deployConversationModel}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeployConversationModelCallback = (error: (Error|null), response?: google.longrunning.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2.ConversationModels|undeployConversationModel}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type UndeployConversationModelCallback = (error: (Error|null), response?: google.longrunning.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2.ConversationModels|getConversationModelEvaluation}.
                     * @param error Error, if any
                     * @param [response] ConversationModelEvaluation
                     */
                    type GetConversationModelEvaluationCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2.ConversationModelEvaluation) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2.ConversationModels|listConversationModelEvaluations}.
                     * @param error Error, if any
                     * @param [response] ListConversationModelEvaluationsResponse
                     */
                    type ListConversationModelEvaluationsCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2.ListConversationModelEvaluationsResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2.ConversationModels|createConversationModelEvaluation}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type CreateConversationModelEvaluationCallback = (error: (Error|null), response?: google.longrunning.Operation) => void;
                }

                /** Properties of a ConversationModel. */
                interface IConversationModel {

                    /** ConversationModel name */
                    name?: (string|null);

                    /** ConversationModel displayName */
                    displayName?: (string|null);

                    /** ConversationModel createTime */
                    createTime?: (google.protobuf.ITimestamp|null);

                    /** ConversationModel datasets */
                    datasets?: (google.cloud.dialogflow.v2.IInputDataset[]|null);

                    /** ConversationModel state */
                    state?: (google.cloud.dialogflow.v2.ConversationModel.State|keyof typeof google.cloud.dialogflow.v2.ConversationModel.State|null);

                    /** ConversationModel languageCode */
                    languageCode?: (string|null);

                    /** ConversationModel articleSuggestionModelMetadata */
                    articleSuggestionModelMetadata?: (google.cloud.dialogflow.v2.IArticleSuggestionModelMetadata|null);

                    /** ConversationModel smartReplyModelMetadata */
                    smartReplyModelMetadata?: (google.cloud.dialogflow.v2.ISmartReplyModelMetadata|null);

                    /** ConversationModel satisfiesPzs */
                    satisfiesPzs?: (boolean|null);

                    /** ConversationModel satisfiesPzi */
                    satisfiesPzi?: (boolean|null);
                }

                /** Represents a ConversationModel. */
                class ConversationModel implements IConversationModel {

                    /**
                     * Constructs a new ConversationModel.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IConversationModel);

                    /** ConversationModel name. */
                    public name: string;

                    /** ConversationModel displayName. */
                    public displayName: string;

                    /** ConversationModel createTime. */
                    public createTime?: (google.protobuf.ITimestamp|null);

                    /** ConversationModel datasets. */
                    public datasets: google.cloud.dialogflow.v2.IInputDataset[];

                    /** ConversationModel state. */
                    public state: (google.cloud.dialogflow.v2.ConversationModel.State|keyof typeof google.cloud.dialogflow.v2.ConversationModel.State);

                    /** ConversationModel languageCode. */
                    public languageCode: string;

                    /** ConversationModel articleSuggestionModelMetadata. */
                    public articleSuggestionModelMetadata?: (google.cloud.dialogflow.v2.IArticleSuggestionModelMetadata|null);

                    /** ConversationModel smartReplyModelMetadata. */
                    public smartReplyModelMetadata?: (google.cloud.dialogflow.v2.ISmartReplyModelMetadata|null);

                    /** ConversationModel satisfiesPzs. */
                    public satisfiesPzs?: (boolean|null);

                    /** ConversationModel satisfiesPzi. */
                    public satisfiesPzi?: (boolean|null);

                    /** ConversationModel modelMetadata. */
                    public modelMetadata?: ("articleSuggestionModelMetadata"|"smartReplyModelMetadata");

                    /**
                     * Creates a new ConversationModel instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ConversationModel instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IConversationModel): google.cloud.dialogflow.v2.ConversationModel;

                    /**
                     * Encodes the specified ConversationModel message. Does not implicitly {@link google.cloud.dialogflow.v2.ConversationModel.verify|verify} messages.
                     * @param message ConversationModel message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IConversationModel, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ConversationModel message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.ConversationModel.verify|verify} messages.
                     * @param message ConversationModel message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.IConversationModel, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ConversationModel message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ConversationModel
                     * @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.cloud.dialogflow.v2.ConversationModel;

                    /**
                     * Decodes a ConversationModel message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ConversationModel
                     * @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.cloud.dialogflow.v2.ConversationModel;

                    /**
                     * Verifies a ConversationModel 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 ConversationModel message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ConversationModel
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.ConversationModel;

                    /**
                     * Creates a plain object from a ConversationModel message. Also converts values to other types if specified.
                     * @param message ConversationModel
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.ConversationModel, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ConversationModel to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ConversationModel
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace ConversationModel {

                    /** State enum. */
                    enum State {
                        STATE_UNSPECIFIED = 0,
                        CREATING = 1,
                        UNDEPLOYED = 2,
                        DEPLOYING = 3,
                        DEPLOYED = 4,
                        UNDEPLOYING = 5,
                        DELETING = 6,
                        FAILED = 7,
                        PENDING = 8
                    }

                    /** ModelType enum. */
                    enum ModelType {
                        MODEL_TYPE_UNSPECIFIED = 0,
                        SMART_REPLY_DUAL_ENCODER_MODEL = 2,
                        SMART_REPLY_BERT_MODEL = 6
                    }
                }

                /** Properties of a ConversationModelEvaluation. */
                interface IConversationModelEvaluation {

                    /** ConversationModelEvaluation name */
                    name?: (string|null);

                    /** ConversationModelEvaluation displayName */
                    displayName?: (string|null);

                    /** ConversationModelEvaluation evaluationConfig */
                    evaluationConfig?: (google.cloud.dialogflow.v2.IEvaluationConfig|null);

                    /** ConversationModelEvaluation createTime */
                    createTime?: (google.protobuf.ITimestamp|null);

                    /** ConversationModelEvaluation smartReplyMetrics */
                    smartReplyMetrics?: (google.cloud.dialogflow.v2.ISmartReplyMetrics|null);

                    /** ConversationModelEvaluation rawHumanEvalTemplateCsv */
                    rawHumanEvalTemplateCsv?: (string|null);
                }

                /** Represents a ConversationModelEvaluation. */
                class ConversationModelEvaluation implements IConversationModelEvaluation {

                    /**
                     * Constructs a new ConversationModelEvaluation.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IConversationModelEvaluation);

                    /** ConversationModelEvaluation name. */
                    public name: string;

                    /** ConversationModelEvaluation displayName. */
                    public displayName: string;

                    /** ConversationModelEvaluation evaluationConfig. */
                    public evaluationConfig?: (google.cloud.dialogflow.v2.IEvaluationConfig|null);

                    /** ConversationModelEvaluation createTime. */
                    public createTime?: (google.protobuf.ITimestamp|null);

                    /** ConversationModelEvaluation smartReplyMetrics. */
                    public smartReplyMetrics?: (google.cloud.dialogflow.v2.ISmartReplyMetrics|null);

                    /** ConversationModelEvaluation rawHumanEvalTemplateCsv. */
                    public rawHumanEvalTemplateCsv: string;

                    /** ConversationModelEvaluation metrics. */
                    public metrics?: "smartReplyMetrics";

                    /**
                     * Creates a new ConversationModelEvaluation instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ConversationModelEvaluation instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IConversationModelEvaluation): google.cloud.dialogflow.v2.ConversationModelEvaluation;

                    /**
                     * Encodes the specified ConversationModelEvaluation message. Does not implicitly {@link google.cloud.dialogflow.v2.ConversationModelEvaluation.verify|verify} messages.
                     * @param message ConversationModelEvaluation message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IConversationModelEvaluation, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ConversationModelEvaluation message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.ConversationModelEvaluation.verify|verify} messages.
                     * @param message ConversationModelEvaluation message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.IConversationModelEvaluation, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ConversationModelEvaluation message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ConversationModelEvaluation
                     * @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.cloud.dialogflow.v2.ConversationModelEvaluation;

                    /**
                     * Decodes a ConversationModelEvaluation message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ConversationModelEvaluation
                     * @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.cloud.dialogflow.v2.ConversationModelEvaluation;

                    /**
                     * Verifies a ConversationModelEvaluation 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 ConversationModelEvaluation message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ConversationModelEvaluation
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.ConversationModelEvaluation;

                    /**
                     * Creates a plain object from a ConversationModelEvaluation message. Also converts values to other types if specified.
                     * @param message ConversationModelEvaluation
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.ConversationModelEvaluation, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ConversationModelEvaluation to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ConversationModelEvaluation
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an EvaluationConfig. */
                interface IEvaluationConfig {

                    /** EvaluationConfig datasets */
                    datasets?: (google.cloud.dialogflow.v2.IInputDataset[]|null);

                    /** EvaluationConfig smartReplyConfig */
                    smartReplyConfig?: (google.cloud.dialogflow.v2.EvaluationConfig.ISmartReplyConfig|null);

                    /** EvaluationConfig smartComposeConfig */
                    smartComposeConfig?: (google.cloud.dialogflow.v2.EvaluationConfig.ISmartComposeConfig|null);
                }

                /** Represents an EvaluationConfig. */
                class EvaluationConfig implements IEvaluationConfig {

                    /**
                     * Constructs a new EvaluationConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IEvaluationConfig);

                    /** EvaluationConfig datasets. */
                    public datasets: google.cloud.dialogflow.v2.IInputDataset[];

                    /** EvaluationConfig smartReplyConfig. */
                    public smartReplyConfig?: (google.cloud.dialogflow.v2.EvaluationConfig.ISmartReplyConfig|null);

                    /** EvaluationConfig smartComposeConfig. */
                    public smartComposeConfig?: (google.cloud.dialogflow.v2.EvaluationConfig.ISmartComposeConfig|null);

                    /** EvaluationConfig modelSpecificConfig. */
                    public modelSpecificConfig?: ("smartReplyConfig"|"smartComposeConfig");

                    /**
                     * Creates a new EvaluationConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns EvaluationConfig instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IEvaluationConfig): google.cloud.dialogflow.v2.EvaluationConfig;

                    /**
                     * Encodes the specified EvaluationConfig message. Does not implicitly {@link google.cloud.dialogflow.v2.EvaluationConfig.verify|verify} messages.
                     * @param message EvaluationConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IEvaluationConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified EvaluationConfig message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.EvaluationConfig.verify|verify} messages.
                     * @param message EvaluationConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.IEvaluationConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an EvaluationConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns EvaluationConfig
                     * @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.cloud.dialogflow.v2.EvaluationConfig;

                    /**
                     * Decodes an EvaluationConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns EvaluationConfig
                     * @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.cloud.dialogflow.v2.EvaluationConfig;

                    /**
                     * Verifies an EvaluationConfig 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 EvaluationConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns EvaluationConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.EvaluationConfig;

                    /**
                     * Creates a plain object from an EvaluationConfig message. Also converts values to other types if specified.
                     * @param message EvaluationConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.EvaluationConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this EvaluationConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for EvaluationConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace EvaluationConfig {

                    /** Properties of a SmartReplyConfig. */
                    interface ISmartReplyConfig {

                        /** SmartReplyConfig allowlistDocument */
                        allowlistDocument?: (string|null);

                        /** SmartReplyConfig maxResultCount */
                        maxResultCount?: (number|null);
                    }

                    /** Represents a SmartReplyConfig. */
                    class SmartReplyConfig implements ISmartReplyConfig {

                        /**
                         * Constructs a new SmartReplyConfig.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2.EvaluationConfig.ISmartReplyConfig);

                        /** SmartReplyConfig allowlistDocument. */
                        public allowlistDocument: string;

                        /** SmartReplyConfig maxResultCount. */
                        public maxResultCount: number;

                        /**
                         * Creates a new SmartReplyConfig instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns SmartReplyConfig instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2.EvaluationConfig.ISmartReplyConfig): google.cloud.dialogflow.v2.EvaluationConfig.SmartReplyConfig;

                        /**
                         * Encodes the specified SmartReplyConfig message. Does not implicitly {@link google.cloud.dialogflow.v2.EvaluationConfig.SmartReplyConfig.verify|verify} messages.
                         * @param message SmartReplyConfig message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2.EvaluationConfig.ISmartReplyConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified SmartReplyConfig message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.EvaluationConfig.SmartReplyConfig.verify|verify} messages.
                         * @param message SmartReplyConfig message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2.EvaluationConfig.ISmartReplyConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a SmartReplyConfig message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns SmartReplyConfig
                         * @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.cloud.dialogflow.v2.EvaluationConfig.SmartReplyConfig;

                        /**
                         * Decodes a SmartReplyConfig message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns SmartReplyConfig
                         * @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.cloud.dialogflow.v2.EvaluationConfig.SmartReplyConfig;

                        /**
                         * Verifies a SmartReplyConfig 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 SmartReplyConfig message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns SmartReplyConfig
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.EvaluationConfig.SmartReplyConfig;

                        /**
                         * Creates a plain object from a SmartReplyConfig message. Also converts values to other types if specified.
                         * @param message SmartReplyConfig
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.dialogflow.v2.EvaluationConfig.SmartReplyConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this SmartReplyConfig to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for SmartReplyConfig
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    /** Properties of a SmartComposeConfig. */
                    interface ISmartComposeConfig {

                        /** SmartComposeConfig allowlistDocument */
                        allowlistDocument?: (string|null);

                        /** SmartComposeConfig maxResultCount */
                        maxResultCount?: (number|null);
                    }

                    /** Represents a SmartComposeConfig. */
                    class SmartComposeConfig implements ISmartComposeConfig {

                        /**
                         * Constructs a new SmartComposeConfig.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2.EvaluationConfig.ISmartComposeConfig);

                        /** SmartComposeConfig allowlistDocument. */
                        public allowlistDocument: string;

                        /** SmartComposeConfig maxResultCount. */
                        public maxResultCount: number;

                        /**
                         * Creates a new SmartComposeConfig instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns SmartComposeConfig instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2.EvaluationConfig.ISmartComposeConfig): google.cloud.dialogflow.v2.EvaluationConfig.SmartComposeConfig;

                        /**
                         * Encodes the specified SmartComposeConfig message. Does not implicitly {@link google.cloud.dialogflow.v2.EvaluationConfig.SmartComposeConfig.verify|verify} messages.
                         * @param message SmartComposeConfig message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2.EvaluationConfig.ISmartComposeConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified SmartComposeConfig message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.EvaluationConfig.SmartComposeConfig.verify|verify} messages.
                         * @param message SmartComposeConfig message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2.EvaluationConfig.ISmartComposeConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a SmartComposeConfig message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns SmartComposeConfig
                         * @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.cloud.dialogflow.v2.EvaluationConfig.SmartComposeConfig;

                        /**
                         * Decodes a SmartComposeConfig message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns SmartComposeConfig
                         * @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.cloud.dialogflow.v2.EvaluationConfig.SmartComposeConfig;

                        /**
                         * Verifies a SmartComposeConfig 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 SmartComposeConfig message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns SmartComposeConfig
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.EvaluationConfig.SmartComposeConfig;

                        /**
                         * Creates a plain object from a SmartComposeConfig message. Also converts values to other types if specified.
                         * @param message SmartComposeConfig
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.dialogflow.v2.EvaluationConfig.SmartComposeConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this SmartComposeConfig to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for SmartComposeConfig
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }
                }

                /** Properties of an InputDataset. */
                interface IInputDataset {

                    /** InputDataset dataset */
                    dataset?: (string|null);
                }

                /** Represents an InputDataset. */
                class InputDataset implements IInputDataset {

                    /**
                     * Constructs a new InputDataset.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IInputDataset);

                    /** InputDataset dataset. */
                    public dataset: string;

                    /**
                     * Creates a new InputDataset instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InputDataset instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IInputDataset): google.cloud.dialogflow.v2.InputDataset;

                    /**
                     * Encodes the specified InputDataset message. Does not implicitly {@link google.cloud.dialogflow.v2.InputDataset.verify|verify} messages.
                     * @param message InputDataset message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IInputDataset, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InputDataset message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.InputDataset.verify|verify} messages.
                     * @param message InputDataset message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.IInputDataset, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InputDataset message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InputDataset
                     * @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.cloud.dialogflow.v2.InputDataset;

                    /**
                     * Decodes an InputDataset message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InputDataset
                     * @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.cloud.dialogflow.v2.InputDataset;

                    /**
                     * Verifies an InputDataset 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 InputDataset message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InputDataset
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.InputDataset;

                    /**
                     * Creates a plain object from an InputDataset message. Also converts values to other types if specified.
                     * @param message InputDataset
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.InputDataset, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InputDataset to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InputDataset
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an ArticleSuggestionModelMetadata. */
                interface IArticleSuggestionModelMetadata {

                    /** ArticleSuggestionModelMetadata trainingModelType */
                    trainingModelType?: (google.cloud.dialogflow.v2.ConversationModel.ModelType|keyof typeof google.cloud.dialogflow.v2.ConversationModel.ModelType|null);
                }

                /** Represents an ArticleSuggestionModelMetadata. */
                class ArticleSuggestionModelMetadata implements IArticleSuggestionModelMetadata {

                    /**
                     * Constructs a new ArticleSuggestionModelMetadata.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IArticleSuggestionModelMetadata);

                    /** ArticleSuggestionModelMetadata trainingModelType. */
                    public trainingModelType: (google.cloud.dialogflow.v2.ConversationModel.ModelType|keyof typeof google.cloud.dialogflow.v2.ConversationModel.ModelType);

                    /**
                     * Creates a new ArticleSuggestionModelMetadata instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ArticleSuggestionModelMetadata instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IArticleSuggestionModelMetadata): google.cloud.dialogflow.v2.ArticleSuggestionModelMetadata;

                    /**
                     * Encodes the specified ArticleSuggestionModelMetadata message. Does not implicitly {@link google.cloud.dialogflow.v2.ArticleSuggestionModelMetadata.verify|verify} messages.
                     * @param message ArticleSuggestionModelMetadata message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IArticleSuggestionModelMetadata, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ArticleSuggestionModelMetadata message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.ArticleSuggestionModelMetadata.verify|verify} messages.
                     * @param message ArticleSuggestionModelMetadata message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.IArticleSuggestionModelMetadata, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an ArticleSuggestionModelMetadata message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ArticleSuggestionModelMetadata
                     * @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.cloud.dialogflow.v2.ArticleSuggestionModelMetadata;

                    /**
                     * Decodes an ArticleSuggestionModelMetadata message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ArticleSuggestionModelMetadata
                     * @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.cloud.dialogflow.v2.ArticleSuggestionModelMetadata;

                    /**
                     * Verifies an ArticleSuggestionModelMetadata 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 ArticleSuggestionModelMetadata message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ArticleSuggestionModelMetadata
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.ArticleSuggestionModelMetadata;

                    /**
                     * Creates a plain object from an ArticleSuggestionModelMetadata message. Also converts values to other types if specified.
                     * @param message ArticleSuggestionModelMetadata
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.ArticleSuggestionModelMetadata, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ArticleSuggestionModelMetadata to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ArticleSuggestionModelMetadata
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SmartReplyModelMetadata. */
                interface ISmartReplyModelMetadata {

                    /** SmartReplyModelMetadata trainingModelType */
                    trainingModelType?: (google.cloud.dialogflow.v2.ConversationModel.ModelType|keyof typeof google.cloud.dialogflow.v2.ConversationModel.ModelType|null);
                }

                /** Represents a SmartReplyModelMetadata. */
                class SmartReplyModelMetadata implements ISmartReplyModelMetadata {

                    /**
                     * Constructs a new SmartReplyModelMetadata.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.ISmartReplyModelMetadata);

                    /** SmartReplyModelMetadata trainingModelType. */
                    public trainingModelType: (google.cloud.dialogflow.v2.ConversationModel.ModelType|keyof typeof google.cloud.dialogflow.v2.ConversationModel.ModelType);

                    /**
                     * Creates a new SmartReplyModelMetadata instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SmartReplyModelMetadata instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.ISmartReplyModelMetadata): google.cloud.dialogflow.v2.SmartReplyModelMetadata;

                    /**
                     * Encodes the specified SmartReplyModelMetadata message. Does not implicitly {@link google.cloud.dialogflow.v2.SmartReplyModelMetadata.verify|verify} messages.
                     * @param message SmartReplyModelMetadata message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.ISmartReplyModelMetadata, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SmartReplyModelMetadata message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.SmartReplyModelMetadata.verify|verify} messages.
                     * @param message SmartReplyModelMetadata message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.ISmartReplyModelMetadata, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SmartReplyModelMetadata message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SmartReplyModelMetadata
                     * @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.cloud.dialogflow.v2.SmartReplyModelMetadata;

                    /**
                     * Decodes a SmartReplyModelMetadata message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SmartReplyModelMetadata
                     * @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.cloud.dialogflow.v2.SmartReplyModelMetadata;

                    /**
                     * Verifies a SmartReplyModelMetadata 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 SmartReplyModelMetadata message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SmartReplyModelMetadata
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.SmartReplyModelMetadata;

                    /**
                     * Creates a plain object from a SmartReplyModelMetadata message. Also converts values to other types if specified.
                     * @param message SmartReplyModelMetadata
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.SmartReplyModelMetadata, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SmartReplyModelMetadata to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SmartReplyModelMetadata
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SmartReplyMetrics. */
                interface ISmartReplyMetrics {

                    /** SmartReplyMetrics allowlistCoverage */
                    allowlistCoverage?: (number|null);

                    /** SmartReplyMetrics topNMetrics */
                    topNMetrics?: (google.cloud.dialogflow.v2.SmartReplyMetrics.ITopNMetrics[]|null);

                    /** SmartReplyMetrics conversationCount */
                    conversationCount?: (number|Long|string|null);
                }

                /** Represents a SmartReplyMetrics. */
                class SmartReplyMetrics implements ISmartReplyMetrics {

                    /**
                     * Constructs a new SmartReplyMetrics.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.ISmartReplyMetrics);

                    /** SmartReplyMetrics allowlistCoverage. */
                    public allowlistCoverage: number;

                    /** SmartReplyMetrics topNMetrics. */
                    public topNMetrics: google.cloud.dialogflow.v2.SmartReplyMetrics.ITopNMetrics[];

                    /** SmartReplyMetrics conversationCount. */
                    public conversationCount: (number|Long|string);

                    /**
                     * Creates a new SmartReplyMetrics instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SmartReplyMetrics instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.ISmartReplyMetrics): google.cloud.dialogflow.v2.SmartReplyMetrics;

                    /**
                     * Encodes the specified SmartReplyMetrics message. Does not implicitly {@link google.cloud.dialogflow.v2.SmartReplyMetrics.verify|verify} messages.
                     * @param message SmartReplyMetrics message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.ISmartReplyMetrics, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SmartReplyMetrics message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.SmartReplyMetrics.verify|verify} messages.
                     * @param message SmartReplyMetrics message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.ISmartReplyMetrics, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SmartReplyMetrics message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SmartReplyMetrics
                     * @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.cloud.dialogflow.v2.SmartReplyMetrics;

                    /**
                     * Decodes a SmartReplyMetrics message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SmartReplyMetrics
                     * @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.cloud.dialogflow.v2.SmartReplyMetrics;

                    /**
                     * Verifies a SmartReplyMetrics 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 SmartReplyMetrics message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SmartReplyMetrics
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.SmartReplyMetrics;

                    /**
                     * Creates a plain object from a SmartReplyMetrics message. Also converts values to other types if specified.
                     * @param message SmartReplyMetrics
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.SmartReplyMetrics, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SmartReplyMetrics to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SmartReplyMetrics
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace SmartReplyMetrics {

                    /** Properties of a TopNMetrics. */
                    interface ITopNMetrics {

                        /** TopNMetrics n */
                        n?: (number|null);

                        /** TopNMetrics recall */
                        recall?: (number|null);
                    }

                    /** Represents a TopNMetrics. */
                    class TopNMetrics implements ITopNMetrics {

                        /**
                         * Constructs a new TopNMetrics.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2.SmartReplyMetrics.ITopNMetrics);

                        /** TopNMetrics n. */
                        public n: number;

                        /** TopNMetrics recall. */
                        public recall: number;

                        /**
                         * Creates a new TopNMetrics instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns TopNMetrics instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2.SmartReplyMetrics.ITopNMetrics): google.cloud.dialogflow.v2.SmartReplyMetrics.TopNMetrics;

                        /**
                         * Encodes the specified TopNMetrics message. Does not implicitly {@link google.cloud.dialogflow.v2.SmartReplyMetrics.TopNMetrics.verify|verify} messages.
                         * @param message TopNMetrics message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2.SmartReplyMetrics.ITopNMetrics, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified TopNMetrics message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.SmartReplyMetrics.TopNMetrics.verify|verify} messages.
                         * @param message TopNMetrics message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2.SmartReplyMetrics.ITopNMetrics, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a TopNMetrics message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns TopNMetrics
                         * @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.cloud.dialogflow.v2.SmartReplyMetrics.TopNMetrics;

                        /**
                         * Decodes a TopNMetrics message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns TopNMetrics
                         * @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.cloud.dialogflow.v2.SmartReplyMetrics.TopNMetrics;

                        /**
                         * Verifies a TopNMetrics 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 TopNMetrics message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns TopNMetrics
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.SmartReplyMetrics.TopNMetrics;

                        /**
                         * Creates a plain object from a TopNMetrics message. Also converts values to other types if specified.
                         * @param message TopNMetrics
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.dialogflow.v2.SmartReplyMetrics.TopNMetrics, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this TopNMetrics to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for TopNMetrics
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }
                }

                /** Properties of a CreateConversationModelRequest. */
                interface ICreateConversationModelRequest {

                    /** CreateConversationModelRequest parent */
                    parent?: (string|null);

                    /** CreateConversationModelRequest conversationModel */
                    conversationModel?: (google.cloud.dialogflow.v2.IConversationModel|null);
                }

                /** Represents a CreateConversationModelRequest. */
                class CreateConversationModelRequest implements ICreateConversationModelRequest {

                    /**
                     * Constructs a new CreateConversationModelRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.ICreateConversationModelRequest);

                    /** CreateConversationModelRequest parent. */
                    public parent: string;

                    /** CreateConversationModelRequest conversationModel. */
                    public conversationModel?: (google.cloud.dialogflow.v2.IConversationModel|null);

                    /**
                     * Creates a new CreateConversationModelRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CreateConversationModelRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.ICreateConversationModelRequest): google.cloud.dialogflow.v2.CreateConversationModelRequest;

                    /**
                     * Encodes the specified CreateConversationModelRequest message. Does not implicitly {@link google.cloud.dialogflow.v2.CreateConversationModelRequest.verify|verify} messages.
                     * @param message CreateConversationModelRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.ICreateConversationModelRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CreateConversationModelRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.CreateConversationModelRequest.verify|verify} messages.
                     * @param message CreateConversationModelRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.ICreateConversationModelRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CreateConversationModelRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CreateConversationModelRequest
                     * @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.cloud.dialogflow.v2.CreateConversationModelRequest;

                    /**
                     * Decodes a CreateConversationModelRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CreateConversationModelRequest
                     * @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.cloud.dialogflow.v2.CreateConversationModelRequest;

                    /**
                     * Verifies a CreateConversationModelRequest 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 CreateConversationModelRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CreateConversationModelRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.CreateConversationModelRequest;

                    /**
                     * Creates a plain object from a CreateConversationModelRequest message. Also converts values to other types if specified.
                     * @param message CreateConversationModelRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.CreateConversationModelRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CreateConversationModelRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CreateConversationModelRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetConversationModelRequest. */
                interface IGetConversationModelRequest {

                    /** GetConversationModelRequest name */
                    name?: (string|null);
                }

                /** Represents a GetConversationModelRequest. */
                class GetConversationModelRequest implements IGetConversationModelRequest {

                    /**
                     * Constructs a new GetConversationModelRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IGetConversationModelRequest);

                    /** GetConversationModelRequest name. */
                    public name: string;

                    /**
                     * Creates a new GetConversationModelRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetConversationModelRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IGetConversationModelRequest): google.cloud.dialogflow.v2.GetConversationModelRequest;

                    /**
                     * Encodes the specified GetConversationModelRequest message. Does not implicitly {@link google.cloud.dialogflow.v2.GetConversationModelRequest.verify|verify} messages.
                     * @param message GetConversationModelRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IGetConversationModelRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetConversationModelRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.GetConversationModelRequest.verify|verify} messages.
                     * @param message GetConversationModelRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.IGetConversationModelRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetConversationModelRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetConversationModelRequest
                     * @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.cloud.dialogflow.v2.GetConversationModelRequest;

                    /**
                     * Decodes a GetConversationModelRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetConversationModelRequest
                     * @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.cloud.dialogflow.v2.GetConversationModelRequest;

                    /**
                     * Verifies a GetConversationModelRequest 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 GetConversationModelRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetConversationModelRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.GetConversationModelRequest;

                    /**
                     * Creates a plain object from a GetConversationModelRequest message. Also converts values to other types if specified.
                     * @param message GetConversationModelRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.GetConversationModelRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetConversationModelRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetConversationModelRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListConversationModelsRequest. */
                interface IListConversationModelsRequest {

                    /** ListConversationModelsRequest parent */
                    parent?: (string|null);

                    /** ListConversationModelsRequest pageSize */
                    pageSize?: (number|null);

                    /** ListConversationModelsRequest pageToken */
                    pageToken?: (string|null);
                }

                /** Represents a ListConversationModelsRequest. */
                class ListConversationModelsRequest implements IListConversationModelsRequest {

                    /**
                     * Constructs a new ListConversationModelsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IListConversationModelsRequest);

                    /** ListConversationModelsRequest parent. */
                    public parent: string;

                    /** ListConversationModelsRequest pageSize. */
                    public pageSize: number;

                    /** ListConversationModelsRequest pageToken. */
                    public pageToken: string;

                    /**
                     * Creates a new ListConversationModelsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListConversationModelsRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IListConversationModelsRequest): google.cloud.dialogflow.v2.ListConversationModelsRequest;

                    /**
                     * Encodes the specified ListConversationModelsRequest message. Does not implicitly {@link google.cloud.dialogflow.v2.ListConversationModelsRequest.verify|verify} messages.
                     * @param message ListConversationModelsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IListConversationModelsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListConversationModelsRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.ListConversationModelsRequest.verify|verify} messages.
                     * @param message ListConversationModelsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.IListConversationModelsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListConversationModelsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListConversationModelsRequest
                     * @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.cloud.dialogflow.v2.ListConversationModelsRequest;

                    /**
                     * Decodes a ListConversationModelsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListConversationModelsRequest
                     * @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.cloud.dialogflow.v2.ListConversationModelsRequest;

                    /**
                     * Verifies a ListConversationModelsRequest 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 ListConversationModelsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListConversationModelsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.ListConversationModelsRequest;

                    /**
                     * Creates a plain object from a ListConversationModelsRequest message. Also converts values to other types if specified.
                     * @param message ListConversationModelsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.ListConversationModelsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListConversationModelsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListConversationModelsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListConversationModelsResponse. */
                interface IListConversationModelsResponse {

                    /** ListConversationModelsResponse conversationModels */
                    conversationModels?: (google.cloud.dialogflow.v2.IConversationModel[]|null);

                    /** ListConversationModelsResponse nextPageToken */
                    nextPageToken?: (string|null);
                }

                /** Represents a ListConversationModelsResponse. */
                class ListConversationModelsResponse implements IListConversationModelsResponse {

                    /**
                     * Constructs a new ListConversationModelsResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IListConversationModelsResponse);

                    /** ListConversationModelsResponse conversationModels. */
                    public conversationModels: google.cloud.dialogflow.v2.IConversationModel[];

                    /** ListConversationModelsResponse nextPageToken. */
                    public nextPageToken: string;

                    /**
                     * Creates a new ListConversationModelsResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListConversationModelsResponse instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IListConversationModelsResponse): google.cloud.dialogflow.v2.ListConversationModelsResponse;

                    /**
                     * Encodes the specified ListConversationModelsResponse message. Does not implicitly {@link google.cloud.dialogflow.v2.ListConversationModelsResponse.verify|verify} messages.
                     * @param message ListConversationModelsResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IListConversationModelsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListConversationModelsResponse message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.ListConversationModelsResponse.verify|verify} messages.
                     * @param message ListConversationModelsResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.IListConversationModelsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListConversationModelsResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListConversationModelsResponse
                     * @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.cloud.dialogflow.v2.ListConversationModelsResponse;

                    /**
                     * Decodes a ListConversationModelsResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListConversationModelsResponse
                     * @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.cloud.dialogflow.v2.ListConversationModelsResponse;

                    /**
                     * Verifies a ListConversationModelsResponse 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 ListConversationModelsResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListConversationModelsResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.ListConversationModelsResponse;

                    /**
                     * Creates a plain object from a ListConversationModelsResponse message. Also converts values to other types if specified.
                     * @param message ListConversationModelsResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.ListConversationModelsResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListConversationModelsResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListConversationModelsResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteConversationModelRequest. */
                interface IDeleteConversationModelRequest {

                    /** DeleteConversationModelRequest name */
                    name?: (string|null);
                }

                /** Represents a DeleteConversationModelRequest. */
                class DeleteConversationModelRequest implements IDeleteConversationModelRequest {

                    /**
                     * Constructs a new DeleteConversationModelRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IDeleteConversationModelRequest);

                    /** DeleteConversationModelRequest name. */
                    public name: string;

                    /**
                     * Creates a new DeleteConversationModelRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteConversationModelRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IDeleteConversationModelRequest): google.cloud.dialogflow.v2.DeleteConversationModelRequest;

                    /**
                     * Encodes the specified DeleteConversationModelRequest message. Does not implicitly {@link google.cloud.dialogflow.v2.DeleteConversationModelRequest.verify|verify} messages.
                     * @param message DeleteConversationModelRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IDeleteConversationModelRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteConversationModelRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.DeleteConversationModelRequest.verify|verify} messages.
                     * @param message DeleteConversationModelRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.IDeleteConversationModelRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteConversationModelRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteConversationModelRequest
                     * @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.cloud.dialogflow.v2.DeleteConversationModelRequest;

                    /**
                     * Decodes a DeleteConversationModelRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteConversationModelRequest
                     * @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.cloud.dialogflow.v2.DeleteConversationModelRequest;

                    /**
                     * Verifies a DeleteConversationModelRequest 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 DeleteConversationModelRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteConversationModelRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.DeleteConversationModelRequest;

                    /**
                     * Creates a plain object from a DeleteConversationModelRequest message. Also converts values to other types if specified.
                     * @param message DeleteConversationModelRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.DeleteConversationModelRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteConversationModelRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteConversationModelRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeployConversationModelRequest. */
                interface IDeployConversationModelRequest {

                    /** DeployConversationModelRequest name */
                    name?: (string|null);
                }

                /** Represents a DeployConversationModelRequest. */
                class DeployConversationModelRequest implements IDeployConversationModelRequest {

                    /**
                     * Constructs a new DeployConversationModelRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IDeployConversationModelRequest);

                    /** DeployConversationModelRequest name. */
                    public name: string;

                    /**
                     * Creates a new DeployConversationModelRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeployConversationModelRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IDeployConversationModelRequest): google.cloud.dialogflow.v2.DeployConversationModelRequest;

                    /**
                     * Encodes the specified DeployConversationModelRequest message. Does not implicitly {@link google.cloud.dialogflow.v2.DeployConversationModelRequest.verify|verify} messages.
                     * @param message DeployConversationModelRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IDeployConversationModelRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeployConversationModelRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.DeployConversationModelRequest.verify|verify} messages.
                     * @param message DeployConversationModelRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.IDeployConversationModelRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeployConversationModelRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeployConversationModelRequest
                     * @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.cloud.dialogflow.v2.DeployConversationModelRequest;

                    /**
                     * Decodes a DeployConversationModelRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeployConversationModelRequest
                     * @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.cloud.dialogflow.v2.DeployConversationModelRequest;

                    /**
                     * Verifies a DeployConversationModelRequest 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 DeployConversationModelRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeployConversationModelRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.DeployConversationModelRequest;

                    /**
                     * Creates a plain object from a DeployConversationModelRequest message. Also converts values to other types if specified.
                     * @param message DeployConversationModelRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.DeployConversationModelRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeployConversationModelRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeployConversationModelRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an UndeployConversationModelRequest. */
                interface IUndeployConversationModelRequest {

                    /** UndeployConversationModelRequest name */
                    name?: (string|null);
                }

                /** Represents an UndeployConversationModelRequest. */
                class UndeployConversationModelRequest implements IUndeployConversationModelRequest {

                    /**
                     * Constructs a new UndeployConversationModelRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IUndeployConversationModelRequest);

                    /** UndeployConversationModelRequest name. */
                    public name: string;

                    /**
                     * Creates a new UndeployConversationModelRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UndeployConversationModelRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IUndeployConversationModelRequest): google.cloud.dialogflow.v2.UndeployConversationModelRequest;

                    /**
                     * Encodes the specified UndeployConversationModelRequest message. Does not implicitly {@link google.cloud.dialogflow.v2.UndeployConversationModelRequest.verify|verify} messages.
                     * @param message UndeployConversationModelRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IUndeployConversationModelRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified UndeployConversationModelRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.UndeployConversationModelRequest.verify|verify} messages.
                     * @param message UndeployConversationModelRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.IUndeployConversationModelRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an UndeployConversationModelRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns UndeployConversationModelRequest
                     * @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.cloud.dialogflow.v2.UndeployConversationModelRequest;

                    /**
                     * Decodes an UndeployConversationModelRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns UndeployConversationModelRequest
                     * @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.cloud.dialogflow.v2.UndeployConversationModelRequest;

                    /**
                     * Verifies an UndeployConversationModelRequest 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 UndeployConversationModelRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UndeployConversationModelRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.UndeployConversationModelRequest;

                    /**
                     * Creates a plain object from an UndeployConversationModelRequest message. Also converts values to other types if specified.
                     * @param message UndeployConversationModelRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.UndeployConversationModelRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this UndeployConversationModelRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for UndeployConversationModelRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetConversationModelEvaluationRequest. */
                interface IGetConversationModelEvaluationRequest {

                    /** GetConversationModelEvaluationRequest name */
                    name?: (string|null);
                }

                /** Represents a GetConversationModelEvaluationRequest. */
                class GetConversationModelEvaluationRequest implements IGetConversationModelEvaluationRequest {

                    /**
                     * Constructs a new GetConversationModelEvaluationRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IGetConversationModelEvaluationRequest);

                    /** GetConversationModelEvaluationRequest name. */
                    public name: string;

                    /**
                     * Creates a new GetConversationModelEvaluationRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetConversationModelEvaluationRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IGetConversationModelEvaluationRequest): google.cloud.dialogflow.v2.GetConversationModelEvaluationRequest;

                    /**
                     * Encodes the specified GetConversationModelEvaluationRequest message. Does not implicitly {@link google.cloud.dialogflow.v2.GetConversationModelEvaluationRequest.verify|verify} messages.
                     * @param message GetConversationModelEvaluationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IGetConversationModelEvaluationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetConversationModelEvaluationRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.GetConversationModelEvaluationRequest.verify|verify} messages.
                     * @param message GetConversationModelEvaluationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.IGetConversationModelEvaluationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetConversationModelEvaluationRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetConversationModelEvaluationRequest
                     * @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.cloud.dialogflow.v2.GetConversationModelEvaluationRequest;

                    /**
                     * Decodes a GetConversationModelEvaluationRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetConversationModelEvaluationRequest
                     * @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.cloud.dialogflow.v2.GetConversationModelEvaluationRequest;

                    /**
                     * Verifies a GetConversationModelEvaluationRequest 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 GetConversationModelEvaluationRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetConversationModelEvaluationRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.GetConversationModelEvaluationRequest;

                    /**
                     * Creates a plain object from a GetConversationModelEvaluationRequest message. Also converts values to other types if specified.
                     * @param message GetConversationModelEvaluationRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.GetConversationModelEvaluationRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetConversationModelEvaluationRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetConversationModelEvaluationRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListConversationModelEvaluationsRequest. */
                interface IListConversationModelEvaluationsRequest {

                    /** ListConversationModelEvaluationsRequest parent */
                    parent?: (string|null);

                    /** ListConversationModelEvaluationsRequest pageSize */
                    pageSize?: (number|null);

                    /** ListConversationModelEvaluationsRequest pageToken */
                    pageToken?: (string|null);
                }

                /** Represents a ListConversationModelEvaluationsRequest. */
                class ListConversationModelEvaluationsRequest implements IListConversationModelEvaluationsRequest {

                    /**
                     * Constructs a new ListConversationModelEvaluationsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IListConversationModelEvaluationsRequest);

                    /** ListConversationModelEvaluationsRequest parent. */
                    public parent: string;

                    /** ListConversationModelEvaluationsRequest pageSize. */
                    public pageSize: number;

                    /** ListConversationModelEvaluationsRequest pageToken. */
                    public pageToken: string;

                    /**
                     * Creates a new ListConversationModelEvaluationsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListConversationModelEvaluationsRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IListConversationModelEvaluationsRequest): google.cloud.dialogflow.v2.ListConversationModelEvaluationsRequest;

                    /**
                     * Encodes the specified ListConversationModelEvaluationsRequest message. Does not implicitly {@link google.cloud.dialogflow.v2.ListConversationModelEvaluationsRequest.verify|verify} messages.
                     * @param message ListConversationModelEvaluationsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IListConversationModelEvaluationsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListConversationModelEvaluationsRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.ListConversationModelEvaluationsRequest.verify|verify} messages.
                     * @param message ListConversationModelEvaluationsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.IListConversationModelEvaluationsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListConversationModelEvaluationsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListConversationModelEvaluationsRequest
                     * @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.cloud.dialogflow.v2.ListConversationModelEvaluationsRequest;

                    /**
                     * Decodes a ListConversationModelEvaluationsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListConversationModelEvaluationsRequest
                     * @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.cloud.dialogflow.v2.ListConversationModelEvaluationsRequest;

                    /**
                     * Verifies a ListConversationModelEvaluationsRequest 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 ListConversationModelEvaluationsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListConversationModelEvaluationsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.ListConversationModelEvaluationsRequest;

                    /**
                     * Creates a plain object from a ListConversationModelEvaluationsRequest message. Also converts values to other types if specified.
                     * @param message ListConversationModelEvaluationsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.ListConversationModelEvaluationsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListConversationModelEvaluationsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListConversationModelEvaluationsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListConversationModelEvaluationsResponse. */
                interface IListConversationModelEvaluationsResponse {

                    /** ListConversationModelEvaluationsResponse conversationModelEvaluations */
                    conversationModelEvaluations?: (google.cloud.dialogflow.v2.IConversationModelEvaluation[]|null);

                    /** ListConversationModelEvaluationsResponse nextPageToken */
                    nextPageToken?: (string|null);
                }

                /** Represents a ListConversationModelEvaluationsResponse. */
                class ListConversationModelEvaluationsResponse implements IListConversationModelEvaluationsResponse {

                    /**
                     * Constructs a new ListConversationModelEvaluationsResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IListConversationModelEvaluationsResponse);

                    /** ListConversationModelEvaluationsResponse conversationModelEvaluations. */
                    public conversationModelEvaluations: google.cloud.dialogflow.v2.IConversationModelEvaluation[];

                    /** ListConversationModelEvaluationsResponse nextPageToken. */
                    public nextPageToken: string;

                    /**
                     * Creates a new ListConversationModelEvaluationsResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListConversationModelEvaluationsResponse instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IListConversationModelEvaluationsResponse): google.cloud.dialogflow.v2.ListConversationModelEvaluationsResponse;

                    /**
                     * Encodes the specified ListConversationModelEvaluationsResponse message. Does not implicitly {@link google.cloud.dialogflow.v2.ListConversationModelEvaluationsResponse.verify|verify} messages.
                     * @param message ListConversationModelEvaluationsResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IListConversationModelEvaluationsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListConversationModelEvaluationsResponse message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.ListConversationModelEvaluationsResponse.verify|verify} messages.
                     * @param message ListConversationModelEvaluationsResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.IListConversationModelEvaluationsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListConversationModelEvaluationsResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListConversationModelEvaluationsResponse
                     * @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.cloud.dialogflow.v2.ListConversationModelEvaluationsResponse;

                    /**
                     * Decodes a ListConversationModelEvaluationsResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListConversationModelEvaluationsResponse
                     * @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.cloud.dialogflow.v2.ListConversationModelEvaluationsResponse;

                    /**
                     * Verifies a ListConversationModelEvaluationsResponse 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 ListConversationModelEvaluationsResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListConversationModelEvaluationsResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.ListConversationModelEvaluationsResponse;

                    /**
                     * Creates a plain object from a ListConversationModelEvaluationsResponse message. Also converts values to other types if specified.
                     * @param message ListConversationModelEvaluationsResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.ListConversationModelEvaluationsResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListConversationModelEvaluationsResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListConversationModelEvaluationsResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a CreateConversationModelEvaluationRequest. */
                interface ICreateConversationModelEvaluationRequest {

                    /** CreateConversationModelEvaluationRequest parent */
                    parent?: (string|null);

                    /** CreateConversationModelEvaluationRequest conversationModelEvaluation */
                    conversationModelEvaluation?: (google.cloud.dialogflow.v2.IConversationModelEvaluation|null);
                }

                /** Represents a CreateConversationModelEvaluationRequest. */
                class CreateConversationModelEvaluationRequest implements ICreateConversationModelEvaluationRequest {

                    /**
                     * Constructs a new CreateConversationModelEvaluationRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.ICreateConversationModelEvaluationRequest);

                    /** CreateConversationModelEvaluationRequest parent. */
                    public parent: string;

                    /** CreateConversationModelEvaluationRequest conversationModelEvaluation. */
                    public conversationModelEvaluation?: (google.cloud.dialogflow.v2.IConversationModelEvaluation|null);

                    /**
                     * Creates a new CreateConversationModelEvaluationRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CreateConversationModelEvaluationRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.ICreateConversationModelEvaluationRequest): google.cloud.dialogflow.v2.CreateConversationModelEvaluationRequest;

                    /**
                     * Encodes the specified CreateConversationModelEvaluationRequest message. Does not implicitly {@link google.cloud.dialogflow.v2.CreateConversationModelEvaluationRequest.verify|verify} messages.
                     * @param message CreateConversationModelEvaluationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.ICreateConversationModelEvaluationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CreateConversationModelEvaluationRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.CreateConversationModelEvaluationRequest.verify|verify} messages.
                     * @param message CreateConversationModelEvaluationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.ICreateConversationModelEvaluationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CreateConversationModelEvaluationRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CreateConversationModelEvaluationRequest
                     * @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.cloud.dialogflow.v2.CreateConversationModelEvaluationRequest;

                    /**
                     * Decodes a CreateConversationModelEvaluationRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CreateConversationModelEvaluationRequest
                     * @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.cloud.dialogflow.v2.CreateConversationModelEvaluationRequest;

                    /**
                     * Verifies a CreateConversationModelEvaluationRequest 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 CreateConversationModelEvaluationRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CreateConversationModelEvaluationRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.CreateConversationModelEvaluationRequest;

                    /**
                     * Creates a plain object from a CreateConversationModelEvaluationRequest message. Also converts values to other types if specified.
                     * @param message CreateConversationModelEvaluationRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.CreateConversationModelEvaluationRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CreateConversationModelEvaluationRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CreateConversationModelEvaluationRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a CreateConversationModelOperationMetadata. */
                interface ICreateConversationModelOperationMetadata {

                    /** CreateConversationModelOperationMetadata conversationModel */
                    conversationModel?: (string|null);

                    /** CreateConversationModelOperationMetadata state */
                    state?: (google.cloud.dialogflow.v2.CreateConversationModelOperationMetadata.State|keyof typeof google.cloud.dialogflow.v2.CreateConversationModelOperationMetadata.State|null);

                    /** CreateConversationModelOperationMetadata createTime */
                    createTime?: (google.protobuf.ITimestamp|null);

                    /** CreateConversationModelOperationMetadata doneTime */
                    doneTime?: (google.protobuf.ITimestamp|null);
                }

                /** Represents a CreateConversationModelOperationMetadata. */
                class CreateConversationModelOperationMetadata implements ICreateConversationModelOperationMetadata {

                    /**
                     * Constructs a new CreateConversationModelOperationMetadata.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.ICreateConversationModelOperationMetadata);

                    /** CreateConversationModelOperationMetadata conversationModel. */
                    public conversationModel: string;

                    /** CreateConversationModelOperationMetadata state. */
                    public state: (google.cloud.dialogflow.v2.CreateConversationModelOperationMetadata.State|keyof typeof google.cloud.dialogflow.v2.CreateConversationModelOperationMetadata.State);

                    /** CreateConversationModelOperationMetadata createTime. */
                    public createTime?: (google.protobuf.ITimestamp|null);

                    /** CreateConversationModelOperationMetadata doneTime. */
                    public doneTime?: (google.protobuf.ITimestamp|null);

                    /**
                     * Creates a new CreateConversationModelOperationMetadata instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CreateConversationModelOperationMetadata instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.ICreateConversationModelOperationMetadata): google.cloud.dialogflow.v2.CreateConversationModelOperationMetadata;

                    /**
                     * Encodes the specified CreateConversationModelOperationMetadata message. Does not implicitly {@link google.cloud.dialogflow.v2.CreateConversationModelOperationMetadata.verify|verify} messages.
                     * @param message CreateConversationModelOperationMetadata message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.ICreateConversationModelOperationMetadata, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CreateConversationModelOperationMetadata message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.CreateConversationModelOperationMetadata.verify|verify} messages.
                     * @param message CreateConversationModelOperationMetadata message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.ICreateConversationModelOperationMetadata, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CreateConversationModelOperationMetadata message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CreateConversationModelOperationMetadata
                     * @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.cloud.dialogflow.v2.CreateConversationModelOperationMetadata;

                    /**
                     * Decodes a CreateConversationModelOperationMetadata message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CreateConversationModelOperationMetadata
                     * @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.cloud.dialogflow.v2.CreateConversationModelOperationMetadata;

                    /**
                     * Verifies a CreateConversationModelOperationMetadata 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 CreateConversationModelOperationMetadata message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CreateConversationModelOperationMetadata
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.CreateConversationModelOperationMetadata;

                    /**
                     * Creates a plain object from a CreateConversationModelOperationMetadata message. Also converts values to other types if specified.
                     * @param message CreateConversationModelOperationMetadata
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.CreateConversationModelOperationMetadata, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CreateConversationModelOperationMetadata to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CreateConversationModelOperationMetadata
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace CreateConversationModelOperationMetadata {

                    /** State enum. */
                    enum State {
                        STATE_UNSPECIFIED = 0,
                        PENDING = 1,
                        SUCCEEDED = 2,
                        FAILED = 3,
                        CANCELLED = 4,
                        CANCELLING = 5,
                        TRAINING = 6
                    }
                }

                /** Properties of a DeployConversationModelOperationMetadata. */
                interface IDeployConversationModelOperationMetadata {

                    /** DeployConversationModelOperationMetadata conversationModel */
                    conversationModel?: (string|null);

                    /** DeployConversationModelOperationMetadata createTime */
                    createTime?: (google.protobuf.ITimestamp|null);

                    /** DeployConversationModelOperationMetadata doneTime */
                    doneTime?: (google.protobuf.ITimestamp|null);
                }

                /** Represents a DeployConversationModelOperationMetadata. */
                class DeployConversationModelOperationMetadata implements IDeployConversationModelOperationMetadata {

                    /**
                     * Constructs a new DeployConversationModelOperationMetadata.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IDeployConversationModelOperationMetadata);

                    /** DeployConversationModelOperationMetadata conversationModel. */
                    public conversationModel: string;

                    /** DeployConversationModelOperationMetadata createTime. */
                    public createTime?: (google.protobuf.ITimestamp|null);

                    /** DeployConversationModelOperationMetadata doneTime. */
                    public doneTime?: (google.protobuf.ITimestamp|null);

                    /**
                     * Creates a new DeployConversationModelOperationMetadata instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeployConversationModelOperationMetadata instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IDeployConversationModelOperationMetadata): google.cloud.dialogflow.v2.DeployConversationModelOperationMetadata;

                    /**
                     * Encodes the specified DeployConversationModelOperationMetadata message. Does not implicitly {@link google.cloud.dialogflow.v2.DeployConversationModelOperationMetadata.verify|verify} messages.
                     * @param message DeployConversationModelOperationMetadata message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IDeployConversationModelOperationMetadata, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeployConversationModelOperationMetadata message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.DeployConversationModelOperationMetadata.verify|verify} messages.
                     * @param message DeployConversationModelOperationMetadata message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.IDeployConversationModelOperationMetadata, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeployConversationModelOperationMetadata message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeployConversationModelOperationMetadata
                     * @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.cloud.dialogflow.v2.DeployConversationModelOperationMetadata;

                    /**
                     * Decodes a DeployConversationModelOperationMetadata message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeployConversationModelOperationMetadata
                     * @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.cloud.dialogflow.v2.DeployConversationModelOperationMetadata;

                    /**
                     * Verifies a DeployConversationModelOperationMetadata 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 DeployConversationModelOperationMetadata message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeployConversationModelOperationMetadata
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.DeployConversationModelOperationMetadata;

                    /**
                     * Creates a plain object from a DeployConversationModelOperationMetadata message. Also converts values to other types if specified.
                     * @param message DeployConversationModelOperationMetadata
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.DeployConversationModelOperationMetadata, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeployConversationModelOperationMetadata to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeployConversationModelOperationMetadata
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an UndeployConversationModelOperationMetadata. */
                interface IUndeployConversationModelOperationMetadata {

                    /** UndeployConversationModelOperationMetadata conversationModel */
                    conversationModel?: (string|null);

                    /** UndeployConversationModelOperationMetadata createTime */
                    createTime?: (google.protobuf.ITimestamp|null);

                    /** UndeployConversationModelOperationMetadata doneTime */
                    doneTime?: (google.protobuf.ITimestamp|null);
                }

                /** Represents an UndeployConversationModelOperationMetadata. */
                class UndeployConversationModelOperationMetadata implements IUndeployConversationModelOperationMetadata {

                    /**
                     * Constructs a new UndeployConversationModelOperationMetadata.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IUndeployConversationModelOperationMetadata);

                    /** UndeployConversationModelOperationMetadata conversationModel. */
                    public conversationModel: string;

                    /** UndeployConversationModelOperationMetadata createTime. */
                    public createTime?: (google.protobuf.ITimestamp|null);

                    /** UndeployConversationModelOperationMetadata doneTime. */
                    public doneTime?: (google.protobuf.ITimestamp|null);

                    /**
                     * Creates a new UndeployConversationModelOperationMetadata instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UndeployConversationModelOperationMetadata instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IUndeployConversationModelOperationMetadata): google.cloud.dialogflow.v2.UndeployConversationModelOperationMetadata;

                    /**
                     * Encodes the specified UndeployConversationModelOperationMetadata message. Does not implicitly {@link google.cloud.dialogflow.v2.UndeployConversationModelOperationMetadata.verify|verify} messages.
                     * @param message UndeployConversationModelOperationMetadata message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IUndeployConversationModelOperationMetadata, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified UndeployConversationModelOperationMetadata message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.UndeployConversationModelOperationMetadata.verify|verify} messages.
                     * @param message UndeployConversationModelOperationMetadata message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.IUndeployConversationModelOperationMetadata, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an UndeployConversationModelOperationMetadata message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns UndeployConversationModelOperationMetadata
                     * @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.cloud.dialogflow.v2.UndeployConversationModelOperationMetadata;

                    /**
                     * Decodes an UndeployConversationModelOperationMetadata message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns UndeployConversationModelOperationMetadata
                     * @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.cloud.dialogflow.v2.UndeployConversationModelOperationMetadata;

                    /**
                     * Verifies an UndeployConversationModelOperationMetadata 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 UndeployConversationModelOperationMetadata message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UndeployConversationModelOperationMetadata
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.UndeployConversationModelOperationMetadata;

                    /**
                     * Creates a plain object from an UndeployConversationModelOperationMetadata message. Also converts values to other types if specified.
                     * @param message UndeployConversationModelOperationMetadata
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.UndeployConversationModelOperationMetadata, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this UndeployConversationModelOperationMetadata to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for UndeployConversationModelOperationMetadata
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteConversationModelOperationMetadata. */
                interface IDeleteConversationModelOperationMetadata {

                    /** DeleteConversationModelOperationMetadata conversationModel */
                    conversationModel?: (string|null);

                    /** DeleteConversationModelOperationMetadata createTime */
                    createTime?: (google.protobuf.ITimestamp|null);

                    /** DeleteConversationModelOperationMetadata doneTime */
                    doneTime?: (google.protobuf.ITimestamp|null);
                }

                /** Represents a DeleteConversationModelOperationMetadata. */
                class DeleteConversationModelOperationMetadata implements IDeleteConversationModelOperationMetadata {

                    /**
                     * Constructs a new DeleteConversationModelOperationMetadata.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IDeleteConversationModelOperationMetadata);

                    /** DeleteConversationModelOperationMetadata conversationModel. */
                    public conversationModel: string;

                    /** DeleteConversationModelOperationMetadata createTime. */
                    public createTime?: (google.protobuf.ITimestamp|null);

                    /** DeleteConversationModelOperationMetadata doneTime. */
                    public doneTime?: (google.protobuf.ITimestamp|null);

                    /**
                     * Creates a new DeleteConversationModelOperationMetadata instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteConversationModelOperationMetadata instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IDeleteConversationModelOperationMetadata): google.cloud.dialogflow.v2.DeleteConversationModelOperationMetadata;

                    /**
                     * Encodes the specified DeleteConversationModelOperationMetadata message. Does not implicitly {@link google.cloud.dialogflow.v2.DeleteConversationModelOperationMetadata.verify|verify} messages.
                     * @param message DeleteConversationModelOperationMetadata message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IDeleteConversationModelOperationMetadata, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteConversationModelOperationMetadata message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.DeleteConversationModelOperationMetadata.verify|verify} messages.
                     * @param message DeleteConversationModelOperationMetadata message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.IDeleteConversationModelOperationMetadata, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteConversationModelOperationMetadata message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteConversationModelOperationMetadata
                     * @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.cloud.dialogflow.v2.DeleteConversationModelOperationMetadata;

                    /**
                     * Decodes a DeleteConversationModelOperationMetadata message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteConversationModelOperationMetadata
                     * @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.cloud.dialogflow.v2.DeleteConversationModelOperationMetadata;

                    /**
                     * Verifies a DeleteConversationModelOperationMetadata 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 DeleteConversationModelOperationMetadata message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteConversationModelOperationMetadata
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.DeleteConversationModelOperationMetadata;

                    /**
                     * Creates a plain object from a DeleteConversationModelOperationMetadata message. Also converts values to other types if specified.
                     * @param message DeleteConversationModelOperationMetadata
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.DeleteConversationModelOperationMetadata, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteConversationModelOperationMetadata to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteConversationModelOperationMetadata
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a CreateConversationModelEvaluationOperationMetadata. */
                interface ICreateConversationModelEvaluationOperationMetadata {

                    /** CreateConversationModelEvaluationOperationMetadata conversationModelEvaluation */
                    conversationModelEvaluation?: (string|null);

                    /** CreateConversationModelEvaluationOperationMetadata conversationModel */
                    conversationModel?: (string|null);

                    /** CreateConversationModelEvaluationOperationMetadata state */
                    state?: (google.cloud.dialogflow.v2.CreateConversationModelEvaluationOperationMetadata.State|keyof typeof google.cloud.dialogflow.v2.CreateConversationModelEvaluationOperationMetadata.State|null);

                    /** CreateConversationModelEvaluationOperationMetadata createTime */
                    createTime?: (google.protobuf.ITimestamp|null);
                }

                /** Represents a CreateConversationModelEvaluationOperationMetadata. */
                class CreateConversationModelEvaluationOperationMetadata implements ICreateConversationModelEvaluationOperationMetadata {

                    /**
                     * Constructs a new CreateConversationModelEvaluationOperationMetadata.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.ICreateConversationModelEvaluationOperationMetadata);

                    /** CreateConversationModelEvaluationOperationMetadata conversationModelEvaluation. */
                    public conversationModelEvaluation: string;

                    /** CreateConversationModelEvaluationOperationMetadata conversationModel. */
                    public conversationModel: string;

                    /** CreateConversationModelEvaluationOperationMetadata state. */
                    public state: (google.cloud.dialogflow.v2.CreateConversationModelEvaluationOperationMetadata.State|keyof typeof google.cloud.dialogflow.v2.CreateConversationModelEvaluationOperationMetadata.State);

                    /** CreateConversationModelEvaluationOperationMetadata createTime. */
                    public createTime?: (google.protobuf.ITimestamp|null);

                    /**
                     * Creates a new CreateConversationModelEvaluationOperationMetadata instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CreateConversationModelEvaluationOperationMetadata instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.ICreateConversationModelEvaluationOperationMetadata): google.cloud.dialogflow.v2.CreateConversationModelEvaluationOperationMetadata;

                    /**
                     * Encodes the specified CreateConversationModelEvaluationOperationMetadata message. Does not implicitly {@link google.cloud.dialogflow.v2.CreateConversationModelEvaluationOperationMetadata.verify|verify} messages.
                     * @param message CreateConversationModelEvaluationOperationMetadata message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.ICreateConversationModelEvaluationOperationMetadata, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CreateConversationModelEvaluationOperationMetadata message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.CreateConversationModelEvaluationOperationMetadata.verify|verify} messages.
                     * @param message CreateConversationModelEvaluationOperationMetadata message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.ICreateConversationModelEvaluationOperationMetadata, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CreateConversationModelEvaluationOperationMetadata message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CreateConversationModelEvaluationOperationMetadata
                     * @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.cloud.dialogflow.v2.CreateConversationModelEvaluationOperationMetadata;

                    /**
                     * Decodes a CreateConversationModelEvaluationOperationMetadata message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CreateConversationModelEvaluationOperationMetadata
                     * @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.cloud.dialogflow.v2.CreateConversationModelEvaluationOperationMetadata;

                    /**
                     * Verifies a CreateConversationModelEvaluationOperationMetadata 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 CreateConversationModelEvaluationOperationMetadata message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CreateConversationModelEvaluationOperationMetadata
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.CreateConversationModelEvaluationOperationMetadata;

                    /**
                     * Creates a plain object from a CreateConversationModelEvaluationOperationMetadata message. Also converts values to other types if specified.
                     * @param message CreateConversationModelEvaluationOperationMetadata
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.CreateConversationModelEvaluationOperationMetadata, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CreateConversationModelEvaluationOperationMetadata to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CreateConversationModelEvaluationOperationMetadata
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace CreateConversationModelEvaluationOperationMetadata {

                    /** State enum. */
                    enum State {
                        STATE_UNSPECIFIED = 0,
                        INITIALIZING = 1,
                        RUNNING = 2,
                        CANCELLED = 3,
                        SUCCEEDED = 4,
                        FAILED = 5
                    }
                }

                /** Represents a Documents */
                class Documents extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new Documents 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 Documents 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): Documents;

                    /**
                     * Calls ListDocuments.
                     * @param request ListDocumentsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ListDocumentsResponse
                     */
                    public listDocuments(request: google.cloud.dialogflow.v2.IListDocumentsRequest, callback: google.cloud.dialogflow.v2.Documents.ListDocumentsCallback): void;

                    /**
                     * Calls ListDocuments.
                     * @param request ListDocumentsRequest message or plain object
                     * @returns Promise
                     */
                    public listDocuments(request: google.cloud.dialogflow.v2.IListDocumentsRequest): Promise<google.cloud.dialogflow.v2.ListDocumentsResponse>;

                    /**
                     * Calls GetDocument.
                     * @param request GetDocumentRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Document
                     */
                    public getDocument(request: google.cloud.dialogflow.v2.IGetDocumentRequest, callback: google.cloud.dialogflow.v2.Documents.GetDocumentCallback): void;

                    /**
                     * Calls GetDocument.
                     * @param request GetDocumentRequest message or plain object
                     * @returns Promise
                     */
                    public getDocument(request: google.cloud.dialogflow.v2.IGetDocumentRequest): Promise<google.cloud.dialogflow.v2.Document>;

                    /**
                     * Calls CreateDocument.
                     * @param request CreateDocumentRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public createDocument(request: google.cloud.dialogflow.v2.ICreateDocumentRequest, callback: google.cloud.dialogflow.v2.Documents.CreateDocumentCallback): void;

                    /**
                     * Calls CreateDocument.
                     * @param request CreateDocumentRequest message or plain object
                     * @returns Promise
                     */
                    public createDocument(request: google.cloud.dialogflow.v2.ICreateDocumentRequest): Promise<google.longrunning.Operation>;

                    /**
                     * Calls ImportDocuments.
                     * @param request ImportDocumentsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public importDocuments(request: google.cloud.dialogflow.v2.IImportDocumentsRequest, callback: google.cloud.dialogflow.v2.Documents.ImportDocumentsCallback): void;

                    /**
                     * Calls ImportDocuments.
                     * @param request ImportDocumentsRequest message or plain object
                     * @returns Promise
                     */
                    public importDocuments(request: google.cloud.dialogflow.v2.IImportDocumentsRequest): Promise<google.longrunning.Operation>;

                    /**
                     * Calls DeleteDocument.
                     * @param request DeleteDocumentRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public deleteDocument(request: google.cloud.dialogflow.v2.IDeleteDocumentRequest, callback: google.cloud.dialogflow.v2.Documents.DeleteDocumentCallback): void;

                    /**
                     * Calls DeleteDocument.
                     * @param request DeleteDocumentRequest message or plain object
                     * @returns Promise
                     */
                    public deleteDocument(request: google.cloud.dialogflow.v2.IDeleteDocumentRequest): Promise<google.longrunning.Operation>;

                    /**
                     * Calls UpdateDocument.
                     * @param request UpdateDocumentRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public updateDocument(request: google.cloud.dialogflow.v2.IUpdateDocumentRequest, callback: google.cloud.dialogflow.v2.Documents.UpdateDocumentCallback): void;

                    /**
                     * Calls UpdateDocument.
                     * @param request UpdateDocumentRequest message or plain object
                     * @returns Promise
                     */
                    public updateDocument(request: google.cloud.dialogflow.v2.IUpdateDocumentRequest): Promise<google.longrunning.Operation>;

                    /**
                     * Calls ReloadDocument.
                     * @param request ReloadDocumentRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public reloadDocument(request: google.cloud.dialogflow.v2.IReloadDocumentRequest, callback: google.cloud.dialogflow.v2.Documents.ReloadDocumentCallback): void;

                    /**
                     * Calls ReloadDocument.
                     * @param request ReloadDocumentRequest message or plain object
                     * @returns Promise
                     */
                    public reloadDocument(request: google.cloud.dialogflow.v2.IReloadDocumentRequest): Promise<google.longrunning.Operation>;

                    /**
                     * Calls ExportDocument.
                     * @param request ExportDocumentRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public exportDocument(request: google.cloud.dialogflow.v2.IExportDocumentRequest, callback: google.cloud.dialogflow.v2.Documents.ExportDocumentCallback): void;

                    /**
                     * Calls ExportDocument.
                     * @param request ExportDocumentRequest message or plain object
                     * @returns Promise
                     */
                    public exportDocument(request: google.cloud.dialogflow.v2.IExportDocumentRequest): Promise<google.longrunning.Operation>;
                }

                namespace Documents {

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2.Documents|listDocuments}.
                     * @param error Error, if any
                     * @param [response] ListDocumentsResponse
                     */
                    type ListDocumentsCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2.ListDocumentsResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2.Documents|getDocument}.
                     * @param error Error, if any
                     * @param [response] Document
                     */
                    type GetDocumentCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2.Document) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2.Documents|createDocument}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type CreateDocumentCallback = (error: (Error|null), response?: google.longrunning.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2.Documents|importDocuments}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type ImportDocumentsCallback = (error: (Error|null), response?: google.longrunning.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2.Documents|deleteDocument}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteDocumentCallback = (error: (Error|null), response?: google.longrunning.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2.Documents|updateDocument}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type UpdateDocumentCallback = (error: (Error|null), response?: google.longrunning.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2.Documents|reloadDocument}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type ReloadDocumentCallback = (error: (Error|null), response?: google.longrunning.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2.Documents|exportDocument}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type ExportDocumentCallback = (error: (Error|null), response?: google.longrunning.Operation) => void;
                }

                /** Properties of a Document. */
                interface IDocument {

                    /** Document name */
                    name?: (string|null);

                    /** Document displayName */
                    displayName?: (string|null);

                    /** Document mimeType */
                    mimeType?: (string|null);

                    /** Document knowledgeTypes */
                    knowledgeTypes?: (google.cloud.dialogflow.v2.Document.KnowledgeType[]|null);

                    /** Document contentUri */
                    contentUri?: (string|null);

                    /** Document rawContent */
                    rawContent?: (Uint8Array|Buffer|string|null);

                    /** Document enableAutoReload */
                    enableAutoReload?: (boolean|null);

                    /** Document latestReloadStatus */
                    latestReloadStatus?: (google.cloud.dialogflow.v2.Document.IReloadStatus|null);

                    /** Document metadata */
                    metadata?: ({ [k: string]: string }|null);

                    /** Document state */
                    state?: (google.cloud.dialogflow.v2.Document.State|keyof typeof google.cloud.dialogflow.v2.Document.State|null);
                }

                /** Represents a Document. */
                class Document implements IDocument {

                    /**
                     * Constructs a new Document.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IDocument);

                    /** Document name. */
                    public name: string;

                    /** Document displayName. */
                    public displayName: string;

                    /** Document mimeType. */
                    public mimeType: string;

                    /** Document knowledgeTypes. */
                    public knowledgeTypes: google.cloud.dialogflow.v2.Document.KnowledgeType[];

                    /** Document contentUri. */
                    public contentUri?: (string|null);

                    /** Document rawContent. */
                    public rawContent?: (Uint8Array|Buffer|string|null);

                    /** Document enableAutoReload. */
                    public enableAutoReload: boolean;

                    /** Document latestReloadStatus. */
                    public latestReloadStatus?: (google.cloud.dialogflow.v2.Document.IReloadStatus|null);

                    /** Document metadata. */
                    public metadata: { [k: string]: string };

                    /** Document state. */
                    public state: (google.cloud.dialogflow.v2.Document.State|keyof typeof google.cloud.dialogflow.v2.Document.State);

                    /** Document source. */
                    public source?: ("contentUri"|"rawContent");

                    /**
                     * Creates a new Document instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Document instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IDocument): google.cloud.dialogflow.v2.Document;

                    /**
                     * Encodes the specified Document message. Does not implicitly {@link google.cloud.dialogflow.v2.Document.verify|verify} messages.
                     * @param message Document message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IDocument, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Document message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.Document.verify|verify} messages.
                     * @param message Document message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.IDocument, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a Document message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Document
                     * @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.cloud.dialogflow.v2.Document;

                    /**
                     * Decodes a Document message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Document
                     * @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.cloud.dialogflow.v2.Document;

                    /**
                     * Verifies a Document 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 Document message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Document
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.Document;

                    /**
                     * Creates a plain object from a Document message. Also converts values to other types if specified.
                     * @param message Document
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.Document, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Document to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Document
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace Document {

                    /** KnowledgeType enum. */
                    enum KnowledgeType {
                        KNOWLEDGE_TYPE_UNSPECIFIED = 0,
                        FAQ = 1,
                        EXTRACTIVE_QA = 2,
                        ARTICLE_SUGGESTION = 3,
                        AGENT_FACING_SMART_REPLY = 4
                    }

                    /** Properties of a ReloadStatus. */
                    interface IReloadStatus {

                        /** ReloadStatus time */
                        time?: (google.protobuf.ITimestamp|null);

                        /** ReloadStatus status */
                        status?: (google.rpc.IStatus|null);
                    }

                    /** Represents a ReloadStatus. */
                    class ReloadStatus implements IReloadStatus {

                        /**
                         * Constructs a new ReloadStatus.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2.Document.IReloadStatus);

                        /** ReloadStatus time. */
                        public time?: (google.protobuf.ITimestamp|null);

                        /** ReloadStatus status. */
                        public status?: (google.rpc.IStatus|null);

                        /**
                         * Creates a new ReloadStatus instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns ReloadStatus instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2.Document.IReloadStatus): google.cloud.dialogflow.v2.Document.ReloadStatus;

                        /**
                         * Encodes the specified ReloadStatus message. Does not implicitly {@link google.cloud.dialogflow.v2.Document.ReloadStatus.verify|verify} messages.
                         * @param message ReloadStatus message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2.Document.IReloadStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified ReloadStatus message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.Document.ReloadStatus.verify|verify} messages.
                         * @param message ReloadStatus message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2.Document.IReloadStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a ReloadStatus message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns ReloadStatus
                         * @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.cloud.dialogflow.v2.Document.ReloadStatus;

                        /**
                         * Decodes a ReloadStatus message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns ReloadStatus
                         * @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.cloud.dialogflow.v2.Document.ReloadStatus;

                        /**
                         * Verifies a ReloadStatus 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 ReloadStatus message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns ReloadStatus
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.Document.ReloadStatus;

                        /**
                         * Creates a plain object from a ReloadStatus message. Also converts values to other types if specified.
                         * @param message ReloadStatus
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.dialogflow.v2.Document.ReloadStatus, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this ReloadStatus to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for ReloadStatus
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    /** State enum. */
                    enum State {
                        STATE_UNSPECIFIED = 0,
                        CREATING = 1,
                        ACTIVE = 2,
                        UPDATING = 3,
                        RELOADING = 4,
                        DELETING = 5
                    }
                }

                /** Properties of a GetDocumentRequest. */
                interface IGetDocumentRequest {

                    /** GetDocumentRequest name */
                    name?: (string|null);
                }

                /** Represents a GetDocumentRequest. */
                class GetDocumentRequest implements IGetDocumentRequest {

                    /**
                     * Constructs a new GetDocumentRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IGetDocumentRequest);

                    /** GetDocumentRequest name. */
                    public name: string;

                    /**
                     * Creates a new GetDocumentRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetDocumentRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IGetDocumentRequest): google.cloud.dialogflow.v2.GetDocumentRequest;

                    /**
                     * Encodes the specified GetDocumentRequest message. Does not implicitly {@link google.cloud.dialogflow.v2.GetDocumentRequest.verify|verify} messages.
                     * @param message GetDocumentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IGetDocumentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetDocumentRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.GetDocumentRequest.verify|verify} messages.
                     * @param message GetDocumentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.IGetDocumentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetDocumentRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetDocumentRequest
                     * @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.cloud.dialogflow.v2.GetDocumentRequest;

                    /**
                     * Decodes a GetDocumentRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetDocumentRequest
                     * @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.cloud.dialogflow.v2.GetDocumentRequest;

                    /**
                     * Verifies a GetDocumentRequest 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 GetDocumentRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetDocumentRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.GetDocumentRequest;

                    /**
                     * Creates a plain object from a GetDocumentRequest message. Also converts values to other types if specified.
                     * @param message GetDocumentRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.GetDocumentRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetDocumentRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetDocumentRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListDocumentsRequest. */
                interface IListDocumentsRequest {

                    /** ListDocumentsRequest parent */
                    parent?: (string|null);

                    /** ListDocumentsRequest pageSize */
                    pageSize?: (number|null);

                    /** ListDocumentsRequest pageToken */
                    pageToken?: (string|null);

                    /** ListDocumentsRequest filter */
                    filter?: (string|null);
                }

                /** Represents a ListDocumentsRequest. */
                class ListDocumentsRequest implements IListDocumentsRequest {

                    /**
                     * Constructs a new ListDocumentsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IListDocumentsRequest);

                    /** ListDocumentsRequest parent. */
                    public parent: string;

                    /** ListDocumentsRequest pageSize. */
                    public pageSize: number;

                    /** ListDocumentsRequest pageToken. */
                    public pageToken: string;

                    /** ListDocumentsRequest filter. */
                    public filter: string;

                    /**
                     * Creates a new ListDocumentsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListDocumentsRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IListDocumentsRequest): google.cloud.dialogflow.v2.ListDocumentsRequest;

                    /**
                     * Encodes the specified ListDocumentsRequest message. Does not implicitly {@link google.cloud.dialogflow.v2.ListDocumentsRequest.verify|verify} messages.
                     * @param message ListDocumentsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IListDocumentsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListDocumentsRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.ListDocumentsRequest.verify|verify} messages.
                     * @param message ListDocumentsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.IListDocumentsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListDocumentsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListDocumentsRequest
                     * @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.cloud.dialogflow.v2.ListDocumentsRequest;

                    /**
                     * Decodes a ListDocumentsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListDocumentsRequest
                     * @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.cloud.dialogflow.v2.ListDocumentsRequest;

                    /**
                     * Verifies a ListDocumentsRequest 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 ListDocumentsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListDocumentsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.ListDocumentsRequest;

                    /**
                     * Creates a plain object from a ListDocumentsRequest message. Also converts values to other types if specified.
                     * @param message ListDocumentsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.ListDocumentsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListDocumentsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListDocumentsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListDocumentsResponse. */
                interface IListDocumentsResponse {

                    /** ListDocumentsResponse documents */
                    documents?: (google.cloud.dialogflow.v2.IDocument[]|null);

                    /** ListDocumentsResponse nextPageToken */
                    nextPageToken?: (string|null);
                }

                /** Represents a ListDocumentsResponse. */
                class ListDocumentsResponse implements IListDocumentsResponse {

                    /**
                     * Constructs a new ListDocumentsResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IListDocumentsResponse);

                    /** ListDocumentsResponse documents. */
                    public documents: google.cloud.dialogflow.v2.IDocument[];

                    /** ListDocumentsResponse nextPageToken. */
                    public nextPageToken: string;

                    /**
                     * Creates a new ListDocumentsResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListDocumentsResponse instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IListDocumentsResponse): google.cloud.dialogflow.v2.ListDocumentsResponse;

                    /**
                     * Encodes the specified ListDocumentsResponse message. Does not implicitly {@link google.cloud.dialogflow.v2.ListDocumentsResponse.verify|verify} messages.
                     * @param message ListDocumentsResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IListDocumentsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListDocumentsResponse message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.ListDocumentsResponse.verify|verify} messages.
                     * @param message ListDocumentsResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.IListDocumentsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListDocumentsResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListDocumentsResponse
                     * @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.cloud.dialogflow.v2.ListDocumentsResponse;

                    /**
                     * Decodes a ListDocumentsResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListDocumentsResponse
                     * @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.cloud.dialogflow.v2.ListDocumentsResponse;

                    /**
                     * Verifies a ListDocumentsResponse 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 ListDocumentsResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListDocumentsResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.ListDocumentsResponse;

                    /**
                     * Creates a plain object from a ListDocumentsResponse message. Also converts values to other types if specified.
                     * @param message ListDocumentsResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.ListDocumentsResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListDocumentsResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListDocumentsResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a CreateDocumentRequest. */
                interface ICreateDocumentRequest {

                    /** CreateDocumentRequest parent */
                    parent?: (string|null);

                    /** CreateDocumentRequest document */
                    document?: (google.cloud.dialogflow.v2.IDocument|null);
                }

                /** Represents a CreateDocumentRequest. */
                class CreateDocumentRequest implements ICreateDocumentRequest {

                    /**
                     * Constructs a new CreateDocumentRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.ICreateDocumentRequest);

                    /** CreateDocumentRequest parent. */
                    public parent: string;

                    /** CreateDocumentRequest document. */
                    public document?: (google.cloud.dialogflow.v2.IDocument|null);

                    /**
                     * Creates a new CreateDocumentRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CreateDocumentRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.ICreateDocumentRequest): google.cloud.dialogflow.v2.CreateDocumentRequest;

                    /**
                     * Encodes the specified CreateDocumentRequest message. Does not implicitly {@link google.cloud.dialogflow.v2.CreateDocumentRequest.verify|verify} messages.
                     * @param message CreateDocumentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.ICreateDocumentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CreateDocumentRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.CreateDocumentRequest.verify|verify} messages.
                     * @param message CreateDocumentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.ICreateDocumentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CreateDocumentRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CreateDocumentRequest
                     * @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.cloud.dialogflow.v2.CreateDocumentRequest;

                    /**
                     * Decodes a CreateDocumentRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CreateDocumentRequest
                     * @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.cloud.dialogflow.v2.CreateDocumentRequest;

                    /**
                     * Verifies a CreateDocumentRequest 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 CreateDocumentRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CreateDocumentRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.CreateDocumentRequest;

                    /**
                     * Creates a plain object from a CreateDocumentRequest message. Also converts values to other types if specified.
                     * @param message CreateDocumentRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.CreateDocumentRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CreateDocumentRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CreateDocumentRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an ImportDocumentsRequest. */
                interface IImportDocumentsRequest {

                    /** ImportDocumentsRequest parent */
                    parent?: (string|null);

                    /** ImportDocumentsRequest gcsSource */
                    gcsSource?: (google.cloud.dialogflow.v2.IGcsSources|null);

                    /** ImportDocumentsRequest documentTemplate */
                    documentTemplate?: (google.cloud.dialogflow.v2.IImportDocumentTemplate|null);

                    /** ImportDocumentsRequest importGcsCustomMetadata */
                    importGcsCustomMetadata?: (boolean|null);
                }

                /** Represents an ImportDocumentsRequest. */
                class ImportDocumentsRequest implements IImportDocumentsRequest {

                    /**
                     * Constructs a new ImportDocumentsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IImportDocumentsRequest);

                    /** ImportDocumentsRequest parent. */
                    public parent: string;

                    /** ImportDocumentsRequest gcsSource. */
                    public gcsSource?: (google.cloud.dialogflow.v2.IGcsSources|null);

                    /** ImportDocumentsRequest documentTemplate. */
                    public documentTemplate?: (google.cloud.dialogflow.v2.IImportDocumentTemplate|null);

                    /** ImportDocumentsRequest importGcsCustomMetadata. */
                    public importGcsCustomMetadata: boolean;

                    /** ImportDocumentsRequest source. */
                    public source?: "gcsSource";

                    /**
                     * Creates a new ImportDocumentsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ImportDocumentsRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IImportDocumentsRequest): google.cloud.dialogflow.v2.ImportDocumentsRequest;

                    /**
                     * Encodes the specified ImportDocumentsRequest message. Does not implicitly {@link google.cloud.dialogflow.v2.ImportDocumentsRequest.verify|verify} messages.
                     * @param message ImportDocumentsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IImportDocumentsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ImportDocumentsRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.ImportDocumentsRequest.verify|verify} messages.
                     * @param message ImportDocumentsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.IImportDocumentsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an ImportDocumentsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ImportDocumentsRequest
                     * @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.cloud.dialogflow.v2.ImportDocumentsRequest;

                    /**
                     * Decodes an ImportDocumentsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ImportDocumentsRequest
                     * @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.cloud.dialogflow.v2.ImportDocumentsRequest;

                    /**
                     * Verifies an ImportDocumentsRequest 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 ImportDocumentsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ImportDocumentsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.ImportDocumentsRequest;

                    /**
                     * Creates a plain object from an ImportDocumentsRequest message. Also converts values to other types if specified.
                     * @param message ImportDocumentsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.ImportDocumentsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ImportDocumentsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ImportDocumentsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an ImportDocumentTemplate. */
                interface IImportDocumentTemplate {

                    /** ImportDocumentTemplate mimeType */
                    mimeType?: (string|null);

                    /** ImportDocumentTemplate knowledgeTypes */
                    knowledgeTypes?: (google.cloud.dialogflow.v2.Document.KnowledgeType[]|null);

                    /** ImportDocumentTemplate metadata */
                    metadata?: ({ [k: string]: string }|null);
                }

                /** Represents an ImportDocumentTemplate. */
                class ImportDocumentTemplate implements IImportDocumentTemplate {

                    /**
                     * Constructs a new ImportDocumentTemplate.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IImportDocumentTemplate);

                    /** ImportDocumentTemplate mimeType. */
                    public mimeType: string;

                    /** ImportDocumentTemplate knowledgeTypes. */
                    public knowledgeTypes: google.cloud.dialogflow.v2.Document.KnowledgeType[];

                    /** ImportDocumentTemplate metadata. */
                    public metadata: { [k: string]: string };

                    /**
                     * Creates a new ImportDocumentTemplate instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ImportDocumentTemplate instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IImportDocumentTemplate): google.cloud.dialogflow.v2.ImportDocumentTemplate;

                    /**
                     * Encodes the specified ImportDocumentTemplate message. Does not implicitly {@link google.cloud.dialogflow.v2.ImportDocumentTemplate.verify|verify} messages.
                     * @param message ImportDocumentTemplate message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IImportDocumentTemplate, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ImportDocumentTemplate message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.ImportDocumentTemplate.verify|verify} messages.
                     * @param message ImportDocumentTemplate message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.IImportDocumentTemplate, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an ImportDocumentTemplate message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ImportDocumentTemplate
                     * @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.cloud.dialogflow.v2.ImportDocumentTemplate;

                    /**
                     * Decodes an ImportDocumentTemplate message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ImportDocumentTemplate
                     * @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.cloud.dialogflow.v2.ImportDocumentTemplate;

                    /**
                     * Verifies an ImportDocumentTemplate 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 ImportDocumentTemplate message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ImportDocumentTemplate
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.ImportDocumentTemplate;

                    /**
                     * Creates a plain object from an ImportDocumentTemplate message. Also converts values to other types if specified.
                     * @param message ImportDocumentTemplate
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.ImportDocumentTemplate, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ImportDocumentTemplate to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ImportDocumentTemplate
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an ImportDocumentsResponse. */
                interface IImportDocumentsResponse {

                    /** ImportDocumentsResponse warnings */
                    warnings?: (google.rpc.IStatus[]|null);
                }

                /** Represents an ImportDocumentsResponse. */
                class ImportDocumentsResponse implements IImportDocumentsResponse {

                    /**
                     * Constructs a new ImportDocumentsResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IImportDocumentsResponse);

                    /** ImportDocumentsResponse warnings. */
                    public warnings: google.rpc.IStatus[];

                    /**
                     * Creates a new ImportDocumentsResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ImportDocumentsResponse instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IImportDocumentsResponse): google.cloud.dialogflow.v2.ImportDocumentsResponse;

                    /**
                     * Encodes the specified ImportDocumentsResponse message. Does not implicitly {@link google.cloud.dialogflow.v2.ImportDocumentsResponse.verify|verify} messages.
                     * @param message ImportDocumentsResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IImportDocumentsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ImportDocumentsResponse message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.ImportDocumentsResponse.verify|verify} messages.
                     * @param message ImportDocumentsResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.IImportDocumentsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an ImportDocumentsResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ImportDocumentsResponse
                     * @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.cloud.dialogflow.v2.ImportDocumentsResponse;

                    /**
                     * Decodes an ImportDocumentsResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ImportDocumentsResponse
                     * @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.cloud.dialogflow.v2.ImportDocumentsResponse;

                    /**
                     * Verifies an ImportDocumentsResponse 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 ImportDocumentsResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ImportDocumentsResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.ImportDocumentsResponse;

                    /**
                     * Creates a plain object from an ImportDocumentsResponse message. Also converts values to other types if specified.
                     * @param message ImportDocumentsResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.ImportDocumentsResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ImportDocumentsResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ImportDocumentsResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteDocumentRequest. */
                interface IDeleteDocumentRequest {

                    /** DeleteDocumentRequest name */
                    name?: (string|null);
                }

                /** Represents a DeleteDocumentRequest. */
                class DeleteDocumentRequest implements IDeleteDocumentRequest {

                    /**
                     * Constructs a new DeleteDocumentRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IDeleteDocumentRequest);

                    /** DeleteDocumentRequest name. */
                    public name: string;

                    /**
                     * Creates a new DeleteDocumentRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteDocumentRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IDeleteDocumentRequest): google.cloud.dialogflow.v2.DeleteDocumentRequest;

                    /**
                     * Encodes the specified DeleteDocumentRequest message. Does not implicitly {@link google.cloud.dialogflow.v2.DeleteDocumentRequest.verify|verify} messages.
                     * @param message DeleteDocumentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IDeleteDocumentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteDocumentRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.DeleteDocumentRequest.verify|verify} messages.
                     * @param message DeleteDocumentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.IDeleteDocumentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteDocumentRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteDocumentRequest
                     * @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.cloud.dialogflow.v2.DeleteDocumentRequest;

                    /**
                     * Decodes a DeleteDocumentRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteDocumentRequest
                     * @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.cloud.dialogflow.v2.DeleteDocumentRequest;

                    /**
                     * Verifies a DeleteDocumentRequest 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 DeleteDocumentRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteDocumentRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.DeleteDocumentRequest;

                    /**
                     * Creates a plain object from a DeleteDocumentRequest message. Also converts values to other types if specified.
                     * @param message DeleteDocumentRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.DeleteDocumentRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteDocumentRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteDocumentRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an UpdateDocumentRequest. */
                interface IUpdateDocumentRequest {

                    /** UpdateDocumentRequest document */
                    document?: (google.cloud.dialogflow.v2.IDocument|null);

                    /** UpdateDocumentRequest updateMask */
                    updateMask?: (google.protobuf.IFieldMask|null);
                }

                /** Represents an UpdateDocumentRequest. */
                class UpdateDocumentRequest implements IUpdateDocumentRequest {

                    /**
                     * Constructs a new UpdateDocumentRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IUpdateDocumentRequest);

                    /** UpdateDocumentRequest document. */
                    public document?: (google.cloud.dialogflow.v2.IDocument|null);

                    /** UpdateDocumentRequest updateMask. */
                    public updateMask?: (google.protobuf.IFieldMask|null);

                    /**
                     * Creates a new UpdateDocumentRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UpdateDocumentRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IUpdateDocumentRequest): google.cloud.dialogflow.v2.UpdateDocumentRequest;

                    /**
                     * Encodes the specified UpdateDocumentRequest message. Does not implicitly {@link google.cloud.dialogflow.v2.UpdateDocumentRequest.verify|verify} messages.
                     * @param message UpdateDocumentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IUpdateDocumentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified UpdateDocumentRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.UpdateDocumentRequest.verify|verify} messages.
                     * @param message UpdateDocumentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.IUpdateDocumentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an UpdateDocumentRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns UpdateDocumentRequest
                     * @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.cloud.dialogflow.v2.UpdateDocumentRequest;

                    /**
                     * Decodes an UpdateDocumentRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns UpdateDocumentRequest
                     * @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.cloud.dialogflow.v2.UpdateDocumentRequest;

                    /**
                     * Verifies an UpdateDocumentRequest 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 UpdateDocumentRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UpdateDocumentRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.UpdateDocumentRequest;

                    /**
                     * Creates a plain object from an UpdateDocumentRequest message. Also converts values to other types if specified.
                     * @param message UpdateDocumentRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.UpdateDocumentRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this UpdateDocumentRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for UpdateDocumentRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ReloadDocumentRequest. */
                interface IReloadDocumentRequest {

                    /** ReloadDocumentRequest name */
                    name?: (string|null);

                    /** ReloadDocumentRequest contentUri */
                    contentUri?: (string|null);

                    /** ReloadDocumentRequest importGcsCustomMetadata */
                    importGcsCustomMetadata?: (boolean|null);

                    /** ReloadDocumentRequest smartMessagingPartialUpdate */
                    smartMessagingPartialUpdate?: (boolean|null);
                }

                /** Represents a ReloadDocumentRequest. */
                class ReloadDocumentRequest implements IReloadDocumentRequest {

                    /**
                     * Constructs a new ReloadDocumentRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IReloadDocumentRequest);

                    /** ReloadDocumentRequest name. */
                    public name: string;

                    /** ReloadDocumentRequest contentUri. */
                    public contentUri?: (string|null);

                    /** ReloadDocumentRequest importGcsCustomMetadata. */
                    public importGcsCustomMetadata: boolean;

                    /** ReloadDocumentRequest smartMessagingPartialUpdate. */
                    public smartMessagingPartialUpdate: boolean;

                    /** ReloadDocumentRequest source. */
                    public source?: "contentUri";

                    /**
                     * Creates a new ReloadDocumentRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ReloadDocumentRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IReloadDocumentRequest): google.cloud.dialogflow.v2.ReloadDocumentRequest;

                    /**
                     * Encodes the specified ReloadDocumentRequest message. Does not implicitly {@link google.cloud.dialogflow.v2.ReloadDocumentRequest.verify|verify} messages.
                     * @param message ReloadDocumentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IReloadDocumentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ReloadDocumentRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.ReloadDocumentRequest.verify|verify} messages.
                     * @param message ReloadDocumentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.IReloadDocumentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ReloadDocumentRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ReloadDocumentRequest
                     * @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.cloud.dialogflow.v2.ReloadDocumentRequest;

                    /**
                     * Decodes a ReloadDocumentRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ReloadDocumentRequest
                     * @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.cloud.dialogflow.v2.ReloadDocumentRequest;

                    /**
                     * Verifies a ReloadDocumentRequest 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 ReloadDocumentRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ReloadDocumentRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.ReloadDocumentRequest;

                    /**
                     * Creates a plain object from a ReloadDocumentRequest message. Also converts values to other types if specified.
                     * @param message ReloadDocumentRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.ReloadDocumentRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ReloadDocumentRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ReloadDocumentRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an ExportDocumentRequest. */
                interface IExportDocumentRequest {

                    /** ExportDocumentRequest name */
                    name?: (string|null);

                    /** ExportDocumentRequest gcsDestination */
                    gcsDestination?: (google.cloud.dialogflow.v2.IGcsDestination|null);

                    /** ExportDocumentRequest exportFullContent */
                    exportFullContent?: (boolean|null);

                    /** ExportDocumentRequest smartMessagingPartialUpdate */
                    smartMessagingPartialUpdate?: (boolean|null);
                }

                /** Represents an ExportDocumentRequest. */
                class ExportDocumentRequest implements IExportDocumentRequest {

                    /**
                     * Constructs a new ExportDocumentRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IExportDocumentRequest);

                    /** ExportDocumentRequest name. */
                    public name: string;

                    /** ExportDocumentRequest gcsDestination. */
                    public gcsDestination?: (google.cloud.dialogflow.v2.IGcsDestination|null);

                    /** ExportDocumentRequest exportFullContent. */
                    public exportFullContent: boolean;

                    /** ExportDocumentRequest smartMessagingPartialUpdate. */
                    public smartMessagingPartialUpdate: boolean;

                    /** ExportDocumentRequest destination. */
                    public destination?: "gcsDestination";

                    /**
                     * Creates a new ExportDocumentRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ExportDocumentRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IExportDocumentRequest): google.cloud.dialogflow.v2.ExportDocumentRequest;

                    /**
                     * Encodes the specified ExportDocumentRequest message. Does not implicitly {@link google.cloud.dialogflow.v2.ExportDocumentRequest.verify|verify} messages.
                     * @param message ExportDocumentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IExportDocumentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ExportDocumentRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.ExportDocumentRequest.verify|verify} messages.
                     * @param message ExportDocumentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.IExportDocumentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an ExportDocumentRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ExportDocumentRequest
                     * @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.cloud.dialogflow.v2.ExportDocumentRequest;

                    /**
                     * Decodes an ExportDocumentRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ExportDocumentRequest
                     * @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.cloud.dialogflow.v2.ExportDocumentRequest;

                    /**
                     * Verifies an ExportDocumentRequest 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 ExportDocumentRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ExportDocumentRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.ExportDocumentRequest;

                    /**
                     * Creates a plain object from an ExportDocumentRequest message. Also converts values to other types if specified.
                     * @param message ExportDocumentRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.ExportDocumentRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ExportDocumentRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ExportDocumentRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an ExportOperationMetadata. */
                interface IExportOperationMetadata {

                    /** ExportOperationMetadata exportedGcsDestination */
                    exportedGcsDestination?: (google.cloud.dialogflow.v2.IGcsDestination|null);
                }

                /** Represents an ExportOperationMetadata. */
                class ExportOperationMetadata implements IExportOperationMetadata {

                    /**
                     * Constructs a new ExportOperationMetadata.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IExportOperationMetadata);

                    /** ExportOperationMetadata exportedGcsDestination. */
                    public exportedGcsDestination?: (google.cloud.dialogflow.v2.IGcsDestination|null);

                    /**
                     * Creates a new ExportOperationMetadata instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ExportOperationMetadata instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IExportOperationMetadata): google.cloud.dialogflow.v2.ExportOperationMetadata;

                    /**
                     * Encodes the specified ExportOperationMetadata message. Does not implicitly {@link google.cloud.dialogflow.v2.ExportOperationMetadata.verify|verify} messages.
                     * @param message ExportOperationMetadata message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IExportOperationMetadata, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ExportOperationMetadata message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.ExportOperationMetadata.verify|verify} messages.
                     * @param message ExportOperationMetadata message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.IExportOperationMetadata, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an ExportOperationMetadata message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ExportOperationMetadata
                     * @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.cloud.dialogflow.v2.ExportOperationMetadata;

                    /**
                     * Decodes an ExportOperationMetadata message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ExportOperationMetadata
                     * @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.cloud.dialogflow.v2.ExportOperationMetadata;

                    /**
                     * Verifies an ExportOperationMetadata 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 ExportOperationMetadata message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ExportOperationMetadata
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.ExportOperationMetadata;

                    /**
                     * Creates a plain object from an ExportOperationMetadata message. Also converts values to other types if specified.
                     * @param message ExportOperationMetadata
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.ExportOperationMetadata, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ExportOperationMetadata to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ExportOperationMetadata
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a KnowledgeOperationMetadata. */
                interface IKnowledgeOperationMetadata {

                    /** KnowledgeOperationMetadata state */
                    state?: (google.cloud.dialogflow.v2.KnowledgeOperationMetadata.State|keyof typeof google.cloud.dialogflow.v2.KnowledgeOperationMetadata.State|null);

                    /** KnowledgeOperationMetadata knowledgeBase */
                    knowledgeBase?: (string|null);

                    /** KnowledgeOperationMetadata exportOperationMetadata */
                    exportOperationMetadata?: (google.cloud.dialogflow.v2.IExportOperationMetadata|null);

                    /** KnowledgeOperationMetadata doneTime */
                    doneTime?: (google.protobuf.ITimestamp|null);
                }

                /** Represents a KnowledgeOperationMetadata. */
                class KnowledgeOperationMetadata implements IKnowledgeOperationMetadata {

                    /**
                     * Constructs a new KnowledgeOperationMetadata.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IKnowledgeOperationMetadata);

                    /** KnowledgeOperationMetadata state. */
                    public state: (google.cloud.dialogflow.v2.KnowledgeOperationMetadata.State|keyof typeof google.cloud.dialogflow.v2.KnowledgeOperationMetadata.State);

                    /** KnowledgeOperationMetadata knowledgeBase. */
                    public knowledgeBase: string;

                    /** KnowledgeOperationMetadata exportOperationMetadata. */
                    public exportOperationMetadata?: (google.cloud.dialogflow.v2.IExportOperationMetadata|null);

                    /** KnowledgeOperationMetadata doneTime. */
                    public doneTime?: (google.protobuf.ITimestamp|null);

                    /** KnowledgeOperationMetadata operationMetadata. */
                    public operationMetadata?: "exportOperationMetadata";

                    /**
                     * Creates a new KnowledgeOperationMetadata instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns KnowledgeOperationMetadata instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IKnowledgeOperationMetadata): google.cloud.dialogflow.v2.KnowledgeOperationMetadata;

                    /**
                     * Encodes the specified KnowledgeOperationMetadata message. Does not implicitly {@link google.cloud.dialogflow.v2.KnowledgeOperationMetadata.verify|verify} messages.
                     * @param message KnowledgeOperationMetadata message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IKnowledgeOperationMetadata, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified KnowledgeOperationMetadata message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.KnowledgeOperationMetadata.verify|verify} messages.
                     * @param message KnowledgeOperationMetadata message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.IKnowledgeOperationMetadata, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a KnowledgeOperationMetadata message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns KnowledgeOperationMetadata
                     * @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.cloud.dialogflow.v2.KnowledgeOperationMetadata;

                    /**
                     * Decodes a KnowledgeOperationMetadata message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns KnowledgeOperationMetadata
                     * @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.cloud.dialogflow.v2.KnowledgeOperationMetadata;

                    /**
                     * Verifies a KnowledgeOperationMetadata 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 KnowledgeOperationMetadata message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns KnowledgeOperationMetadata
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.KnowledgeOperationMetadata;

                    /**
                     * Creates a plain object from a KnowledgeOperationMetadata message. Also converts values to other types if specified.
                     * @param message KnowledgeOperationMetadata
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.KnowledgeOperationMetadata, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this KnowledgeOperationMetadata to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for KnowledgeOperationMetadata
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace KnowledgeOperationMetadata {

                    /** State enum. */
                    enum State {
                        STATE_UNSPECIFIED = 0,
                        PENDING = 1,
                        RUNNING = 2,
                        DONE = 3
                    }
                }

                /** Represents an EncryptionSpecService */
                class EncryptionSpecService extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new EncryptionSpecService 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 EncryptionSpecService 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): EncryptionSpecService;

                    /**
                     * Calls GetEncryptionSpec.
                     * @param request GetEncryptionSpecRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and EncryptionSpec
                     */
                    public getEncryptionSpec(request: google.cloud.dialogflow.v2.IGetEncryptionSpecRequest, callback: google.cloud.dialogflow.v2.EncryptionSpecService.GetEncryptionSpecCallback): void;

                    /**
                     * Calls GetEncryptionSpec.
                     * @param request GetEncryptionSpecRequest message or plain object
                     * @returns Promise
                     */
                    public getEncryptionSpec(request: google.cloud.dialogflow.v2.IGetEncryptionSpecRequest): Promise<google.cloud.dialogflow.v2.EncryptionSpec>;

                    /**
                     * Calls InitializeEncryptionSpec.
                     * @param request InitializeEncryptionSpecRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public initializeEncryptionSpec(request: google.cloud.dialogflow.v2.IInitializeEncryptionSpecRequest, callback: google.cloud.dialogflow.v2.EncryptionSpecService.InitializeEncryptionSpecCallback): void;

                    /**
                     * Calls InitializeEncryptionSpec.
                     * @param request InitializeEncryptionSpecRequest message or plain object
                     * @returns Promise
                     */
                    public initializeEncryptionSpec(request: google.cloud.dialogflow.v2.IInitializeEncryptionSpecRequest): Promise<google.longrunning.Operation>;
                }

                namespace EncryptionSpecService {

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2.EncryptionSpecService|getEncryptionSpec}.
                     * @param error Error, if any
                     * @param [response] EncryptionSpec
                     */
                    type GetEncryptionSpecCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2.EncryptionSpec) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2.EncryptionSpecService|initializeEncryptionSpec}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InitializeEncryptionSpecCallback = (error: (Error|null), response?: google.longrunning.Operation) => void;
                }

                /** Properties of a GetEncryptionSpecRequest. */
                interface IGetEncryptionSpecRequest {

                    /** GetEncryptionSpecRequest name */
                    name?: (string|null);
                }

                /** Represents a GetEncryptionSpecRequest. */
                class GetEncryptionSpecRequest implements IGetEncryptionSpecRequest {

                    /**
                     * Constructs a new GetEncryptionSpecRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IGetEncryptionSpecRequest);

                    /** GetEncryptionSpecRequest name. */
                    public name: string;

                    /**
                     * Creates a new GetEncryptionSpecRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetEncryptionSpecRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IGetEncryptionSpecRequest): google.cloud.dialogflow.v2.GetEncryptionSpecRequest;

                    /**
                     * Encodes the specified GetEncryptionSpecRequest message. Does not implicitly {@link google.cloud.dialogflow.v2.GetEncryptionSpecRequest.verify|verify} messages.
                     * @param message GetEncryptionSpecRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IGetEncryptionSpecRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetEncryptionSpecRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.GetEncryptionSpecRequest.verify|verify} messages.
                     * @param message GetEncryptionSpecRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.IGetEncryptionSpecRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetEncryptionSpecRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetEncryptionSpecRequest
                     * @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.cloud.dialogflow.v2.GetEncryptionSpecRequest;

                    /**
                     * Decodes a GetEncryptionSpecRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetEncryptionSpecRequest
                     * @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.cloud.dialogflow.v2.GetEncryptionSpecRequest;

                    /**
                     * Verifies a GetEncryptionSpecRequest 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 GetEncryptionSpecRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetEncryptionSpecRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.GetEncryptionSpecRequest;

                    /**
                     * Creates a plain object from a GetEncryptionSpecRequest message. Also converts values to other types if specified.
                     * @param message GetEncryptionSpecRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.GetEncryptionSpecRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetEncryptionSpecRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetEncryptionSpecRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an EncryptionSpec. */
                interface IEncryptionSpec {

                    /** EncryptionSpec name */
                    name?: (string|null);

                    /** EncryptionSpec kmsKey */
                    kmsKey?: (string|null);
                }

                /** Represents an EncryptionSpec. */
                class EncryptionSpec implements IEncryptionSpec {

                    /**
                     * Constructs a new EncryptionSpec.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IEncryptionSpec);

                    /** EncryptionSpec name. */
                    public name: string;

                    /** EncryptionSpec kmsKey. */
                    public kmsKey: string;

                    /**
                     * Creates a new EncryptionSpec instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns EncryptionSpec instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IEncryptionSpec): google.cloud.dialogflow.v2.EncryptionSpec;

                    /**
                     * Encodes the specified EncryptionSpec message. Does not implicitly {@link google.cloud.dialogflow.v2.EncryptionSpec.verify|verify} messages.
                     * @param message EncryptionSpec message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IEncryptionSpec, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified EncryptionSpec message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.EncryptionSpec.verify|verify} messages.
                     * @param message EncryptionSpec message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.IEncryptionSpec, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an EncryptionSpec message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns EncryptionSpec
                     * @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.cloud.dialogflow.v2.EncryptionSpec;

                    /**
                     * Decodes an EncryptionSpec message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns EncryptionSpec
                     * @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.cloud.dialogflow.v2.EncryptionSpec;

                    /**
                     * Verifies an EncryptionSpec 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 EncryptionSpec message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns EncryptionSpec
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.EncryptionSpec;

                    /**
                     * Creates a plain object from an EncryptionSpec message. Also converts values to other types if specified.
                     * @param message EncryptionSpec
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.EncryptionSpec, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this EncryptionSpec to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for EncryptionSpec
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InitializeEncryptionSpecRequest. */
                interface IInitializeEncryptionSpecRequest {

                    /** InitializeEncryptionSpecRequest encryptionSpec */
                    encryptionSpec?: (google.cloud.dialogflow.v2.IEncryptionSpec|null);
                }

                /** Represents an InitializeEncryptionSpecRequest. */
                class InitializeEncryptionSpecRequest implements IInitializeEncryptionSpecRequest {

                    /**
                     * Constructs a new InitializeEncryptionSpecRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IInitializeEncryptionSpecRequest);

                    /** InitializeEncryptionSpecRequest encryptionSpec. */
                    public encryptionSpec?: (google.cloud.dialogflow.v2.IEncryptionSpec|null);

                    /**
                     * Creates a new InitializeEncryptionSpecRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InitializeEncryptionSpecRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IInitializeEncryptionSpecRequest): google.cloud.dialogflow.v2.InitializeEncryptionSpecRequest;

                    /**
                     * Encodes the specified InitializeEncryptionSpecRequest message. Does not implicitly {@link google.cloud.dialogflow.v2.InitializeEncryptionSpecRequest.verify|verify} messages.
                     * @param message InitializeEncryptionSpecRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IInitializeEncryptionSpecRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InitializeEncryptionSpecRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.InitializeEncryptionSpecRequest.verify|verify} messages.
                     * @param message InitializeEncryptionSpecRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.IInitializeEncryptionSpecRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InitializeEncryptionSpecRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InitializeEncryptionSpecRequest
                     * @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.cloud.dialogflow.v2.InitializeEncryptionSpecRequest;

                    /**
                     * Decodes an InitializeEncryptionSpecRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InitializeEncryptionSpecRequest
                     * @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.cloud.dialogflow.v2.InitializeEncryptionSpecRequest;

                    /**
                     * Verifies an InitializeEncryptionSpecRequest 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 InitializeEncryptionSpecRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InitializeEncryptionSpecRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.InitializeEncryptionSpecRequest;

                    /**
                     * Creates a plain object from an InitializeEncryptionSpecRequest message. Also converts values to other types if specified.
                     * @param message InitializeEncryptionSpecRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.InitializeEncryptionSpecRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InitializeEncryptionSpecRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InitializeEncryptionSpecRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InitializeEncryptionSpecResponse. */
                interface IInitializeEncryptionSpecResponse {
                }

                /** Represents an InitializeEncryptionSpecResponse. */
                class InitializeEncryptionSpecResponse implements IInitializeEncryptionSpecResponse {

                    /**
                     * Constructs a new InitializeEncryptionSpecResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IInitializeEncryptionSpecResponse);

                    /**
                     * Creates a new InitializeEncryptionSpecResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InitializeEncryptionSpecResponse instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IInitializeEncryptionSpecResponse): google.cloud.dialogflow.v2.InitializeEncryptionSpecResponse;

                    /**
                     * Encodes the specified InitializeEncryptionSpecResponse message. Does not implicitly {@link google.cloud.dialogflow.v2.InitializeEncryptionSpecResponse.verify|verify} messages.
                     * @param message InitializeEncryptionSpecResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IInitializeEncryptionSpecResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InitializeEncryptionSpecResponse message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.InitializeEncryptionSpecResponse.verify|verify} messages.
                     * @param message InitializeEncryptionSpecResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.IInitializeEncryptionSpecResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InitializeEncryptionSpecResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InitializeEncryptionSpecResponse
                     * @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.cloud.dialogflow.v2.InitializeEncryptionSpecResponse;

                    /**
                     * Decodes an InitializeEncryptionSpecResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InitializeEncryptionSpecResponse
                     * @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.cloud.dialogflow.v2.InitializeEncryptionSpecResponse;

                    /**
                     * Verifies an InitializeEncryptionSpecResponse 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 InitializeEncryptionSpecResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InitializeEncryptionSpecResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.InitializeEncryptionSpecResponse;

                    /**
                     * Creates a plain object from an InitializeEncryptionSpecResponse message. Also converts values to other types if specified.
                     * @param message InitializeEncryptionSpecResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.InitializeEncryptionSpecResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InitializeEncryptionSpecResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InitializeEncryptionSpecResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InitializeEncryptionSpecMetadata. */
                interface IInitializeEncryptionSpecMetadata {

                    /** InitializeEncryptionSpecMetadata request */
                    request?: (google.cloud.dialogflow.v2.IInitializeEncryptionSpecRequest|null);
                }

                /** Represents an InitializeEncryptionSpecMetadata. */
                class InitializeEncryptionSpecMetadata implements IInitializeEncryptionSpecMetadata {

                    /**
                     * Constructs a new InitializeEncryptionSpecMetadata.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IInitializeEncryptionSpecMetadata);

                    /** InitializeEncryptionSpecMetadata request. */
                    public request?: (google.cloud.dialogflow.v2.IInitializeEncryptionSpecRequest|null);

                    /**
                     * Creates a new InitializeEncryptionSpecMetadata instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InitializeEncryptionSpecMetadata instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IInitializeEncryptionSpecMetadata): google.cloud.dialogflow.v2.InitializeEncryptionSpecMetadata;

                    /**
                     * Encodes the specified InitializeEncryptionSpecMetadata message. Does not implicitly {@link google.cloud.dialogflow.v2.InitializeEncryptionSpecMetadata.verify|verify} messages.
                     * @param message InitializeEncryptionSpecMetadata message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IInitializeEncryptionSpecMetadata, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InitializeEncryptionSpecMetadata message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.InitializeEncryptionSpecMetadata.verify|verify} messages.
                     * @param message InitializeEncryptionSpecMetadata message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.IInitializeEncryptionSpecMetadata, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InitializeEncryptionSpecMetadata message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InitializeEncryptionSpecMetadata
                     * @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.cloud.dialogflow.v2.InitializeEncryptionSpecMetadata;

                    /**
                     * Decodes an InitializeEncryptionSpecMetadata message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InitializeEncryptionSpecMetadata
                     * @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.cloud.dialogflow.v2.InitializeEncryptionSpecMetadata;

                    /**
                     * Verifies an InitializeEncryptionSpecMetadata 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 InitializeEncryptionSpecMetadata message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InitializeEncryptionSpecMetadata
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.InitializeEncryptionSpecMetadata;

                    /**
                     * Creates a plain object from an InitializeEncryptionSpecMetadata message. Also converts values to other types if specified.
                     * @param message InitializeEncryptionSpecMetadata
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.InitializeEncryptionSpecMetadata, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InitializeEncryptionSpecMetadata to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InitializeEncryptionSpecMetadata
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Represents an Environments */
                class Environments extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new Environments 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 Environments 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): Environments;

                    /**
                     * Calls ListEnvironments.
                     * @param request ListEnvironmentsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ListEnvironmentsResponse
                     */
                    public listEnvironments(request: google.cloud.dialogflow.v2.IListEnvironmentsRequest, callback: google.cloud.dialogflow.v2.Environments.ListEnvironmentsCallback): void;

                    /**
                     * Calls ListEnvironments.
                     * @param request ListEnvironmentsRequest message or plain object
                     * @returns Promise
                     */
                    public listEnvironments(request: google.cloud.dialogflow.v2.IListEnvironmentsRequest): Promise<google.cloud.dialogflow.v2.ListEnvironmentsResponse>;

                    /**
                     * Calls GetEnvironment.
                     * @param request GetEnvironmentRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Environment
                     */
                    public getEnvironment(request: google.cloud.dialogflow.v2.IGetEnvironmentRequest, callback: google.cloud.dialogflow.v2.Environments.GetEnvironmentCallback): void;

                    /**
                     * Calls GetEnvironment.
                     * @param request GetEnvironmentRequest message or plain object
                     * @returns Promise
                     */
                    public getEnvironment(request: google.cloud.dialogflow.v2.IGetEnvironmentRequest): Promise<google.cloud.dialogflow.v2.Environment>;

                    /**
                     * Calls CreateEnvironment.
                     * @param request CreateEnvironmentRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Environment
                     */
                    public createEnvironment(request: google.cloud.dialogflow.v2.ICreateEnvironmentRequest, callback: google.cloud.dialogflow.v2.Environments.CreateEnvironmentCallback): void;

                    /**
                     * Calls CreateEnvironment.
                     * @param request CreateEnvironmentRequest message or plain object
                     * @returns Promise
                     */
                    public createEnvironment(request: google.cloud.dialogflow.v2.ICreateEnvironmentRequest): Promise<google.cloud.dialogflow.v2.Environment>;

                    /**
                     * Calls UpdateEnvironment.
                     * @param request UpdateEnvironmentRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Environment
                     */
                    public updateEnvironment(request: google.cloud.dialogflow.v2.IUpdateEnvironmentRequest, callback: google.cloud.dialogflow.v2.Environments.UpdateEnvironmentCallback): void;

                    /**
                     * Calls UpdateEnvironment.
                     * @param request UpdateEnvironmentRequest message or plain object
                     * @returns Promise
                     */
                    public updateEnvironment(request: google.cloud.dialogflow.v2.IUpdateEnvironmentRequest): Promise<google.cloud.dialogflow.v2.Environment>;

                    /**
                     * Calls DeleteEnvironment.
                     * @param request DeleteEnvironmentRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Empty
                     */
                    public deleteEnvironment(request: google.cloud.dialogflow.v2.IDeleteEnvironmentRequest, callback: google.cloud.dialogflow.v2.Environments.DeleteEnvironmentCallback): void;

                    /**
                     * Calls DeleteEnvironment.
                     * @param request DeleteEnvironmentRequest message or plain object
                     * @returns Promise
                     */
                    public deleteEnvironment(request: google.cloud.dialogflow.v2.IDeleteEnvironmentRequest): Promise<google.protobuf.Empty>;

                    /**
                     * Calls GetEnvironmentHistory.
                     * @param request GetEnvironmentHistoryRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and EnvironmentHistory
                     */
                    public getEnvironmentHistory(request: google.cloud.dialogflow.v2.IGetEnvironmentHistoryRequest, callback: google.cloud.dialogflow.v2.Environments.GetEnvironmentHistoryCallback): void;

                    /**
                     * Calls GetEnvironmentHistory.
                     * @param request GetEnvironmentHistoryRequest message or plain object
                     * @returns Promise
                     */
                    public getEnvironmentHistory(request: google.cloud.dialogflow.v2.IGetEnvironmentHistoryRequest): Promise<google.cloud.dialogflow.v2.EnvironmentHistory>;
                }

                namespace Environments {

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2.Environments|listEnvironments}.
                     * @param error Error, if any
                     * @param [response] ListEnvironmentsResponse
                     */
                    type ListEnvironmentsCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2.ListEnvironmentsResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2.Environments|getEnvironment}.
                     * @param error Error, if any
                     * @param [response] Environment
                     */
                    type GetEnvironmentCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2.Environment) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2.Environments|createEnvironment}.
                     * @param error Error, if any
                     * @param [response] Environment
                     */
                    type CreateEnvironmentCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2.Environment) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2.Environments|updateEnvironment}.
                     * @param error Error, if any
                     * @param [response] Environment
                     */
                    type UpdateEnvironmentCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2.Environment) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2.Environments|deleteEnvironment}.
                     * @param error Error, if any
                     * @param [response] Empty
                     */
                    type DeleteEnvironmentCallback = (error: (Error|null), response?: google.protobuf.Empty) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2.Environments|getEnvironmentHistory}.
                     * @param error Error, if any
                     * @param [response] EnvironmentHistory
                     */
                    type GetEnvironmentHistoryCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2.EnvironmentHistory) => void;
                }

                /** Properties of an Environment. */
                interface IEnvironment {

                    /** Environment name */
                    name?: (string|null);

                    /** Environment description */
                    description?: (string|null);

                    /** Environment agentVersion */
                    agentVersion?: (string|null);

                    /** Environment state */
                    state?: (google.cloud.dialogflow.v2.Environment.State|keyof typeof google.cloud.dialogflow.v2.Environment.State|null);

                    /** Environment updateTime */
                    updateTime?: (google.protobuf.ITimestamp|null);

                    /** Environment textToSpeechSettings */
                    textToSpeechSettings?: (google.cloud.dialogflow.v2.ITextToSpeechSettings|null);

                    /** Environment fulfillment */
                    fulfillment?: (google.cloud.dialogflow.v2.IFulfillment|null);
                }

                /** Represents an Environment. */
                class Environment implements IEnvironment {

                    /**
                     * Constructs a new Environment.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IEnvironment);

                    /** Environment name. */
                    public name: string;

                    /** Environment description. */
                    public description: string;

                    /** Environment agentVersion. */
                    public agentVersion: string;

                    /** Environment state. */
                    public state: (google.cloud.dialogflow.v2.Environment.State|keyof typeof google.cloud.dialogflow.v2.Environment.State);

                    /** Environment updateTime. */
                    public updateTime?: (google.protobuf.ITimestamp|null);

                    /** Environment textToSpeechSettings. */
                    public textToSpeechSettings?: (google.cloud.dialogflow.v2.ITextToSpeechSettings|null);

                    /** Environment fulfillment. */
                    public fulfillment?: (google.cloud.dialogflow.v2.IFulfillment|null);

                    /**
                     * Creates a new Environment instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Environment instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IEnvironment): google.cloud.dialogflow.v2.Environment;

                    /**
                     * Encodes the specified Environment message. Does not implicitly {@link google.cloud.dialogflow.v2.Environment.verify|verify} messages.
                     * @param message Environment message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IEnvironment, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Environment message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.Environment.verify|verify} messages.
                     * @param message Environment message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.IEnvironment, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an Environment message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Environment
                     * @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.cloud.dialogflow.v2.Environment;

                    /**
                     * Decodes an Environment message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Environment
                     * @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.cloud.dialogflow.v2.Environment;

                    /**
                     * Verifies an Environment 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 Environment message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Environment
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.Environment;

                    /**
                     * Creates a plain object from an Environment message. Also converts values to other types if specified.
                     * @param message Environment
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.Environment, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Environment to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Environment
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace Environment {

                    /** State enum. */
                    enum State {
                        STATE_UNSPECIFIED = 0,
                        STOPPED = 1,
                        LOADING = 2,
                        RUNNING = 3
                    }
                }

                /** Properties of a TextToSpeechSettings. */
                interface ITextToSpeechSettings {

                    /** TextToSpeechSettings enableTextToSpeech */
                    enableTextToSpeech?: (boolean|null);

                    /** TextToSpeechSettings outputAudioEncoding */
                    outputAudioEncoding?: (google.cloud.dialogflow.v2.OutputAudioEncoding|keyof typeof google.cloud.dialogflow.v2.OutputAudioEncoding|null);

                    /** TextToSpeechSettings sampleRateHertz */
                    sampleRateHertz?: (number|null);

                    /** TextToSpeechSettings synthesizeSpeechConfigs */
                    synthesizeSpeechConfigs?: ({ [k: string]: google.cloud.dialogflow.v2.ISynthesizeSpeechConfig }|null);
                }

                /** Represents a TextToSpeechSettings. */
                class TextToSpeechSettings implements ITextToSpeechSettings {

                    /**
                     * Constructs a new TextToSpeechSettings.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.ITextToSpeechSettings);

                    /** TextToSpeechSettings enableTextToSpeech. */
                    public enableTextToSpeech: boolean;

                    /** TextToSpeechSettings outputAudioEncoding. */
                    public outputAudioEncoding: (google.cloud.dialogflow.v2.OutputAudioEncoding|keyof typeof google.cloud.dialogflow.v2.OutputAudioEncoding);

                    /** TextToSpeechSettings sampleRateHertz. */
                    public sampleRateHertz: number;

                    /** TextToSpeechSettings synthesizeSpeechConfigs. */
                    public synthesizeSpeechConfigs: { [k: string]: google.cloud.dialogflow.v2.ISynthesizeSpeechConfig };

                    /**
                     * Creates a new TextToSpeechSettings instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TextToSpeechSettings instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.ITextToSpeechSettings): google.cloud.dialogflow.v2.TextToSpeechSettings;

                    /**
                     * Encodes the specified TextToSpeechSettings message. Does not implicitly {@link google.cloud.dialogflow.v2.TextToSpeechSettings.verify|verify} messages.
                     * @param message TextToSpeechSettings message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.ITextToSpeechSettings, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TextToSpeechSettings message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.TextToSpeechSettings.verify|verify} messages.
                     * @param message TextToSpeechSettings message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.ITextToSpeechSettings, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TextToSpeechSettings message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TextToSpeechSettings
                     * @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.cloud.dialogflow.v2.TextToSpeechSettings;

                    /**
                     * Decodes a TextToSpeechSettings message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TextToSpeechSettings
                     * @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.cloud.dialogflow.v2.TextToSpeechSettings;

                    /**
                     * Verifies a TextToSpeechSettings 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 TextToSpeechSettings message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TextToSpeechSettings
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.TextToSpeechSettings;

                    /**
                     * Creates a plain object from a TextToSpeechSettings message. Also converts values to other types if specified.
                     * @param message TextToSpeechSettings
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.TextToSpeechSettings, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TextToSpeechSettings to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TextToSpeechSettings
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListEnvironmentsRequest. */
                interface IListEnvironmentsRequest {

                    /** ListEnvironmentsRequest parent */
                    parent?: (string|null);

                    /** ListEnvironmentsRequest pageSize */
                    pageSize?: (number|null);

                    /** ListEnvironmentsRequest pageToken */
                    pageToken?: (string|null);
                }

                /** Represents a ListEnvironmentsRequest. */
                class ListEnvironmentsRequest implements IListEnvironmentsRequest {

                    /**
                     * Constructs a new ListEnvironmentsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IListEnvironmentsRequest);

                    /** ListEnvironmentsRequest parent. */
                    public parent: string;

                    /** ListEnvironmentsRequest pageSize. */
                    public pageSize: number;

                    /** ListEnvironmentsRequest pageToken. */
                    public pageToken: string;

                    /**
                     * Creates a new ListEnvironmentsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListEnvironmentsRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IListEnvironmentsRequest): google.cloud.dialogflow.v2.ListEnvironmentsRequest;

                    /**
                     * Encodes the specified ListEnvironmentsRequest message. Does not implicitly {@link google.cloud.dialogflow.v2.ListEnvironmentsRequest.verify|verify} messages.
                     * @param message ListEnvironmentsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IListEnvironmentsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListEnvironmentsRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.ListEnvironmentsRequest.verify|verify} messages.
                     * @param message ListEnvironmentsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.IListEnvironmentsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListEnvironmentsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListEnvironmentsRequest
                     * @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.cloud.dialogflow.v2.ListEnvironmentsRequest;

                    /**
                     * Decodes a ListEnvironmentsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListEnvironmentsRequest
                     * @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.cloud.dialogflow.v2.ListEnvironmentsRequest;

                    /**
                     * Verifies a ListEnvironmentsRequest 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 ListEnvironmentsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListEnvironmentsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.ListEnvironmentsRequest;

                    /**
                     * Creates a plain object from a ListEnvironmentsRequest message. Also converts values to other types if specified.
                     * @param message ListEnvironmentsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.ListEnvironmentsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListEnvironmentsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListEnvironmentsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListEnvironmentsResponse. */
                interface IListEnvironmentsResponse {

                    /** ListEnvironmentsResponse environments */
                    environments?: (google.cloud.dialogflow.v2.IEnvironment[]|null);

                    /** ListEnvironmentsResponse nextPageToken */
                    nextPageToken?: (string|null);
                }

                /** Represents a ListEnvironmentsResponse. */
                class ListEnvironmentsResponse implements IListEnvironmentsResponse {

                    /**
                     * Constructs a new ListEnvironmentsResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IListEnvironmentsResponse);

                    /** ListEnvironmentsResponse environments. */
                    public environments: google.cloud.dialogflow.v2.IEnvironment[];

                    /** ListEnvironmentsResponse nextPageToken. */
                    public nextPageToken: string;

                    /**
                     * Creates a new ListEnvironmentsResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListEnvironmentsResponse instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IListEnvironmentsResponse): google.cloud.dialogflow.v2.ListEnvironmentsResponse;

                    /**
                     * Encodes the specified ListEnvironmentsResponse message. Does not implicitly {@link google.cloud.dialogflow.v2.ListEnvironmentsResponse.verify|verify} messages.
                     * @param message ListEnvironmentsResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IListEnvironmentsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListEnvironmentsResponse message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.ListEnvironmentsResponse.verify|verify} messages.
                     * @param message ListEnvironmentsResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.IListEnvironmentsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListEnvironmentsResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListEnvironmentsResponse
                     * @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.cloud.dialogflow.v2.ListEnvironmentsResponse;

                    /**
                     * Decodes a ListEnvironmentsResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListEnvironmentsResponse
                     * @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.cloud.dialogflow.v2.ListEnvironmentsResponse;

                    /**
                     * Verifies a ListEnvironmentsResponse 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 ListEnvironmentsResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListEnvironmentsResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.ListEnvironmentsResponse;

                    /**
                     * Creates a plain object from a ListEnvironmentsResponse message. Also converts values to other types if specified.
                     * @param message ListEnvironmentsResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.ListEnvironmentsResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListEnvironmentsResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListEnvironmentsResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetEnvironmentRequest. */
                interface IGetEnvironmentRequest {

                    /** GetEnvironmentRequest name */
                    name?: (string|null);
                }

                /** Represents a GetEnvironmentRequest. */
                class GetEnvironmentRequest implements IGetEnvironmentRequest {

                    /**
                     * Constructs a new GetEnvironmentRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IGetEnvironmentRequest);

                    /** GetEnvironmentRequest name. */
                    public name: string;

                    /**
                     * Creates a new GetEnvironmentRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetEnvironmentRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IGetEnvironmentRequest): google.cloud.dialogflow.v2.GetEnvironmentRequest;

                    /**
                     * Encodes the specified GetEnvironmentRequest message. Does not implicitly {@link google.cloud.dialogflow.v2.GetEnvironmentRequest.verify|verify} messages.
                     * @param message GetEnvironmentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IGetEnvironmentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetEnvironmentRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.GetEnvironmentRequest.verify|verify} messages.
                     * @param message GetEnvironmentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.IGetEnvironmentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetEnvironmentRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetEnvironmentRequest
                     * @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.cloud.dialogflow.v2.GetEnvironmentRequest;

                    /**
                     * Decodes a GetEnvironmentRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetEnvironmentRequest
                     * @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.cloud.dialogflow.v2.GetEnvironmentRequest;

                    /**
                     * Verifies a GetEnvironmentRequest 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 GetEnvironmentRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetEnvironmentRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.GetEnvironmentRequest;

                    /**
                     * Creates a plain object from a GetEnvironmentRequest message. Also converts values to other types if specified.
                     * @param message GetEnvironmentRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.GetEnvironmentRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetEnvironmentRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetEnvironmentRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a CreateEnvironmentRequest. */
                interface ICreateEnvironmentRequest {

                    /** CreateEnvironmentRequest parent */
                    parent?: (string|null);

                    /** CreateEnvironmentRequest environment */
                    environment?: (google.cloud.dialogflow.v2.IEnvironment|null);

                    /** CreateEnvironmentRequest environmentId */
                    environmentId?: (string|null);
                }

                /** Represents a CreateEnvironmentRequest. */
                class CreateEnvironmentRequest implements ICreateEnvironmentRequest {

                    /**
                     * Constructs a new CreateEnvironmentRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.ICreateEnvironmentRequest);

                    /** CreateEnvironmentRequest parent. */
                    public parent: string;

                    /** CreateEnvironmentRequest environment. */
                    public environment?: (google.cloud.dialogflow.v2.IEnvironment|null);

                    /** CreateEnvironmentRequest environmentId. */
                    public environmentId: string;

                    /**
                     * Creates a new CreateEnvironmentRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CreateEnvironmentRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.ICreateEnvironmentRequest): google.cloud.dialogflow.v2.CreateEnvironmentRequest;

                    /**
                     * Encodes the specified CreateEnvironmentRequest message. Does not implicitly {@link google.cloud.dialogflow.v2.CreateEnvironmentRequest.verify|verify} messages.
                     * @param message CreateEnvironmentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.ICreateEnvironmentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CreateEnvironmentRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.CreateEnvironmentRequest.verify|verify} messages.
                     * @param message CreateEnvironmentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.ICreateEnvironmentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CreateEnvironmentRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CreateEnvironmentRequest
                     * @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.cloud.dialogflow.v2.CreateEnvironmentRequest;

                    /**
                     * Decodes a CreateEnvironmentRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CreateEnvironmentRequest
                     * @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.cloud.dialogflow.v2.CreateEnvironmentRequest;

                    /**
                     * Verifies a CreateEnvironmentRequest 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 CreateEnvironmentRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CreateEnvironmentRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.CreateEnvironmentRequest;

                    /**
                     * Creates a plain object from a CreateEnvironmentRequest message. Also converts values to other types if specified.
                     * @param message CreateEnvironmentRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.CreateEnvironmentRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CreateEnvironmentRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CreateEnvironmentRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an UpdateEnvironmentRequest. */
                interface IUpdateEnvironmentRequest {

                    /** UpdateEnvironmentRequest environment */
                    environment?: (google.cloud.dialogflow.v2.IEnvironment|null);

                    /** UpdateEnvironmentRequest updateMask */
                    updateMask?: (google.protobuf.IFieldMask|null);

                    /** UpdateEnvironmentRequest allowLoadToDraftAndDiscardChanges */
                    allowLoadToDraftAndDiscardChanges?: (boolean|null);
                }

                /** Represents an UpdateEnvironmentRequest. */
                class UpdateEnvironmentRequest implements IUpdateEnvironmentRequest {

                    /**
                     * Constructs a new UpdateEnvironmentRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IUpdateEnvironmentRequest);

                    /** UpdateEnvironmentRequest environment. */
                    public environment?: (google.cloud.dialogflow.v2.IEnvironment|null);

                    /** UpdateEnvironmentRequest updateMask. */
                    public updateMask?: (google.protobuf.IFieldMask|null);

                    /** UpdateEnvironmentRequest allowLoadToDraftAndDiscardChanges. */
                    public allowLoadToDraftAndDiscardChanges: boolean;

                    /**
                     * Creates a new UpdateEnvironmentRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UpdateEnvironmentRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IUpdateEnvironmentRequest): google.cloud.dialogflow.v2.UpdateEnvironmentRequest;

                    /**
                     * Encodes the specified UpdateEnvironmentRequest message. Does not implicitly {@link google.cloud.dialogflow.v2.UpdateEnvironmentRequest.verify|verify} messages.
                     * @param message UpdateEnvironmentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IUpdateEnvironmentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified UpdateEnvironmentRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.UpdateEnvironmentRequest.verify|verify} messages.
                     * @param message UpdateEnvironmentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.IUpdateEnvironmentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an UpdateEnvironmentRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns UpdateEnvironmentRequest
                     * @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.cloud.dialogflow.v2.UpdateEnvironmentRequest;

                    /**
                     * Decodes an UpdateEnvironmentRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns UpdateEnvironmentRequest
                     * @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.cloud.dialogflow.v2.UpdateEnvironmentRequest;

                    /**
                     * Verifies an UpdateEnvironmentRequest 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 UpdateEnvironmentRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UpdateEnvironmentRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.UpdateEnvironmentRequest;

                    /**
                     * Creates a plain object from an UpdateEnvironmentRequest message. Also converts values to other types if specified.
                     * @param message UpdateEnvironmentRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.UpdateEnvironmentRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this UpdateEnvironmentRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for UpdateEnvironmentRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteEnvironmentRequest. */
                interface IDeleteEnvironmentRequest {

                    /** DeleteEnvironmentRequest name */
                    name?: (string|null);
                }

                /** Represents a DeleteEnvironmentRequest. */
                class DeleteEnvironmentRequest implements IDeleteEnvironmentRequest {

                    /**
                     * Constructs a new DeleteEnvironmentRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IDeleteEnvironmentRequest);

                    /** DeleteEnvironmentRequest name. */
                    public name: string;

                    /**
                     * Creates a new DeleteEnvironmentRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteEnvironmentRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IDeleteEnvironmentRequest): google.cloud.dialogflow.v2.DeleteEnvironmentRequest;

                    /**
                     * Encodes the specified DeleteEnvironmentRequest message. Does not implicitly {@link google.cloud.dialogflow.v2.DeleteEnvironmentRequest.verify|verify} messages.
                     * @param message DeleteEnvironmentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IDeleteEnvironmentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteEnvironmentRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.DeleteEnvironmentRequest.verify|verify} messages.
                     * @param message DeleteEnvironmentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.IDeleteEnvironmentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteEnvironmentRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteEnvironmentRequest
                     * @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.cloud.dialogflow.v2.DeleteEnvironmentRequest;

                    /**
                     * Decodes a DeleteEnvironmentRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteEnvironmentRequest
                     * @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.cloud.dialogflow.v2.DeleteEnvironmentRequest;

                    /**
                     * Verifies a DeleteEnvironmentRequest 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 DeleteEnvironmentRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteEnvironmentRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.DeleteEnvironmentRequest;

                    /**
                     * Creates a plain object from a DeleteEnvironmentRequest message. Also converts values to other types if specified.
                     * @param message DeleteEnvironmentRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.DeleteEnvironmentRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteEnvironmentRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteEnvironmentRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetEnvironmentHistoryRequest. */
                interface IGetEnvironmentHistoryRequest {

                    /** GetEnvironmentHistoryRequest parent */
                    parent?: (string|null);

                    /** GetEnvironmentHistoryRequest pageSize */
                    pageSize?: (number|null);

                    /** GetEnvironmentHistoryRequest pageToken */
                    pageToken?: (string|null);
                }

                /** Represents a GetEnvironmentHistoryRequest. */
                class GetEnvironmentHistoryRequest implements IGetEnvironmentHistoryRequest {

                    /**
                     * Constructs a new GetEnvironmentHistoryRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IGetEnvironmentHistoryRequest);

                    /** GetEnvironmentHistoryRequest parent. */
                    public parent: string;

                    /** GetEnvironmentHistoryRequest pageSize. */
                    public pageSize: number;

                    /** GetEnvironmentHistoryRequest pageToken. */
                    public pageToken: string;

                    /**
                     * Creates a new GetEnvironmentHistoryRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetEnvironmentHistoryRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IGetEnvironmentHistoryRequest): google.cloud.dialogflow.v2.GetEnvironmentHistoryRequest;

                    /**
                     * Encodes the specified GetEnvironmentHistoryRequest message. Does not implicitly {@link google.cloud.dialogflow.v2.GetEnvironmentHistoryRequest.verify|verify} messages.
                     * @param message GetEnvironmentHistoryRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IGetEnvironmentHistoryRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetEnvironmentHistoryRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.GetEnvironmentHistoryRequest.verify|verify} messages.
                     * @param message GetEnvironmentHistoryRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.IGetEnvironmentHistoryRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetEnvironmentHistoryRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetEnvironmentHistoryRequest
                     * @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.cloud.dialogflow.v2.GetEnvironmentHistoryRequest;

                    /**
                     * Decodes a GetEnvironmentHistoryRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetEnvironmentHistoryRequest
                     * @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.cloud.dialogflow.v2.GetEnvironmentHistoryRequest;

                    /**
                     * Verifies a GetEnvironmentHistoryRequest 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 GetEnvironmentHistoryRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetEnvironmentHistoryRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.GetEnvironmentHistoryRequest;

                    /**
                     * Creates a plain object from a GetEnvironmentHistoryRequest message. Also converts values to other types if specified.
                     * @param message GetEnvironmentHistoryRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.GetEnvironmentHistoryRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetEnvironmentHistoryRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetEnvironmentHistoryRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an EnvironmentHistory. */
                interface IEnvironmentHistory {

                    /** EnvironmentHistory parent */
                    parent?: (string|null);

                    /** EnvironmentHistory entries */
                    entries?: (google.cloud.dialogflow.v2.EnvironmentHistory.IEntry[]|null);

                    /** EnvironmentHistory nextPageToken */
                    nextPageToken?: (string|null);
                }

                /** Represents an EnvironmentHistory. */
                class EnvironmentHistory implements IEnvironmentHistory {

                    /**
                     * Constructs a new EnvironmentHistory.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IEnvironmentHistory);

                    /** EnvironmentHistory parent. */
                    public parent: string;

                    /** EnvironmentHistory entries. */
                    public entries: google.cloud.dialogflow.v2.EnvironmentHistory.IEntry[];

                    /** EnvironmentHistory nextPageToken. */
                    public nextPageToken: string;

                    /**
                     * Creates a new EnvironmentHistory instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns EnvironmentHistory instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IEnvironmentHistory): google.cloud.dialogflow.v2.EnvironmentHistory;

                    /**
                     * Encodes the specified EnvironmentHistory message. Does not implicitly {@link google.cloud.dialogflow.v2.EnvironmentHistory.verify|verify} messages.
                     * @param message EnvironmentHistory message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IEnvironmentHistory, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified EnvironmentHistory message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.EnvironmentHistory.verify|verify} messages.
                     * @param message EnvironmentHistory message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.IEnvironmentHistory, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an EnvironmentHistory message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns EnvironmentHistory
                     * @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.cloud.dialogflow.v2.EnvironmentHistory;

                    /**
                     * Decodes an EnvironmentHistory message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns EnvironmentHistory
                     * @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.cloud.dialogflow.v2.EnvironmentHistory;

                    /**
                     * Verifies an EnvironmentHistory 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 EnvironmentHistory message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns EnvironmentHistory
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.EnvironmentHistory;

                    /**
                     * Creates a plain object from an EnvironmentHistory message. Also converts values to other types if specified.
                     * @param message EnvironmentHistory
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.EnvironmentHistory, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this EnvironmentHistory to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for EnvironmentHistory
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace EnvironmentHistory {

                    /** Properties of an Entry. */
                    interface IEntry {

                        /** Entry agentVersion */
                        agentVersion?: (string|null);

                        /** Entry description */
                        description?: (string|null);

                        /** Entry createTime */
                        createTime?: (google.protobuf.ITimestamp|null);
                    }

                    /** Represents an Entry. */
                    class Entry implements IEntry {

                        /**
                         * Constructs a new Entry.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2.EnvironmentHistory.IEntry);

                        /** Entry agentVersion. */
                        public agentVersion: string;

                        /** Entry description. */
                        public description: string;

                        /** Entry createTime. */
                        public createTime?: (google.protobuf.ITimestamp|null);

                        /**
                         * Creates a new Entry instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns Entry instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2.EnvironmentHistory.IEntry): google.cloud.dialogflow.v2.EnvironmentHistory.Entry;

                        /**
                         * Encodes the specified Entry message. Does not implicitly {@link google.cloud.dialogflow.v2.EnvironmentHistory.Entry.verify|verify} messages.
                         * @param message Entry message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2.EnvironmentHistory.IEntry, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified Entry message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.EnvironmentHistory.Entry.verify|verify} messages.
                         * @param message Entry message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2.EnvironmentHistory.IEntry, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes an Entry message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns Entry
                         * @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.cloud.dialogflow.v2.EnvironmentHistory.Entry;

                        /**
                         * Decodes an Entry message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns Entry
                         * @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.cloud.dialogflow.v2.EnvironmentHistory.Entry;

                        /**
                         * Verifies an Entry 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 Entry message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns Entry
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.EnvironmentHistory.Entry;

                        /**
                         * Creates a plain object from an Entry message. Also converts values to other types if specified.
                         * @param message Entry
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.dialogflow.v2.EnvironmentHistory.Entry, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this Entry to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for Entry
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }
                }

                /** Represents a Fulfillments */
                class Fulfillments extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new Fulfillments 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 Fulfillments 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): Fulfillments;

                    /**
                     * Calls GetFulfillment.
                     * @param request GetFulfillmentRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Fulfillment
                     */
                    public getFulfillment(request: google.cloud.dialogflow.v2.IGetFulfillmentRequest, callback: google.cloud.dialogflow.v2.Fulfillments.GetFulfillmentCallback): void;

                    /**
                     * Calls GetFulfillment.
                     * @param request GetFulfillmentRequest message or plain object
                     * @returns Promise
                     */
                    public getFulfillment(request: google.cloud.dialogflow.v2.IGetFulfillmentRequest): Promise<google.cloud.dialogflow.v2.Fulfillment>;

                    /**
                     * Calls UpdateFulfillment.
                     * @param request UpdateFulfillmentRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Fulfillment
                     */
                    public updateFulfillment(request: google.cloud.dialogflow.v2.IUpdateFulfillmentRequest, callback: google.cloud.dialogflow.v2.Fulfillments.UpdateFulfillmentCallback): void;

                    /**
                     * Calls UpdateFulfillment.
                     * @param request UpdateFulfillmentRequest message or plain object
                     * @returns Promise
                     */
                    public updateFulfillment(request: google.cloud.dialogflow.v2.IUpdateFulfillmentRequest): Promise<google.cloud.dialogflow.v2.Fulfillment>;
                }

                namespace Fulfillments {

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2.Fulfillments|getFulfillment}.
                     * @param error Error, if any
                     * @param [response] Fulfillment
                     */
                    type GetFulfillmentCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2.Fulfillment) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2.Fulfillments|updateFulfillment}.
                     * @param error Error, if any
                     * @param [response] Fulfillment
                     */
                    type UpdateFulfillmentCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2.Fulfillment) => void;
                }

                /** Properties of a Fulfillment. */
                interface IFulfillment {

                    /** Fulfillment name */
                    name?: (string|null);

                    /** Fulfillment displayName */
                    displayName?: (string|null);

                    /** Fulfillment genericWebService */
                    genericWebService?: (google.cloud.dialogflow.v2.Fulfillment.IGenericWebService|null);

                    /** Fulfillment enabled */
                    enabled?: (boolean|null);

                    /** Fulfillment features */
                    features?: (google.cloud.dialogflow.v2.Fulfillment.IFeature[]|null);
                }

                /** Represents a Fulfillment. */
                class Fulfillment implements IFulfillment {

                    /**
                     * Constructs a new Fulfillment.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IFulfillment);

                    /** Fulfillment name. */
                    public name: string;

                    /** Fulfillment displayName. */
                    public displayName: string;

                    /** Fulfillment genericWebService. */
                    public genericWebService?: (google.cloud.dialogflow.v2.Fulfillment.IGenericWebService|null);

                    /** Fulfillment enabled. */
                    public enabled: boolean;

                    /** Fulfillment features. */
                    public features: google.cloud.dialogflow.v2.Fulfillment.IFeature[];

                    /** Fulfillment fulfillment. */
                    public fulfillment?: "genericWebService";

                    /**
                     * Creates a new Fulfillment instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Fulfillment instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IFulfillment): google.cloud.dialogflow.v2.Fulfillment;

                    /**
                     * Encodes the specified Fulfillment message. Does not implicitly {@link google.cloud.dialogflow.v2.Fulfillment.verify|verify} messages.
                     * @param message Fulfillment message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IFulfillment, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Fulfillment message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.Fulfillment.verify|verify} messages.
                     * @param message Fulfillment message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.IFulfillment, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a Fulfillment message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Fulfillment
                     * @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.cloud.dialogflow.v2.Fulfillment;

                    /**
                     * Decodes a Fulfillment message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Fulfillment
                     * @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.cloud.dialogflow.v2.Fulfillment;

                    /**
                     * Verifies a Fulfillment 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 Fulfillment message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Fulfillment
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.Fulfillment;

                    /**
                     * Creates a plain object from a Fulfillment message. Also converts values to other types if specified.
                     * @param message Fulfillment
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.Fulfillment, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Fulfillment to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Fulfillment
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace Fulfillment {

                    /** Properties of a GenericWebService. */
                    interface IGenericWebService {

                        /** GenericWebService uri */
                        uri?: (string|null);

                        /** GenericWebService username */
                        username?: (string|null);

                        /** GenericWebService password */
                        password?: (string|null);

                        /** GenericWebService requestHeaders */
                        requestHeaders?: ({ [k: string]: string }|null);

                        /** GenericWebService isCloudFunction */
                        isCloudFunction?: (boolean|null);
                    }

                    /** Represents a GenericWebService. */
                    class GenericWebService implements IGenericWebService {

                        /**
                         * Constructs a new GenericWebService.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2.Fulfillment.IGenericWebService);

                        /** GenericWebService uri. */
                        public uri: string;

                        /** GenericWebService username. */
                        public username: string;

                        /** GenericWebService password. */
                        public password: string;

                        /** GenericWebService requestHeaders. */
                        public requestHeaders: { [k: string]: string };

                        /** GenericWebService isCloudFunction. */
                        public isCloudFunction: boolean;

                        /**
                         * Creates a new GenericWebService instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns GenericWebService instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2.Fulfillment.IGenericWebService): google.cloud.dialogflow.v2.Fulfillment.GenericWebService;

                        /**
                         * Encodes the specified GenericWebService message. Does not implicitly {@link google.cloud.dialogflow.v2.Fulfillment.GenericWebService.verify|verify} messages.
                         * @param message GenericWebService message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2.Fulfillment.IGenericWebService, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified GenericWebService message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.Fulfillment.GenericWebService.verify|verify} messages.
                         * @param message GenericWebService message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2.Fulfillment.IGenericWebService, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a GenericWebService message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns GenericWebService
                         * @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.cloud.dialogflow.v2.Fulfillment.GenericWebService;

                        /**
                         * Decodes a GenericWebService message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns GenericWebService
                         * @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.cloud.dialogflow.v2.Fulfillment.GenericWebService;

                        /**
                         * Verifies a GenericWebService 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 GenericWebService message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns GenericWebService
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.Fulfillment.GenericWebService;

                        /**
                         * Creates a plain object from a GenericWebService message. Also converts values to other types if specified.
                         * @param message GenericWebService
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.dialogflow.v2.Fulfillment.GenericWebService, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this GenericWebService to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for GenericWebService
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    /** Properties of a Feature. */
                    interface IFeature {

                        /** Feature type */
                        type?: (google.cloud.dialogflow.v2.Fulfillment.Feature.Type|keyof typeof google.cloud.dialogflow.v2.Fulfillment.Feature.Type|null);
                    }

                    /** Represents a Feature. */
                    class Feature implements IFeature {

                        /**
                         * Constructs a new Feature.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2.Fulfillment.IFeature);

                        /** Feature type. */
                        public type: (google.cloud.dialogflow.v2.Fulfillment.Feature.Type|keyof typeof google.cloud.dialogflow.v2.Fulfillment.Feature.Type);

                        /**
                         * Creates a new Feature instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns Feature instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2.Fulfillment.IFeature): google.cloud.dialogflow.v2.Fulfillment.Feature;

                        /**
                         * Encodes the specified Feature message. Does not implicitly {@link google.cloud.dialogflow.v2.Fulfillment.Feature.verify|verify} messages.
                         * @param message Feature message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2.Fulfillment.IFeature, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified Feature message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.Fulfillment.Feature.verify|verify} messages.
                         * @param message Feature message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2.Fulfillment.IFeature, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a Feature message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns Feature
                         * @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.cloud.dialogflow.v2.Fulfillment.Feature;

                        /**
                         * Decodes a Feature message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns Feature
                         * @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.cloud.dialogflow.v2.Fulfillment.Feature;

                        /**
                         * Verifies a Feature 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 Feature message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns Feature
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.Fulfillment.Feature;

                        /**
                         * Creates a plain object from a Feature message. Also converts values to other types if specified.
                         * @param message Feature
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.dialogflow.v2.Fulfillment.Feature, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this Feature to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for Feature
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    namespace Feature {

                        /** Type enum. */
                        enum Type {
                            TYPE_UNSPECIFIED = 0,
                            SMALLTALK = 1
                        }
                    }
                }

                /** Properties of a GetFulfillmentRequest. */
                interface IGetFulfillmentRequest {

                    /** GetFulfillmentRequest name */
                    name?: (string|null);
                }

                /** Represents a GetFulfillmentRequest. */
                class GetFulfillmentRequest implements IGetFulfillmentRequest {

                    /**
                     * Constructs a new GetFulfillmentRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IGetFulfillmentRequest);

                    /** GetFulfillmentRequest name. */
                    public name: string;

                    /**
                     * Creates a new GetFulfillmentRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetFulfillmentRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IGetFulfillmentRequest): google.cloud.dialogflow.v2.GetFulfillmentRequest;

                    /**
                     * Encodes the specified GetFulfillmentRequest message. Does not implicitly {@link google.cloud.dialogflow.v2.GetFulfillmentRequest.verify|verify} messages.
                     * @param message GetFulfillmentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IGetFulfillmentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetFulfillmentRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.GetFulfillmentRequest.verify|verify} messages.
                     * @param message GetFulfillmentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.IGetFulfillmentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetFulfillmentRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetFulfillmentRequest
                     * @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.cloud.dialogflow.v2.GetFulfillmentRequest;

                    /**
                     * Decodes a GetFulfillmentRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetFulfillmentRequest
                     * @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.cloud.dialogflow.v2.GetFulfillmentRequest;

                    /**
                     * Verifies a GetFulfillmentRequest 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 GetFulfillmentRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetFulfillmentRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.GetFulfillmentRequest;

                    /**
                     * Creates a plain object from a GetFulfillmentRequest message. Also converts values to other types if specified.
                     * @param message GetFulfillmentRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.GetFulfillmentRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetFulfillmentRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetFulfillmentRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an UpdateFulfillmentRequest. */
                interface IUpdateFulfillmentRequest {

                    /** UpdateFulfillmentRequest fulfillment */
                    fulfillment?: (google.cloud.dialogflow.v2.IFulfillment|null);

                    /** UpdateFulfillmentRequest updateMask */
                    updateMask?: (google.protobuf.IFieldMask|null);
                }

                /** Represents an UpdateFulfillmentRequest. */
                class UpdateFulfillmentRequest implements IUpdateFulfillmentRequest {

                    /**
                     * Constructs a new UpdateFulfillmentRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IUpdateFulfillmentRequest);

                    /** UpdateFulfillmentRequest fulfillment. */
                    public fulfillment?: (google.cloud.dialogflow.v2.IFulfillment|null);

                    /** UpdateFulfillmentRequest updateMask. */
                    public updateMask?: (google.protobuf.IFieldMask|null);

                    /**
                     * Creates a new UpdateFulfillmentRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UpdateFulfillmentRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IUpdateFulfillmentRequest): google.cloud.dialogflow.v2.UpdateFulfillmentRequest;

                    /**
                     * Encodes the specified UpdateFulfillmentRequest message. Does not implicitly {@link google.cloud.dialogflow.v2.UpdateFulfillmentRequest.verify|verify} messages.
                     * @param message UpdateFulfillmentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IUpdateFulfillmentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified UpdateFulfillmentRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.UpdateFulfillmentRequest.verify|verify} messages.
                     * @param message UpdateFulfillmentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.IUpdateFulfillmentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an UpdateFulfillmentRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns UpdateFulfillmentRequest
                     * @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.cloud.dialogflow.v2.UpdateFulfillmentRequest;

                    /**
                     * Decodes an UpdateFulfillmentRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns UpdateFulfillmentRequest
                     * @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.cloud.dialogflow.v2.UpdateFulfillmentRequest;

                    /**
                     * Verifies an UpdateFulfillmentRequest 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 UpdateFulfillmentRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UpdateFulfillmentRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.UpdateFulfillmentRequest;

                    /**
                     * Creates a plain object from an UpdateFulfillmentRequest message. Also converts values to other types if specified.
                     * @param message UpdateFulfillmentRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.UpdateFulfillmentRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this UpdateFulfillmentRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for UpdateFulfillmentRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Represents a GeneratorEvaluations */
                class GeneratorEvaluations extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new GeneratorEvaluations 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 GeneratorEvaluations 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): GeneratorEvaluations;

                    /**
                     * Calls CreateGeneratorEvaluation.
                     * @param request CreateGeneratorEvaluationRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public createGeneratorEvaluation(request: google.cloud.dialogflow.v2.ICreateGeneratorEvaluationRequest, callback: google.cloud.dialogflow.v2.GeneratorEvaluations.CreateGeneratorEvaluationCallback): void;

                    /**
                     * Calls CreateGeneratorEvaluation.
                     * @param request CreateGeneratorEvaluationRequest message or plain object
                     * @returns Promise
                     */
                    public createGeneratorEvaluation(request: google.cloud.dialogflow.v2.ICreateGeneratorEvaluationRequest): Promise<google.longrunning.Operation>;

                    /**
                     * Calls GetGeneratorEvaluation.
                     * @param request GetGeneratorEvaluationRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and GeneratorEvaluation
                     */
                    public getGeneratorEvaluation(request: google.cloud.dialogflow.v2.IGetGeneratorEvaluationRequest, callback: google.cloud.dialogflow.v2.GeneratorEvaluations.GetGeneratorEvaluationCallback): void;

                    /**
                     * Calls GetGeneratorEvaluation.
                     * @param request GetGeneratorEvaluationRequest message or plain object
                     * @returns Promise
                     */
                    public getGeneratorEvaluation(request: google.cloud.dialogflow.v2.IGetGeneratorEvaluationRequest): Promise<google.cloud.dialogflow.v2.GeneratorEvaluation>;

                    /**
                     * Calls ListGeneratorEvaluations.
                     * @param request ListGeneratorEvaluationsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ListGeneratorEvaluationsResponse
                     */
                    public listGeneratorEvaluations(request: google.cloud.dialogflow.v2.IListGeneratorEvaluationsRequest, callback: google.cloud.dialogflow.v2.GeneratorEvaluations.ListGeneratorEvaluationsCallback): void;

                    /**
                     * Calls ListGeneratorEvaluations.
                     * @param request ListGeneratorEvaluationsRequest message or plain object
                     * @returns Promise
                     */
                    public listGeneratorEvaluations(request: google.cloud.dialogflow.v2.IListGeneratorEvaluationsRequest): Promise<google.cloud.dialogflow.v2.ListGeneratorEvaluationsResponse>;

                    /**
                     * Calls DeleteGeneratorEvaluation.
                     * @param request DeleteGeneratorEvaluationRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Empty
                     */
                    public deleteGeneratorEvaluation(request: google.cloud.dialogflow.v2.IDeleteGeneratorEvaluationRequest, callback: google.cloud.dialogflow.v2.GeneratorEvaluations.DeleteGeneratorEvaluationCallback): void;

                    /**
                     * Calls DeleteGeneratorEvaluation.
                     * @param request DeleteGeneratorEvaluationRequest message or plain object
                     * @returns Promise
                     */
                    public deleteGeneratorEvaluation(request: google.cloud.dialogflow.v2.IDeleteGeneratorEvaluationRequest): Promise<google.protobuf.Empty>;
                }

                namespace GeneratorEvaluations {

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2.GeneratorEvaluations|createGeneratorEvaluation}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type CreateGeneratorEvaluationCallback = (error: (Error|null), response?: google.longrunning.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2.GeneratorEvaluations|getGeneratorEvaluation}.
                     * @param error Error, if any
                     * @param [response] GeneratorEvaluation
                     */
                    type GetGeneratorEvaluationCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2.GeneratorEvaluation) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2.GeneratorEvaluations|listGeneratorEvaluations}.
                     * @param error Error, if any
                     * @param [response] ListGeneratorEvaluationsResponse
                     */
                    type ListGeneratorEvaluationsCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2.ListGeneratorEvaluationsResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2.GeneratorEvaluations|deleteGeneratorEvaluation}.
                     * @param error Error, if any
                     * @param [response] Empty
                     */
                    type DeleteGeneratorEvaluationCallback = (error: (Error|null), response?: google.protobuf.Empty) => void;
                }

                /** Properties of a CreateGeneratorEvaluationRequest. */
                interface ICreateGeneratorEvaluationRequest {

                    /** CreateGeneratorEvaluationRequest parent */
                    parent?: (string|null);

                    /** CreateGeneratorEvaluationRequest generatorEvaluation */
                    generatorEvaluation?: (google.cloud.dialogflow.v2.IGeneratorEvaluation|null);
                }

                /** Represents a CreateGeneratorEvaluationRequest. */
                class CreateGeneratorEvaluationRequest implements ICreateGeneratorEvaluationRequest {

                    /**
                     * Constructs a new CreateGeneratorEvaluationRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.ICreateGeneratorEvaluationRequest);

                    /** CreateGeneratorEvaluationRequest parent. */
                    public parent: string;

                    /** CreateGeneratorEvaluationRequest generatorEvaluation. */
                    public generatorEvaluation?: (google.cloud.dialogflow.v2.IGeneratorEvaluation|null);

                    /**
                     * Creates a new CreateGeneratorEvaluationRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CreateGeneratorEvaluationRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.ICreateGeneratorEvaluationRequest): google.cloud.dialogflow.v2.CreateGeneratorEvaluationRequest;

                    /**
                     * Encodes the specified CreateGeneratorEvaluationRequest message. Does not implicitly {@link google.cloud.dialogflow.v2.CreateGeneratorEvaluationRequest.verify|verify} messages.
                     * @param message CreateGeneratorEvaluationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.ICreateGeneratorEvaluationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CreateGeneratorEvaluationRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.CreateGeneratorEvaluationRequest.verify|verify} messages.
                     * @param message CreateGeneratorEvaluationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.ICreateGeneratorEvaluationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CreateGeneratorEvaluationRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CreateGeneratorEvaluationRequest
                     * @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.cloud.dialogflow.v2.CreateGeneratorEvaluationRequest;

                    /**
                     * Decodes a CreateGeneratorEvaluationRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CreateGeneratorEvaluationRequest
                     * @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.cloud.dialogflow.v2.CreateGeneratorEvaluationRequest;

                    /**
                     * Verifies a CreateGeneratorEvaluationRequest 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 CreateGeneratorEvaluationRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CreateGeneratorEvaluationRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.CreateGeneratorEvaluationRequest;

                    /**
                     * Creates a plain object from a CreateGeneratorEvaluationRequest message. Also converts values to other types if specified.
                     * @param message CreateGeneratorEvaluationRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.CreateGeneratorEvaluationRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CreateGeneratorEvaluationRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CreateGeneratorEvaluationRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetGeneratorEvaluationRequest. */
                interface IGetGeneratorEvaluationRequest {

                    /** GetGeneratorEvaluationRequest name */
                    name?: (string|null);
                }

                /** Represents a GetGeneratorEvaluationRequest. */
                class GetGeneratorEvaluationRequest implements IGetGeneratorEvaluationRequest {

                    /**
                     * Constructs a new GetGeneratorEvaluationRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IGetGeneratorEvaluationRequest);

                    /** GetGeneratorEvaluationRequest name. */
                    public name: string;

                    /**
                     * Creates a new GetGeneratorEvaluationRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetGeneratorEvaluationRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IGetGeneratorEvaluationRequest): google.cloud.dialogflow.v2.GetGeneratorEvaluationRequest;

                    /**
                     * Encodes the specified GetGeneratorEvaluationRequest message. Does not implicitly {@link google.cloud.dialogflow.v2.GetGeneratorEvaluationRequest.verify|verify} messages.
                     * @param message GetGeneratorEvaluationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IGetGeneratorEvaluationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetGeneratorEvaluationRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.GetGeneratorEvaluationRequest.verify|verify} messages.
                     * @param message GetGeneratorEvaluationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.IGetGeneratorEvaluationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetGeneratorEvaluationRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetGeneratorEvaluationRequest
                     * @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.cloud.dialogflow.v2.GetGeneratorEvaluationRequest;

                    /**
                     * Decodes a GetGeneratorEvaluationRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetGeneratorEvaluationRequest
                     * @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.cloud.dialogflow.v2.GetGeneratorEvaluationRequest;

                    /**
                     * Verifies a GetGeneratorEvaluationRequest 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 GetGeneratorEvaluationRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetGeneratorEvaluationRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.GetGeneratorEvaluationRequest;

                    /**
                     * Creates a plain object from a GetGeneratorEvaluationRequest message. Also converts values to other types if specified.
                     * @param message GetGeneratorEvaluationRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.GetGeneratorEvaluationRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetGeneratorEvaluationRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetGeneratorEvaluationRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListGeneratorEvaluationsRequest. */
                interface IListGeneratorEvaluationsRequest {

                    /** ListGeneratorEvaluationsRequest parent */
                    parent?: (string|null);

                    /** ListGeneratorEvaluationsRequest pageSize */
                    pageSize?: (number|null);

                    /** ListGeneratorEvaluationsRequest pageToken */
                    pageToken?: (string|null);
                }

                /** Represents a ListGeneratorEvaluationsRequest. */
                class ListGeneratorEvaluationsRequest implements IListGeneratorEvaluationsRequest {

                    /**
                     * Constructs a new ListGeneratorEvaluationsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IListGeneratorEvaluationsRequest);

                    /** ListGeneratorEvaluationsRequest parent. */
                    public parent: string;

                    /** ListGeneratorEvaluationsRequest pageSize. */
                    public pageSize: number;

                    /** ListGeneratorEvaluationsRequest pageToken. */
                    public pageToken: string;

                    /**
                     * Creates a new ListGeneratorEvaluationsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListGeneratorEvaluationsRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IListGeneratorEvaluationsRequest): google.cloud.dialogflow.v2.ListGeneratorEvaluationsRequest;

                    /**
                     * Encodes the specified ListGeneratorEvaluationsRequest message. Does not implicitly {@link google.cloud.dialogflow.v2.ListGeneratorEvaluationsRequest.verify|verify} messages.
                     * @param message ListGeneratorEvaluationsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IListGeneratorEvaluationsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListGeneratorEvaluationsRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.ListGeneratorEvaluationsRequest.verify|verify} messages.
                     * @param message ListGeneratorEvaluationsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.IListGeneratorEvaluationsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListGeneratorEvaluationsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListGeneratorEvaluationsRequest
                     * @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.cloud.dialogflow.v2.ListGeneratorEvaluationsRequest;

                    /**
                     * Decodes a ListGeneratorEvaluationsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListGeneratorEvaluationsRequest
                     * @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.cloud.dialogflow.v2.ListGeneratorEvaluationsRequest;

                    /**
                     * Verifies a ListGeneratorEvaluationsRequest 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 ListGeneratorEvaluationsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListGeneratorEvaluationsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.ListGeneratorEvaluationsRequest;

                    /**
                     * Creates a plain object from a ListGeneratorEvaluationsRequest message. Also converts values to other types if specified.
                     * @param message ListGeneratorEvaluationsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.ListGeneratorEvaluationsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListGeneratorEvaluationsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListGeneratorEvaluationsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListGeneratorEvaluationsResponse. */
                interface IListGeneratorEvaluationsResponse {

                    /** ListGeneratorEvaluationsResponse generatorEvaluations */
                    generatorEvaluations?: (google.cloud.dialogflow.v2.IGeneratorEvaluation[]|null);

                    /** ListGeneratorEvaluationsResponse nextPageToken */
                    nextPageToken?: (string|null);
                }

                /** Represents a ListGeneratorEvaluationsResponse. */
                class ListGeneratorEvaluationsResponse implements IListGeneratorEvaluationsResponse {

                    /**
                     * Constructs a new ListGeneratorEvaluationsResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IListGeneratorEvaluationsResponse);

                    /** ListGeneratorEvaluationsResponse generatorEvaluations. */
                    public generatorEvaluations: google.cloud.dialogflow.v2.IGeneratorEvaluation[];

                    /** ListGeneratorEvaluationsResponse nextPageToken. */
                    public nextPageToken: string;

                    /**
                     * Creates a new ListGeneratorEvaluationsResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListGeneratorEvaluationsResponse instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IListGeneratorEvaluationsResponse): google.cloud.dialogflow.v2.ListGeneratorEvaluationsResponse;

                    /**
                     * Encodes the specified ListGeneratorEvaluationsResponse message. Does not implicitly {@link google.cloud.dialogflow.v2.ListGeneratorEvaluationsResponse.verify|verify} messages.
                     * @param message ListGeneratorEvaluationsResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IListGeneratorEvaluationsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListGeneratorEvaluationsResponse message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.ListGeneratorEvaluationsResponse.verify|verify} messages.
                     * @param message ListGeneratorEvaluationsResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.IListGeneratorEvaluationsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListGeneratorEvaluationsResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListGeneratorEvaluationsResponse
                     * @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.cloud.dialogflow.v2.ListGeneratorEvaluationsResponse;

                    /**
                     * Decodes a ListGeneratorEvaluationsResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListGeneratorEvaluationsResponse
                     * @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.cloud.dialogflow.v2.ListGeneratorEvaluationsResponse;

                    /**
                     * Verifies a ListGeneratorEvaluationsResponse 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 ListGeneratorEvaluationsResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListGeneratorEvaluationsResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.ListGeneratorEvaluationsResponse;

                    /**
                     * Creates a plain object from a ListGeneratorEvaluationsResponse message. Also converts values to other types if specified.
                     * @param message ListGeneratorEvaluationsResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.ListGeneratorEvaluationsResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListGeneratorEvaluationsResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListGeneratorEvaluationsResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteGeneratorEvaluationRequest. */
                interface IDeleteGeneratorEvaluationRequest {

                    /** DeleteGeneratorEvaluationRequest name */
                    name?: (string|null);
                }

                /** Represents a DeleteGeneratorEvaluationRequest. */
                class DeleteGeneratorEvaluationRequest implements IDeleteGeneratorEvaluationRequest {

                    /**
                     * Constructs a new DeleteGeneratorEvaluationRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IDeleteGeneratorEvaluationRequest);

                    /** DeleteGeneratorEvaluationRequest name. */
                    public name: string;

                    /**
                     * Creates a new DeleteGeneratorEvaluationRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteGeneratorEvaluationRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IDeleteGeneratorEvaluationRequest): google.cloud.dialogflow.v2.DeleteGeneratorEvaluationRequest;

                    /**
                     * Encodes the specified DeleteGeneratorEvaluationRequest message. Does not implicitly {@link google.cloud.dialogflow.v2.DeleteGeneratorEvaluationRequest.verify|verify} messages.
                     * @param message DeleteGeneratorEvaluationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IDeleteGeneratorEvaluationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteGeneratorEvaluationRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.DeleteGeneratorEvaluationRequest.verify|verify} messages.
                     * @param message DeleteGeneratorEvaluationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.IDeleteGeneratorEvaluationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteGeneratorEvaluationRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteGeneratorEvaluationRequest
                     * @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.cloud.dialogflow.v2.DeleteGeneratorEvaluationRequest;

                    /**
                     * Decodes a DeleteGeneratorEvaluationRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteGeneratorEvaluationRequest
                     * @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.cloud.dialogflow.v2.DeleteGeneratorEvaluationRequest;

                    /**
                     * Verifies a DeleteGeneratorEvaluationRequest 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 DeleteGeneratorEvaluationRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteGeneratorEvaluationRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.DeleteGeneratorEvaluationRequest;

                    /**
                     * Creates a plain object from a DeleteGeneratorEvaluationRequest message. Also converts values to other types if specified.
                     * @param message DeleteGeneratorEvaluationRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.DeleteGeneratorEvaluationRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteGeneratorEvaluationRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteGeneratorEvaluationRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GeneratorEvaluation. */
                interface IGeneratorEvaluation {

                    /** GeneratorEvaluation name */
                    name?: (string|null);

                    /** GeneratorEvaluation displayName */
                    displayName?: (string|null);

                    /** GeneratorEvaluation generatorEvaluationConfig */
                    generatorEvaluationConfig?: (google.cloud.dialogflow.v2.IGeneratorEvaluationConfig|null);

                    /** GeneratorEvaluation createTime */
                    createTime?: (google.protobuf.ITimestamp|null);

                    /** GeneratorEvaluation completeTime */
                    completeTime?: (google.protobuf.ITimestamp|null);

                    /** GeneratorEvaluation initialGenerator */
                    initialGenerator?: (google.cloud.dialogflow.v2.IGenerator|null);

                    /** GeneratorEvaluation summarizationMetrics */
                    summarizationMetrics?: (google.cloud.dialogflow.v2.ISummarizationEvaluationMetrics|null);

                    /** GeneratorEvaluation evaluationStatus */
                    evaluationStatus?: (google.cloud.dialogflow.v2.IEvaluationStatus|null);

                    /** GeneratorEvaluation satisfiesPzs */
                    satisfiesPzs?: (boolean|null);

                    /** GeneratorEvaluation satisfiesPzi */
                    satisfiesPzi?: (boolean|null);
                }

                /** Represents a GeneratorEvaluation. */
                class GeneratorEvaluation implements IGeneratorEvaluation {

                    /**
                     * Constructs a new GeneratorEvaluation.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IGeneratorEvaluation);

                    /** GeneratorEvaluation name. */
                    public name: string;

                    /** GeneratorEvaluation displayName. */
                    public displayName: string;

                    /** GeneratorEvaluation generatorEvaluationConfig. */
                    public generatorEvaluationConfig?: (google.cloud.dialogflow.v2.IGeneratorEvaluationConfig|null);

                    /** GeneratorEvaluation createTime. */
                    public createTime?: (google.protobuf.ITimestamp|null);

                    /** GeneratorEvaluation completeTime. */
                    public completeTime?: (google.protobuf.ITimestamp|null);

                    /** GeneratorEvaluation initialGenerator. */
                    public initialGenerator?: (google.cloud.dialogflow.v2.IGenerator|null);

                    /** GeneratorEvaluation summarizationMetrics. */
                    public summarizationMetrics?: (google.cloud.dialogflow.v2.ISummarizationEvaluationMetrics|null);

                    /** GeneratorEvaluation evaluationStatus. */
                    public evaluationStatus?: (google.cloud.dialogflow.v2.IEvaluationStatus|null);

                    /** GeneratorEvaluation satisfiesPzs. */
                    public satisfiesPzs?: (boolean|null);

                    /** GeneratorEvaluation satisfiesPzi. */
                    public satisfiesPzi?: (boolean|null);

                    /** GeneratorEvaluation metrics. */
                    public metrics?: "summarizationMetrics";

                    /**
                     * Creates a new GeneratorEvaluation instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GeneratorEvaluation instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IGeneratorEvaluation): google.cloud.dialogflow.v2.GeneratorEvaluation;

                    /**
                     * Encodes the specified GeneratorEvaluation message. Does not implicitly {@link google.cloud.dialogflow.v2.GeneratorEvaluation.verify|verify} messages.
                     * @param message GeneratorEvaluation message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IGeneratorEvaluation, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GeneratorEvaluation message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.GeneratorEvaluation.verify|verify} messages.
                     * @param message GeneratorEvaluation message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.IGeneratorEvaluation, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GeneratorEvaluation message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GeneratorEvaluation
                     * @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.cloud.dialogflow.v2.GeneratorEvaluation;

                    /**
                     * Decodes a GeneratorEvaluation message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GeneratorEvaluation
                     * @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.cloud.dialogflow.v2.GeneratorEvaluation;

                    /**
                     * Verifies a GeneratorEvaluation 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 GeneratorEvaluation message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GeneratorEvaluation
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.GeneratorEvaluation;

                    /**
                     * Creates a plain object from a GeneratorEvaluation message. Also converts values to other types if specified.
                     * @param message GeneratorEvaluation
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.GeneratorEvaluation, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GeneratorEvaluation to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GeneratorEvaluation
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SummarizationEvaluationMetrics. */
                interface ISummarizationEvaluationMetrics {

                    /** SummarizationEvaluationMetrics summarizationEvaluationResults */
                    summarizationEvaluationResults?: (google.cloud.dialogflow.v2.SummarizationEvaluationMetrics.ISummarizationEvaluationResult[]|null);

                    /** SummarizationEvaluationMetrics summarizationEvaluationMergedResultsUri */
                    summarizationEvaluationMergedResultsUri?: (string|null);

                    /** SummarizationEvaluationMetrics overallMetrics */
                    overallMetrics?: (google.cloud.dialogflow.v2.SummarizationEvaluationMetrics.IOverallScoresByMetric[]|null);

                    /** SummarizationEvaluationMetrics overallSectionTokens */
                    overallSectionTokens?: (google.cloud.dialogflow.v2.SummarizationEvaluationMetrics.ISectionToken[]|null);

                    /** SummarizationEvaluationMetrics conversationDetails */
                    conversationDetails?: (google.cloud.dialogflow.v2.SummarizationEvaluationMetrics.IConversationDetail[]|null);
                }

                /** Represents a SummarizationEvaluationMetrics. */
                class SummarizationEvaluationMetrics implements ISummarizationEvaluationMetrics {

                    /**
                     * Constructs a new SummarizationEvaluationMetrics.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.ISummarizationEvaluationMetrics);

                    /** SummarizationEvaluationMetrics summarizationEvaluationResults. */
                    public summarizationEvaluationResults: google.cloud.dialogflow.v2.SummarizationEvaluationMetrics.ISummarizationEvaluationResult[];

                    /** SummarizationEvaluationMetrics summarizationEvaluationMergedResultsUri. */
                    public summarizationEvaluationMergedResultsUri: string;

                    /** SummarizationEvaluationMetrics overallMetrics. */
                    public overallMetrics: google.cloud.dialogflow.v2.SummarizationEvaluationMetrics.IOverallScoresByMetric[];

                    /** SummarizationEvaluationMetrics overallSectionTokens. */
                    public overallSectionTokens: google.cloud.dialogflow.v2.SummarizationEvaluationMetrics.ISectionToken[];

                    /** SummarizationEvaluationMetrics conversationDetails. */
                    public conversationDetails: google.cloud.dialogflow.v2.SummarizationEvaluationMetrics.IConversationDetail[];

                    /**
                     * Creates a new SummarizationEvaluationMetrics instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SummarizationEvaluationMetrics instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.ISummarizationEvaluationMetrics): google.cloud.dialogflow.v2.SummarizationEvaluationMetrics;

                    /**
                     * Encodes the specified SummarizationEvaluationMetrics message. Does not implicitly {@link google.cloud.dialogflow.v2.SummarizationEvaluationMetrics.verify|verify} messages.
                     * @param message SummarizationEvaluationMetrics message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.ISummarizationEvaluationMetrics, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SummarizationEvaluationMetrics message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.SummarizationEvaluationMetrics.verify|verify} messages.
                     * @param message SummarizationEvaluationMetrics message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.ISummarizationEvaluationMetrics, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SummarizationEvaluationMetrics message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SummarizationEvaluationMetrics
                     * @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.cloud.dialogflow.v2.SummarizationEvaluationMetrics;

                    /**
                     * Decodes a SummarizationEvaluationMetrics message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SummarizationEvaluationMetrics
                     * @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.cloud.dialogflow.v2.SummarizationEvaluationMetrics;

                    /**
                     * Verifies a SummarizationEvaluationMetrics 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 SummarizationEvaluationMetrics message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SummarizationEvaluationMetrics
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.SummarizationEvaluationMetrics;

                    /**
                     * Creates a plain object from a SummarizationEvaluationMetrics message. Also converts values to other types if specified.
                     * @param message SummarizationEvaluationMetrics
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.SummarizationEvaluationMetrics, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SummarizationEvaluationMetrics to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SummarizationEvaluationMetrics
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace SummarizationEvaluationMetrics {

                    /** Properties of an AccuracyDecomposition. */
                    interface IAccuracyDecomposition {

                        /** AccuracyDecomposition point */
                        point?: (string|null);

                        /** AccuracyDecomposition accuracyReasoning */
                        accuracyReasoning?: (string|null);

                        /** AccuracyDecomposition isAccurate */
                        isAccurate?: (boolean|null);
                    }

                    /** Represents an AccuracyDecomposition. */
                    class AccuracyDecomposition implements IAccuracyDecomposition {

                        /**
                         * Constructs a new AccuracyDecomposition.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2.SummarizationEvaluationMetrics.IAccuracyDecomposition);

                        /** AccuracyDecomposition point. */
                        public point: string;

                        /** AccuracyDecomposition accuracyReasoning. */
                        public accuracyReasoning: string;

                        /** AccuracyDecomposition isAccurate. */
                        public isAccurate?: (boolean|null);

                        /**
                         * Creates a new AccuracyDecomposition instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns AccuracyDecomposition instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2.SummarizationEvaluationMetrics.IAccuracyDecomposition): google.cloud.dialogflow.v2.SummarizationEvaluationMetrics.AccuracyDecomposition;

                        /**
                         * Encodes the specified AccuracyDecomposition message. Does not implicitly {@link google.cloud.dialogflow.v2.SummarizationEvaluationMetrics.AccuracyDecomposition.verify|verify} messages.
                         * @param message AccuracyDecomposition message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2.SummarizationEvaluationMetrics.IAccuracyDecomposition, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified AccuracyDecomposition message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.SummarizationEvaluationMetrics.AccuracyDecomposition.verify|verify} messages.
                         * @param message AccuracyDecomposition message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2.SummarizationEvaluationMetrics.IAccuracyDecomposition, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes an AccuracyDecomposition message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns AccuracyDecomposition
                         * @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.cloud.dialogflow.v2.SummarizationEvaluationMetrics.AccuracyDecomposition;

                        /**
                         * Decodes an AccuracyDecomposition message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns AccuracyDecomposition
                         * @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.cloud.dialogflow.v2.SummarizationEvaluationMetrics.AccuracyDecomposition;

                        /**
                         * Verifies an AccuracyDecomposition 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 AccuracyDecomposition message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns AccuracyDecomposition
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.SummarizationEvaluationMetrics.AccuracyDecomposition;

                        /**
                         * Creates a plain object from an AccuracyDecomposition message. Also converts values to other types if specified.
                         * @param message AccuracyDecomposition
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.dialogflow.v2.SummarizationEvaluationMetrics.AccuracyDecomposition, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this AccuracyDecomposition to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for AccuracyDecomposition
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    /** Properties of an AdherenceDecomposition. */
                    interface IAdherenceDecomposition {

                        /** AdherenceDecomposition point */
                        point?: (string|null);

                        /** AdherenceDecomposition adherenceReasoning */
                        adherenceReasoning?: (string|null);

                        /** AdherenceDecomposition isAdherent */
                        isAdherent?: (boolean|null);
                    }

                    /** Represents an AdherenceDecomposition. */
                    class AdherenceDecomposition implements IAdherenceDecomposition {

                        /**
                         * Constructs a new AdherenceDecomposition.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2.SummarizationEvaluationMetrics.IAdherenceDecomposition);

                        /** AdherenceDecomposition point. */
                        public point: string;

                        /** AdherenceDecomposition adherenceReasoning. */
                        public adherenceReasoning: string;

                        /** AdherenceDecomposition isAdherent. */
                        public isAdherent: boolean;

                        /**
                         * Creates a new AdherenceDecomposition instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns AdherenceDecomposition instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2.SummarizationEvaluationMetrics.IAdherenceDecomposition): google.cloud.dialogflow.v2.SummarizationEvaluationMetrics.AdherenceDecomposition;

                        /**
                         * Encodes the specified AdherenceDecomposition message. Does not implicitly {@link google.cloud.dialogflow.v2.SummarizationEvaluationMetrics.AdherenceDecomposition.verify|verify} messages.
                         * @param message AdherenceDecomposition message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2.SummarizationEvaluationMetrics.IAdherenceDecomposition, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified AdherenceDecomposition message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.SummarizationEvaluationMetrics.AdherenceDecomposition.verify|verify} messages.
                         * @param message AdherenceDecomposition message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2.SummarizationEvaluationMetrics.IAdherenceDecomposition, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes an AdherenceDecomposition message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns AdherenceDecomposition
                         * @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.cloud.dialogflow.v2.SummarizationEvaluationMetrics.AdherenceDecomposition;

                        /**
                         * Decodes an AdherenceDecomposition message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns AdherenceDecomposition
                         * @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.cloud.dialogflow.v2.SummarizationEvaluationMetrics.AdherenceDecomposition;

                        /**
                         * Verifies an AdherenceDecomposition 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 AdherenceDecomposition message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns AdherenceDecomposition
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.SummarizationEvaluationMetrics.AdherenceDecomposition;

                        /**
                         * Creates a plain object from an AdherenceDecomposition message. Also converts values to other types if specified.
                         * @param message AdherenceDecomposition
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.dialogflow.v2.SummarizationEvaluationMetrics.AdherenceDecomposition, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this AdherenceDecomposition to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for AdherenceDecomposition
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    /** Properties of an AdherenceRubric. */
                    interface IAdherenceRubric {

                        /** AdherenceRubric question */
                        question?: (string|null);

                        /** AdherenceRubric reasoning */
                        reasoning?: (string|null);

                        /** AdherenceRubric isAddressed */
                        isAddressed?: (boolean|null);
                    }

                    /** Represents an AdherenceRubric. */
                    class AdherenceRubric implements IAdherenceRubric {

                        /**
                         * Constructs a new AdherenceRubric.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2.SummarizationEvaluationMetrics.IAdherenceRubric);

                        /** AdherenceRubric question. */
                        public question: string;

                        /** AdherenceRubric reasoning. */
                        public reasoning: string;

                        /** AdherenceRubric isAddressed. */
                        public isAddressed?: (boolean|null);

                        /**
                         * Creates a new AdherenceRubric instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns AdherenceRubric instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2.SummarizationEvaluationMetrics.IAdherenceRubric): google.cloud.dialogflow.v2.SummarizationEvaluationMetrics.AdherenceRubric;

                        /**
                         * Encodes the specified AdherenceRubric message. Does not implicitly {@link google.cloud.dialogflow.v2.SummarizationEvaluationMetrics.AdherenceRubric.verify|verify} messages.
                         * @param message AdherenceRubric message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2.SummarizationEvaluationMetrics.IAdherenceRubric, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified AdherenceRubric message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.SummarizationEvaluationMetrics.AdherenceRubric.verify|verify} messages.
                         * @param message AdherenceRubric message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2.SummarizationEvaluationMetrics.IAdherenceRubric, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes an AdherenceRubric message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns AdherenceRubric
                         * @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.cloud.dialogflow.v2.SummarizationEvaluationMetrics.AdherenceRubric;

                        /**
                         * Decodes an AdherenceRubric message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns AdherenceRubric
                         * @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.cloud.dialogflow.v2.SummarizationEvaluationMetrics.AdherenceRubric;

                        /**
                         * Verifies an AdherenceRubric 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 AdherenceRubric message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns AdherenceRubric
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.SummarizationEvaluationMetrics.AdherenceRubric;

                        /**
                         * Creates a plain object from an AdherenceRubric message. Also converts values to other types if specified.
                         * @param message AdherenceRubric
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.dialogflow.v2.SummarizationEvaluationMetrics.AdherenceRubric, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this AdherenceRubric to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for AdherenceRubric
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    /** Properties of a CompletenessRubric. */
                    interface ICompletenessRubric {

                        /** CompletenessRubric question */
                        question?: (string|null);

                        /** CompletenessRubric isAddressed */
                        isAddressed?: (boolean|null);
                    }

                    /** Represents a CompletenessRubric. */
                    class CompletenessRubric implements ICompletenessRubric {

                        /**
                         * Constructs a new CompletenessRubric.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2.SummarizationEvaluationMetrics.ICompletenessRubric);

                        /** CompletenessRubric question. */
                        public question: string;

                        /** CompletenessRubric isAddressed. */
                        public isAddressed?: (boolean|null);

                        /**
                         * Creates a new CompletenessRubric instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns CompletenessRubric instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2.SummarizationEvaluationMetrics.ICompletenessRubric): google.cloud.dialogflow.v2.SummarizationEvaluationMetrics.CompletenessRubric;

                        /**
                         * Encodes the specified CompletenessRubric message. Does not implicitly {@link google.cloud.dialogflow.v2.SummarizationEvaluationMetrics.CompletenessRubric.verify|verify} messages.
                         * @param message CompletenessRubric message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2.SummarizationEvaluationMetrics.ICompletenessRubric, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified CompletenessRubric message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.SummarizationEvaluationMetrics.CompletenessRubric.verify|verify} messages.
                         * @param message CompletenessRubric message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2.SummarizationEvaluationMetrics.ICompletenessRubric, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a CompletenessRubric message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns CompletenessRubric
                         * @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.cloud.dialogflow.v2.SummarizationEvaluationMetrics.CompletenessRubric;

                        /**
                         * Decodes a CompletenessRubric message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns CompletenessRubric
                         * @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.cloud.dialogflow.v2.SummarizationEvaluationMetrics.CompletenessRubric;

                        /**
                         * Verifies a CompletenessRubric 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 CompletenessRubric message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns CompletenessRubric
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.SummarizationEvaluationMetrics.CompletenessRubric;

                        /**
                         * Creates a plain object from a CompletenessRubric message. Also converts values to other types if specified.
                         * @param message CompletenessRubric
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.dialogflow.v2.SummarizationEvaluationMetrics.CompletenessRubric, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this CompletenessRubric to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for CompletenessRubric
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    /** Properties of a Decomposition. */
                    interface IDecomposition {

                        /** Decomposition accuracyDecomposition */
                        accuracyDecomposition?: (google.cloud.dialogflow.v2.SummarizationEvaluationMetrics.IAccuracyDecomposition|null);

                        /** Decomposition adherenceDecomposition */
                        adherenceDecomposition?: (google.cloud.dialogflow.v2.SummarizationEvaluationMetrics.IAdherenceDecomposition|null);
                    }

                    /** Represents a Decomposition. */
                    class Decomposition implements IDecomposition {

                        /**
                         * Constructs a new Decomposition.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2.SummarizationEvaluationMetrics.IDecomposition);

                        /** Decomposition accuracyDecomposition. */
                        public accuracyDecomposition?: (google.cloud.dialogflow.v2.SummarizationEvaluationMetrics.IAccuracyDecomposition|null);

                        /** Decomposition adherenceDecomposition. */
                        public adherenceDecomposition?: (google.cloud.dialogflow.v2.SummarizationEvaluationMetrics.IAdherenceDecomposition|null);

                        /** Decomposition decomposition. */
                        public decomposition?: ("accuracyDecomposition"|"adherenceDecomposition");

                        /**
                         * Creates a new Decomposition instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns Decomposition instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2.SummarizationEvaluationMetrics.IDecomposition): google.cloud.dialogflow.v2.SummarizationEvaluationMetrics.Decomposition;

                        /**
                         * Encodes the specified Decomposition message. Does not implicitly {@link google.cloud.dialogflow.v2.SummarizationEvaluationMetrics.Decomposition.verify|verify} messages.
                         * @param message Decomposition message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2.SummarizationEvaluationMetrics.IDecomposition, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified Decomposition message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.SummarizationEvaluationMetrics.Decomposition.verify|verify} messages.
                         * @param message Decomposition message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2.SummarizationEvaluationMetrics.IDecomposition, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a Decomposition message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns Decomposition
                         * @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.cloud.dialogflow.v2.SummarizationEvaluationMetrics.Decomposition;

                        /**
                         * Decodes a Decomposition message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns Decomposition
                         * @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.cloud.dialogflow.v2.SummarizationEvaluationMetrics.Decomposition;

                        /**
                         * Verifies a Decomposition 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 Decomposition message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns Decomposition
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.SummarizationEvaluationMetrics.Decomposition;

                        /**
                         * Creates a plain object from a Decomposition message. Also converts values to other types if specified.
                         * @param message Decomposition
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.dialogflow.v2.SummarizationEvaluationMetrics.Decomposition, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this Decomposition to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for Decomposition
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    /** Properties of an EvaluationResult. */
                    interface IEvaluationResult {

                        /** EvaluationResult accuracyDecomposition */
                        accuracyDecomposition?: (google.cloud.dialogflow.v2.SummarizationEvaluationMetrics.IAccuracyDecomposition|null);

                        /** EvaluationResult adherenceRubric */
                        adherenceRubric?: (google.cloud.dialogflow.v2.SummarizationEvaluationMetrics.IAdherenceRubric|null);

                        /** EvaluationResult completenessRubric */
                        completenessRubric?: (google.cloud.dialogflow.v2.SummarizationEvaluationMetrics.ICompletenessRubric|null);
                    }

                    /** Represents an EvaluationResult. */
                    class EvaluationResult implements IEvaluationResult {

                        /**
                         * Constructs a new EvaluationResult.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2.SummarizationEvaluationMetrics.IEvaluationResult);

                        /** EvaluationResult accuracyDecomposition. */
                        public accuracyDecomposition?: (google.cloud.dialogflow.v2.SummarizationEvaluationMetrics.IAccuracyDecomposition|null);

                        /** EvaluationResult adherenceRubric. */
                        public adherenceRubric?: (google.cloud.dialogflow.v2.SummarizationEvaluationMetrics.IAdherenceRubric|null);

                        /** EvaluationResult completenessRubric. */
                        public completenessRubric?: (google.cloud.dialogflow.v2.SummarizationEvaluationMetrics.ICompletenessRubric|null);

                        /** EvaluationResult result. */
                        public result?: ("accuracyDecomposition"|"adherenceRubric"|"completenessRubric");

                        /**
                         * Creates a new EvaluationResult instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns EvaluationResult instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2.SummarizationEvaluationMetrics.IEvaluationResult): google.cloud.dialogflow.v2.SummarizationEvaluationMetrics.EvaluationResult;

                        /**
                         * Encodes the specified EvaluationResult message. Does not implicitly {@link google.cloud.dialogflow.v2.SummarizationEvaluationMetrics.EvaluationResult.verify|verify} messages.
                         * @param message EvaluationResult message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2.SummarizationEvaluationMetrics.IEvaluationResult, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified EvaluationResult message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.SummarizationEvaluationMetrics.EvaluationResult.verify|verify} messages.
                         * @param message EvaluationResult message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2.SummarizationEvaluationMetrics.IEvaluationResult, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes an EvaluationResult message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns EvaluationResult
                         * @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.cloud.dialogflow.v2.SummarizationEvaluationMetrics.EvaluationResult;

                        /**
                         * Decodes an EvaluationResult message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns EvaluationResult
                         * @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.cloud.dialogflow.v2.SummarizationEvaluationMetrics.EvaluationResult;

                        /**
                         * Verifies an EvaluationResult 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 EvaluationResult message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns EvaluationResult
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.SummarizationEvaluationMetrics.EvaluationResult;

                        /**
                         * Creates a plain object from an EvaluationResult message. Also converts values to other types if specified.
                         * @param message EvaluationResult
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.dialogflow.v2.SummarizationEvaluationMetrics.EvaluationResult, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this EvaluationResult to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for EvaluationResult
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    /** Properties of a SummarizationEvaluationResult. */
                    interface ISummarizationEvaluationResult {

                        /** SummarizationEvaluationResult sessionId */
                        sessionId?: (string|null);

                        /** SummarizationEvaluationResult metric */
                        metric?: (string|null);

                        /** SummarizationEvaluationResult section */
                        section?: (string|null);

                        /** SummarizationEvaluationResult score */
                        score?: (number|null);

                        /** SummarizationEvaluationResult sectionSummary */
                        sectionSummary?: (string|null);

                        /** SummarizationEvaluationResult decompositions */
                        decompositions?: (google.cloud.dialogflow.v2.SummarizationEvaluationMetrics.IDecomposition[]|null);

                        /** SummarizationEvaluationResult evaluationResults */
                        evaluationResults?: (google.cloud.dialogflow.v2.SummarizationEvaluationMetrics.IEvaluationResult[]|null);
                    }

                    /** Represents a SummarizationEvaluationResult. */
                    class SummarizationEvaluationResult implements ISummarizationEvaluationResult {

                        /**
                         * Constructs a new SummarizationEvaluationResult.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2.SummarizationEvaluationMetrics.ISummarizationEvaluationResult);

                        /** SummarizationEvaluationResult sessionId. */
                        public sessionId: string;

                        /** SummarizationEvaluationResult metric. */
                        public metric: string;

                        /** SummarizationEvaluationResult section. */
                        public section: string;

                        /** SummarizationEvaluationResult score. */
                        public score: number;

                        /** SummarizationEvaluationResult sectionSummary. */
                        public sectionSummary: string;

                        /** SummarizationEvaluationResult decompositions. */
                        public decompositions: google.cloud.dialogflow.v2.SummarizationEvaluationMetrics.IDecomposition[];

                        /** SummarizationEvaluationResult evaluationResults. */
                        public evaluationResults: google.cloud.dialogflow.v2.SummarizationEvaluationMetrics.IEvaluationResult[];

                        /**
                         * Creates a new SummarizationEvaluationResult instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns SummarizationEvaluationResult instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2.SummarizationEvaluationMetrics.ISummarizationEvaluationResult): google.cloud.dialogflow.v2.SummarizationEvaluationMetrics.SummarizationEvaluationResult;

                        /**
                         * Encodes the specified SummarizationEvaluationResult message. Does not implicitly {@link google.cloud.dialogflow.v2.SummarizationEvaluationMetrics.SummarizationEvaluationResult.verify|verify} messages.
                         * @param message SummarizationEvaluationResult message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2.SummarizationEvaluationMetrics.ISummarizationEvaluationResult, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified SummarizationEvaluationResult message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.SummarizationEvaluationMetrics.SummarizationEvaluationResult.verify|verify} messages.
                         * @param message SummarizationEvaluationResult message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2.SummarizationEvaluationMetrics.ISummarizationEvaluationResult, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a SummarizationEvaluationResult message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns SummarizationEvaluationResult
                         * @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.cloud.dialogflow.v2.SummarizationEvaluationMetrics.SummarizationEvaluationResult;

                        /**
                         * Decodes a SummarizationEvaluationResult message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns SummarizationEvaluationResult
                         * @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.cloud.dialogflow.v2.SummarizationEvaluationMetrics.SummarizationEvaluationResult;

                        /**
                         * Verifies a SummarizationEvaluationResult 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 SummarizationEvaluationResult message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns SummarizationEvaluationResult
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.SummarizationEvaluationMetrics.SummarizationEvaluationResult;

                        /**
                         * Creates a plain object from a SummarizationEvaluationResult message. Also converts values to other types if specified.
                         * @param message SummarizationEvaluationResult
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.dialogflow.v2.SummarizationEvaluationMetrics.SummarizationEvaluationResult, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this SummarizationEvaluationResult to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for SummarizationEvaluationResult
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    /** Properties of an OverallScoresByMetric. */
                    interface IOverallScoresByMetric {

                        /** OverallScoresByMetric metric */
                        metric?: (string|null);
                    }

                    /** Represents an OverallScoresByMetric. */
                    class OverallScoresByMetric implements IOverallScoresByMetric {

                        /**
                         * Constructs a new OverallScoresByMetric.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2.SummarizationEvaluationMetrics.IOverallScoresByMetric);

                        /** OverallScoresByMetric metric. */
                        public metric: string;

                        /**
                         * Creates a new OverallScoresByMetric instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns OverallScoresByMetric instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2.SummarizationEvaluationMetrics.IOverallScoresByMetric): google.cloud.dialogflow.v2.SummarizationEvaluationMetrics.OverallScoresByMetric;

                        /**
                         * Encodes the specified OverallScoresByMetric message. Does not implicitly {@link google.cloud.dialogflow.v2.SummarizationEvaluationMetrics.OverallScoresByMetric.verify|verify} messages.
                         * @param message OverallScoresByMetric message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2.SummarizationEvaluationMetrics.IOverallScoresByMetric, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified OverallScoresByMetric message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.SummarizationEvaluationMetrics.OverallScoresByMetric.verify|verify} messages.
                         * @param message OverallScoresByMetric message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2.SummarizationEvaluationMetrics.IOverallScoresByMetric, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes an OverallScoresByMetric message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns OverallScoresByMetric
                         * @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.cloud.dialogflow.v2.SummarizationEvaluationMetrics.OverallScoresByMetric;

                        /**
                         * Decodes an OverallScoresByMetric message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns OverallScoresByMetric
                         * @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.cloud.dialogflow.v2.SummarizationEvaluationMetrics.OverallScoresByMetric;

                        /**
                         * Verifies an OverallScoresByMetric 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 OverallScoresByMetric message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns OverallScoresByMetric
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.SummarizationEvaluationMetrics.OverallScoresByMetric;

                        /**
                         * Creates a plain object from an OverallScoresByMetric message. Also converts values to other types if specified.
                         * @param message OverallScoresByMetric
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.dialogflow.v2.SummarizationEvaluationMetrics.OverallScoresByMetric, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this OverallScoresByMetric to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for OverallScoresByMetric
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    /** Properties of a SectionToken. */
                    interface ISectionToken {

                        /** SectionToken section */
                        section?: (string|null);

                        /** SectionToken tokenCount */
                        tokenCount?: (number|Long|string|null);
                    }

                    /** Represents a SectionToken. */
                    class SectionToken implements ISectionToken {

                        /**
                         * Constructs a new SectionToken.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2.SummarizationEvaluationMetrics.ISectionToken);

                        /** SectionToken section. */
                        public section: string;

                        /** SectionToken tokenCount. */
                        public tokenCount?: (number|Long|string|null);

                        /**
                         * Creates a new SectionToken instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns SectionToken instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2.SummarizationEvaluationMetrics.ISectionToken): google.cloud.dialogflow.v2.SummarizationEvaluationMetrics.SectionToken;

                        /**
                         * Encodes the specified SectionToken message. Does not implicitly {@link google.cloud.dialogflow.v2.SummarizationEvaluationMetrics.SectionToken.verify|verify} messages.
                         * @param message SectionToken message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2.SummarizationEvaluationMetrics.ISectionToken, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified SectionToken message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.SummarizationEvaluationMetrics.SectionToken.verify|verify} messages.
                         * @param message SectionToken message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2.SummarizationEvaluationMetrics.ISectionToken, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a SectionToken message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns SectionToken
                         * @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.cloud.dialogflow.v2.SummarizationEvaluationMetrics.SectionToken;

                        /**
                         * Decodes a SectionToken message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns SectionToken
                         * @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.cloud.dialogflow.v2.SummarizationEvaluationMetrics.SectionToken;

                        /**
                         * Verifies a SectionToken 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 SectionToken message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns SectionToken
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.SummarizationEvaluationMetrics.SectionToken;

                        /**
                         * Creates a plain object from a SectionToken message. Also converts values to other types if specified.
                         * @param message SectionToken
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.dialogflow.v2.SummarizationEvaluationMetrics.SectionToken, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this SectionToken to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for SectionToken
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    /** Properties of a ConversationDetail. */
                    interface IConversationDetail {

                        /** ConversationDetail messageEntries */
                        messageEntries?: (google.cloud.dialogflow.v2.IMessageEntry[]|null);

                        /** ConversationDetail summarySections */
                        summarySections?: (google.cloud.dialogflow.v2.SummarySuggestion.ISummarySection[]|null);

                        /** ConversationDetail metricDetails */
                        metricDetails?: (google.cloud.dialogflow.v2.SummarizationEvaluationMetrics.ConversationDetail.IMetricDetail[]|null);

                        /** ConversationDetail sectionTokens */
                        sectionTokens?: (google.cloud.dialogflow.v2.SummarizationEvaluationMetrics.ISectionToken[]|null);
                    }

                    /** Represents a ConversationDetail. */
                    class ConversationDetail implements IConversationDetail {

                        /**
                         * Constructs a new ConversationDetail.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2.SummarizationEvaluationMetrics.IConversationDetail);

                        /** ConversationDetail messageEntries. */
                        public messageEntries: google.cloud.dialogflow.v2.IMessageEntry[];

                        /** ConversationDetail summarySections. */
                        public summarySections: google.cloud.dialogflow.v2.SummarySuggestion.ISummarySection[];

                        /** ConversationDetail metricDetails. */
                        public metricDetails: google.cloud.dialogflow.v2.SummarizationEvaluationMetrics.ConversationDetail.IMetricDetail[];

                        /** ConversationDetail sectionTokens. */
                        public sectionTokens: google.cloud.dialogflow.v2.SummarizationEvaluationMetrics.ISectionToken[];

                        /**
                         * Creates a new ConversationDetail instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns ConversationDetail instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2.SummarizationEvaluationMetrics.IConversationDetail): google.cloud.dialogflow.v2.SummarizationEvaluationMetrics.ConversationDetail;

                        /**
                         * Encodes the specified ConversationDetail message. Does not implicitly {@link google.cloud.dialogflow.v2.SummarizationEvaluationMetrics.ConversationDetail.verify|verify} messages.
                         * @param message ConversationDetail message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2.SummarizationEvaluationMetrics.IConversationDetail, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified ConversationDetail message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.SummarizationEvaluationMetrics.ConversationDetail.verify|verify} messages.
                         * @param message ConversationDetail message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2.SummarizationEvaluationMetrics.IConversationDetail, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a ConversationDetail message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns ConversationDetail
                         * @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.cloud.dialogflow.v2.SummarizationEvaluationMetrics.ConversationDetail;

                        /**
                         * Decodes a ConversationDetail message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns ConversationDetail
                         * @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.cloud.dialogflow.v2.SummarizationEvaluationMetrics.ConversationDetail;

                        /**
                         * Verifies a ConversationDetail 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 ConversationDetail message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns ConversationDetail
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.SummarizationEvaluationMetrics.ConversationDetail;

                        /**
                         * Creates a plain object from a ConversationDetail message. Also converts values to other types if specified.
                         * @param message ConversationDetail
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.dialogflow.v2.SummarizationEvaluationMetrics.ConversationDetail, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this ConversationDetail to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for ConversationDetail
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    namespace ConversationDetail {

                        /** Properties of a MetricDetail. */
                        interface IMetricDetail {

                            /** MetricDetail metric */
                            metric?: (string|null);

                            /** MetricDetail score */
                            score?: (number|null);

                            /** MetricDetail sectionDetails */
                            sectionDetails?: (google.cloud.dialogflow.v2.SummarizationEvaluationMetrics.ConversationDetail.MetricDetail.ISectionDetail[]|null);
                        }

                        /** Represents a MetricDetail. */
                        class MetricDetail implements IMetricDetail {

                            /**
                             * Constructs a new MetricDetail.
                             * @param [properties] Properties to set
                             */
                            constructor(properties?: google.cloud.dialogflow.v2.SummarizationEvaluationMetrics.ConversationDetail.IMetricDetail);

                            /** MetricDetail metric. */
                            public metric: string;

                            /** MetricDetail score. */
                            public score?: (number|null);

                            /** MetricDetail sectionDetails. */
                            public sectionDetails: google.cloud.dialogflow.v2.SummarizationEvaluationMetrics.ConversationDetail.MetricDetail.ISectionDetail[];

                            /**
                             * Creates a new MetricDetail instance using the specified properties.
                             * @param [properties] Properties to set
                             * @returns MetricDetail instance
                             */
                            public static create(properties?: google.cloud.dialogflow.v2.SummarizationEvaluationMetrics.ConversationDetail.IMetricDetail): google.cloud.dialogflow.v2.SummarizationEvaluationMetrics.ConversationDetail.MetricDetail;

                            /**
                             * Encodes the specified MetricDetail message. Does not implicitly {@link google.cloud.dialogflow.v2.SummarizationEvaluationMetrics.ConversationDetail.MetricDetail.verify|verify} messages.
                             * @param message MetricDetail message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encode(message: google.cloud.dialogflow.v2.SummarizationEvaluationMetrics.ConversationDetail.IMetricDetail, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Encodes the specified MetricDetail message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.SummarizationEvaluationMetrics.ConversationDetail.MetricDetail.verify|verify} messages.
                             * @param message MetricDetail message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encodeDelimited(message: google.cloud.dialogflow.v2.SummarizationEvaluationMetrics.ConversationDetail.IMetricDetail, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Decodes a MetricDetail message from the specified reader or buffer.
                             * @param reader Reader or buffer to decode from
                             * @param [length] Message length if known beforehand
                             * @returns MetricDetail
                             * @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.cloud.dialogflow.v2.SummarizationEvaluationMetrics.ConversationDetail.MetricDetail;

                            /**
                             * Decodes a MetricDetail message from the specified reader or buffer, length delimited.
                             * @param reader Reader or buffer to decode from
                             * @returns MetricDetail
                             * @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.cloud.dialogflow.v2.SummarizationEvaluationMetrics.ConversationDetail.MetricDetail;

                            /**
                             * Verifies a MetricDetail 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 MetricDetail message from a plain object. Also converts values to their respective internal types.
                             * @param object Plain object
                             * @returns MetricDetail
                             */
                            public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.SummarizationEvaluationMetrics.ConversationDetail.MetricDetail;

                            /**
                             * Creates a plain object from a MetricDetail message. Also converts values to other types if specified.
                             * @param message MetricDetail
                             * @param [options] Conversion options
                             * @returns Plain object
                             */
                            public static toObject(message: google.cloud.dialogflow.v2.SummarizationEvaluationMetrics.ConversationDetail.MetricDetail, options?: $protobuf.IConversionOptions): { [k: string]: any };

                            /**
                             * Converts this MetricDetail to JSON.
                             * @returns JSON object
                             */
                            public toJSON(): { [k: string]: any };

                            /**
                             * Gets the default type url for MetricDetail
                             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                             * @returns The default type url
                             */
                            public static getTypeUrl(typeUrlPrefix?: string): string;
                        }

                        namespace MetricDetail {

                            /** Properties of a SectionDetail. */
                            interface ISectionDetail {

                                /** SectionDetail section */
                                section?: (string|null);

                                /** SectionDetail score */
                                score?: (number|null);

                                /** SectionDetail sectionSummary */
                                sectionSummary?: (string|null);

                                /** SectionDetail evaluationResults */
                                evaluationResults?: (google.cloud.dialogflow.v2.SummarizationEvaluationMetrics.IEvaluationResult[]|null);
                            }

                            /** Represents a SectionDetail. */
                            class SectionDetail implements ISectionDetail {

                                /**
                                 * Constructs a new SectionDetail.
                                 * @param [properties] Properties to set
                                 */
                                constructor(properties?: google.cloud.dialogflow.v2.SummarizationEvaluationMetrics.ConversationDetail.MetricDetail.ISectionDetail);

                                /** SectionDetail section. */
                                public section: string;

                                /** SectionDetail score. */
                                public score?: (number|null);

                                /** SectionDetail sectionSummary. */
                                public sectionSummary: string;

                                /** SectionDetail evaluationResults. */
                                public evaluationResults: google.cloud.dialogflow.v2.SummarizationEvaluationMetrics.IEvaluationResult[];

                                /**
                                 * Creates a new SectionDetail instance using the specified properties.
                                 * @param [properties] Properties to set
                                 * @returns SectionDetail instance
                                 */
                                public static create(properties?: google.cloud.dialogflow.v2.SummarizationEvaluationMetrics.ConversationDetail.MetricDetail.ISectionDetail): google.cloud.dialogflow.v2.SummarizationEvaluationMetrics.ConversationDetail.MetricDetail.SectionDetail;

                                /**
                                 * Encodes the specified SectionDetail message. Does not implicitly {@link google.cloud.dialogflow.v2.SummarizationEvaluationMetrics.ConversationDetail.MetricDetail.SectionDetail.verify|verify} messages.
                                 * @param message SectionDetail message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encode(message: google.cloud.dialogflow.v2.SummarizationEvaluationMetrics.ConversationDetail.MetricDetail.ISectionDetail, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Encodes the specified SectionDetail message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.SummarizationEvaluationMetrics.ConversationDetail.MetricDetail.SectionDetail.verify|verify} messages.
                                 * @param message SectionDetail message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encodeDelimited(message: google.cloud.dialogflow.v2.SummarizationEvaluationMetrics.ConversationDetail.MetricDetail.ISectionDetail, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Decodes a SectionDetail message from the specified reader or buffer.
                                 * @param reader Reader or buffer to decode from
                                 * @param [length] Message length if known beforehand
                                 * @returns SectionDetail
                                 * @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.cloud.dialogflow.v2.SummarizationEvaluationMetrics.ConversationDetail.MetricDetail.SectionDetail;

                                /**
                                 * Decodes a SectionDetail message from the specified reader or buffer, length delimited.
                                 * @param reader Reader or buffer to decode from
                                 * @returns SectionDetail
                                 * @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.cloud.dialogflow.v2.SummarizationEvaluationMetrics.ConversationDetail.MetricDetail.SectionDetail;

                                /**
                                 * Verifies a SectionDetail 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 SectionDetail message from a plain object. Also converts values to their respective internal types.
                                 * @param object Plain object
                                 * @returns SectionDetail
                                 */
                                public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.SummarizationEvaluationMetrics.ConversationDetail.MetricDetail.SectionDetail;

                                /**
                                 * Creates a plain object from a SectionDetail message. Also converts values to other types if specified.
                                 * @param message SectionDetail
                                 * @param [options] Conversion options
                                 * @returns Plain object
                                 */
                                public static toObject(message: google.cloud.dialogflow.v2.SummarizationEvaluationMetrics.ConversationDetail.MetricDetail.SectionDetail, options?: $protobuf.IConversionOptions): { [k: string]: any };

                                /**
                                 * Converts this SectionDetail to JSON.
                                 * @returns JSON object
                                 */
                                public toJSON(): { [k: string]: any };

                                /**
                                 * Gets the default type url for SectionDetail
                                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                                 * @returns The default type url
                                 */
                                public static getTypeUrl(typeUrlPrefix?: string): string;
                            }
                        }
                    }
                }

                /** Properties of a GeneratorEvaluationConfig. */
                interface IGeneratorEvaluationConfig {

                    /** GeneratorEvaluationConfig inputDataConfig */
                    inputDataConfig?: (google.cloud.dialogflow.v2.GeneratorEvaluationConfig.IInputDataConfig|null);

                    /** GeneratorEvaluationConfig outputGcsBucketPath */
                    outputGcsBucketPath?: (string|null);

                    /** GeneratorEvaluationConfig summarizationConfig */
                    summarizationConfig?: (google.cloud.dialogflow.v2.GeneratorEvaluationConfig.ISummarizationConfig|null);
                }

                /** Represents a GeneratorEvaluationConfig. */
                class GeneratorEvaluationConfig implements IGeneratorEvaluationConfig {

                    /**
                     * Constructs a new GeneratorEvaluationConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IGeneratorEvaluationConfig);

                    /** GeneratorEvaluationConfig inputDataConfig. */
                    public inputDataConfig?: (google.cloud.dialogflow.v2.GeneratorEvaluationConfig.IInputDataConfig|null);

                    /** GeneratorEvaluationConfig outputGcsBucketPath. */
                    public outputGcsBucketPath: string;

                    /** GeneratorEvaluationConfig summarizationConfig. */
                    public summarizationConfig?: (google.cloud.dialogflow.v2.GeneratorEvaluationConfig.ISummarizationConfig|null);

                    /** GeneratorEvaluationConfig evaluationFeatureConfig. */
                    public evaluationFeatureConfig?: "summarizationConfig";

                    /**
                     * Creates a new GeneratorEvaluationConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GeneratorEvaluationConfig instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IGeneratorEvaluationConfig): google.cloud.dialogflow.v2.GeneratorEvaluationConfig;

                    /**
                     * Encodes the specified GeneratorEvaluationConfig message. Does not implicitly {@link google.cloud.dialogflow.v2.GeneratorEvaluationConfig.verify|verify} messages.
                     * @param message GeneratorEvaluationConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IGeneratorEvaluationConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GeneratorEvaluationConfig message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.GeneratorEvaluationConfig.verify|verify} messages.
                     * @param message GeneratorEvaluationConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.IGeneratorEvaluationConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GeneratorEvaluationConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GeneratorEvaluationConfig
                     * @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.cloud.dialogflow.v2.GeneratorEvaluationConfig;

                    /**
                     * Decodes a GeneratorEvaluationConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GeneratorEvaluationConfig
                     * @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.cloud.dialogflow.v2.GeneratorEvaluationConfig;

                    /**
                     * Verifies a GeneratorEvaluationConfig 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 GeneratorEvaluationConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GeneratorEvaluationConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.GeneratorEvaluationConfig;

                    /**
                     * Creates a plain object from a GeneratorEvaluationConfig message. Also converts values to other types if specified.
                     * @param message GeneratorEvaluationConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.GeneratorEvaluationConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GeneratorEvaluationConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GeneratorEvaluationConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace GeneratorEvaluationConfig {

                    /** InputDataSourceType enum. */
                    enum InputDataSourceType {
                        INPUT_DATA_SOURCE_TYPE_UNSPECIFIED = 0,
                        AGENT_ASSIST_CONVERSATIONS = 1,
                        INSIGHTS_CONVERSATIONS = 2
                    }

                    /** Properties of an AgentAssistInputDataConfig. */
                    interface IAgentAssistInputDataConfig {

                        /** AgentAssistInputDataConfig startTime */
                        startTime?: (google.protobuf.ITimestamp|null);

                        /** AgentAssistInputDataConfig endTime */
                        endTime?: (google.protobuf.ITimestamp|null);
                    }

                    /** Represents an AgentAssistInputDataConfig. */
                    class AgentAssistInputDataConfig implements IAgentAssistInputDataConfig {

                        /**
                         * Constructs a new AgentAssistInputDataConfig.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2.GeneratorEvaluationConfig.IAgentAssistInputDataConfig);

                        /** AgentAssistInputDataConfig startTime. */
                        public startTime?: (google.protobuf.ITimestamp|null);

                        /** AgentAssistInputDataConfig endTime. */
                        public endTime?: (google.protobuf.ITimestamp|null);

                        /**
                         * Creates a new AgentAssistInputDataConfig instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns AgentAssistInputDataConfig instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2.GeneratorEvaluationConfig.IAgentAssistInputDataConfig): google.cloud.dialogflow.v2.GeneratorEvaluationConfig.AgentAssistInputDataConfig;

                        /**
                         * Encodes the specified AgentAssistInputDataConfig message. Does not implicitly {@link google.cloud.dialogflow.v2.GeneratorEvaluationConfig.AgentAssistInputDataConfig.verify|verify} messages.
                         * @param message AgentAssistInputDataConfig message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2.GeneratorEvaluationConfig.IAgentAssistInputDataConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified AgentAssistInputDataConfig message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.GeneratorEvaluationConfig.AgentAssistInputDataConfig.verify|verify} messages.
                         * @param message AgentAssistInputDataConfig message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2.GeneratorEvaluationConfig.IAgentAssistInputDataConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes an AgentAssistInputDataConfig message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns AgentAssistInputDataConfig
                         * @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.cloud.dialogflow.v2.GeneratorEvaluationConfig.AgentAssistInputDataConfig;

                        /**
                         * Decodes an AgentAssistInputDataConfig message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns AgentAssistInputDataConfig
                         * @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.cloud.dialogflow.v2.GeneratorEvaluationConfig.AgentAssistInputDataConfig;

                        /**
                         * Verifies an AgentAssistInputDataConfig 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 AgentAssistInputDataConfig message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns AgentAssistInputDataConfig
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.GeneratorEvaluationConfig.AgentAssistInputDataConfig;

                        /**
                         * Creates a plain object from an AgentAssistInputDataConfig message. Also converts values to other types if specified.
                         * @param message AgentAssistInputDataConfig
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.dialogflow.v2.GeneratorEvaluationConfig.AgentAssistInputDataConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this AgentAssistInputDataConfig to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for AgentAssistInputDataConfig
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    /** Properties of a DatasetInputDataConfig. */
                    interface IDatasetInputDataConfig {

                        /** DatasetInputDataConfig dataset */
                        dataset?: (string|null);
                    }

                    /** Represents a DatasetInputDataConfig. */
                    class DatasetInputDataConfig implements IDatasetInputDataConfig {

                        /**
                         * Constructs a new DatasetInputDataConfig.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2.GeneratorEvaluationConfig.IDatasetInputDataConfig);

                        /** DatasetInputDataConfig dataset. */
                        public dataset: string;

                        /**
                         * Creates a new DatasetInputDataConfig instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns DatasetInputDataConfig instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2.GeneratorEvaluationConfig.IDatasetInputDataConfig): google.cloud.dialogflow.v2.GeneratorEvaluationConfig.DatasetInputDataConfig;

                        /**
                         * Encodes the specified DatasetInputDataConfig message. Does not implicitly {@link google.cloud.dialogflow.v2.GeneratorEvaluationConfig.DatasetInputDataConfig.verify|verify} messages.
                         * @param message DatasetInputDataConfig message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2.GeneratorEvaluationConfig.IDatasetInputDataConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified DatasetInputDataConfig message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.GeneratorEvaluationConfig.DatasetInputDataConfig.verify|verify} messages.
                         * @param message DatasetInputDataConfig message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2.GeneratorEvaluationConfig.IDatasetInputDataConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a DatasetInputDataConfig message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns DatasetInputDataConfig
                         * @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.cloud.dialogflow.v2.GeneratorEvaluationConfig.DatasetInputDataConfig;

                        /**
                         * Decodes a DatasetInputDataConfig message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns DatasetInputDataConfig
                         * @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.cloud.dialogflow.v2.GeneratorEvaluationConfig.DatasetInputDataConfig;

                        /**
                         * Verifies a DatasetInputDataConfig 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 DatasetInputDataConfig message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns DatasetInputDataConfig
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.GeneratorEvaluationConfig.DatasetInputDataConfig;

                        /**
                         * Creates a plain object from a DatasetInputDataConfig message. Also converts values to other types if specified.
                         * @param message DatasetInputDataConfig
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.dialogflow.v2.GeneratorEvaluationConfig.DatasetInputDataConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this DatasetInputDataConfig to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for DatasetInputDataConfig
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    /** Properties of an InputDataConfig. */
                    interface IInputDataConfig {

                        /** InputDataConfig inputDataSourceType */
                        inputDataSourceType?: (google.cloud.dialogflow.v2.GeneratorEvaluationConfig.InputDataSourceType|keyof typeof google.cloud.dialogflow.v2.GeneratorEvaluationConfig.InputDataSourceType|null);

                        /** InputDataConfig startTime */
                        startTime?: (google.protobuf.ITimestamp|null);

                        /** InputDataConfig endTime */
                        endTime?: (google.protobuf.ITimestamp|null);

                        /** InputDataConfig sampleSize */
                        sampleSize?: (number|null);

                        /** InputDataConfig isSummaryGenerationAllowed */
                        isSummaryGenerationAllowed?: (boolean|null);

                        /** InputDataConfig summaryGenerationOption */
                        summaryGenerationOption?: (google.cloud.dialogflow.v2.GeneratorEvaluationConfig.InputDataConfig.SummaryGenerationOption|keyof typeof google.cloud.dialogflow.v2.GeneratorEvaluationConfig.InputDataConfig.SummaryGenerationOption|null);

                        /** InputDataConfig agentAssistInputDataConfig */
                        agentAssistInputDataConfig?: (google.cloud.dialogflow.v2.GeneratorEvaluationConfig.IAgentAssistInputDataConfig|null);

                        /** InputDataConfig datasetInputDataConfig */
                        datasetInputDataConfig?: (google.cloud.dialogflow.v2.GeneratorEvaluationConfig.IDatasetInputDataConfig|null);
                    }

                    /** Represents an InputDataConfig. */
                    class InputDataConfig implements IInputDataConfig {

                        /**
                         * Constructs a new InputDataConfig.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2.GeneratorEvaluationConfig.IInputDataConfig);

                        /** InputDataConfig inputDataSourceType. */
                        public inputDataSourceType: (google.cloud.dialogflow.v2.GeneratorEvaluationConfig.InputDataSourceType|keyof typeof google.cloud.dialogflow.v2.GeneratorEvaluationConfig.InputDataSourceType);

                        /** InputDataConfig startTime. */
                        public startTime?: (google.protobuf.ITimestamp|null);

                        /** InputDataConfig endTime. */
                        public endTime?: (google.protobuf.ITimestamp|null);

                        /** InputDataConfig sampleSize. */
                        public sampleSize: number;

                        /** InputDataConfig isSummaryGenerationAllowed. */
                        public isSummaryGenerationAllowed: boolean;

                        /** InputDataConfig summaryGenerationOption. */
                        public summaryGenerationOption: (google.cloud.dialogflow.v2.GeneratorEvaluationConfig.InputDataConfig.SummaryGenerationOption|keyof typeof google.cloud.dialogflow.v2.GeneratorEvaluationConfig.InputDataConfig.SummaryGenerationOption);

                        /** InputDataConfig agentAssistInputDataConfig. */
                        public agentAssistInputDataConfig?: (google.cloud.dialogflow.v2.GeneratorEvaluationConfig.IAgentAssistInputDataConfig|null);

                        /** InputDataConfig datasetInputDataConfig. */
                        public datasetInputDataConfig?: (google.cloud.dialogflow.v2.GeneratorEvaluationConfig.IDatasetInputDataConfig|null);

                        /** InputDataConfig sourceSpecificConfig. */
                        public sourceSpecificConfig?: ("agentAssistInputDataConfig"|"datasetInputDataConfig");

                        /**
                         * Creates a new InputDataConfig instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns InputDataConfig instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2.GeneratorEvaluationConfig.IInputDataConfig): google.cloud.dialogflow.v2.GeneratorEvaluationConfig.InputDataConfig;

                        /**
                         * Encodes the specified InputDataConfig message. Does not implicitly {@link google.cloud.dialogflow.v2.GeneratorEvaluationConfig.InputDataConfig.verify|verify} messages.
                         * @param message InputDataConfig message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2.GeneratorEvaluationConfig.IInputDataConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified InputDataConfig message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.GeneratorEvaluationConfig.InputDataConfig.verify|verify} messages.
                         * @param message InputDataConfig message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2.GeneratorEvaluationConfig.IInputDataConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes an InputDataConfig message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns InputDataConfig
                         * @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.cloud.dialogflow.v2.GeneratorEvaluationConfig.InputDataConfig;

                        /**
                         * Decodes an InputDataConfig message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns InputDataConfig
                         * @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.cloud.dialogflow.v2.GeneratorEvaluationConfig.InputDataConfig;

                        /**
                         * Verifies an InputDataConfig 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 InputDataConfig message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns InputDataConfig
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.GeneratorEvaluationConfig.InputDataConfig;

                        /**
                         * Creates a plain object from an InputDataConfig message. Also converts values to other types if specified.
                         * @param message InputDataConfig
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.dialogflow.v2.GeneratorEvaluationConfig.InputDataConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this InputDataConfig to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for InputDataConfig
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    namespace InputDataConfig {

                        /** SummaryGenerationOption enum. */
                        enum SummaryGenerationOption {
                            SUMMARY_GENERATION_OPTION_UNSPECIFIED = 0,
                            ALWAYS_GENERATE = 1,
                            GENERATE_IF_MISSING = 2,
                            DO_NOT_GENERATE = 3
                        }
                    }

                    /** Properties of a SummarizationConfig. */
                    interface ISummarizationConfig {

                        /** SummarizationConfig enableAccuracyEvaluation */
                        enableAccuracyEvaluation?: (boolean|null);

                        /** SummarizationConfig accuracyEvaluationVersion */
                        accuracyEvaluationVersion?: (string|null);

                        /** SummarizationConfig enableCompletenessEvaluation */
                        enableCompletenessEvaluation?: (boolean|null);

                        /** SummarizationConfig completenessEvaluationVersion */
                        completenessEvaluationVersion?: (string|null);

                        /** SummarizationConfig evaluatorVersion */
                        evaluatorVersion?: (string|null);
                    }

                    /** Represents a SummarizationConfig. */
                    class SummarizationConfig implements ISummarizationConfig {

                        /**
                         * Constructs a new SummarizationConfig.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2.GeneratorEvaluationConfig.ISummarizationConfig);

                        /** SummarizationConfig enableAccuracyEvaluation. */
                        public enableAccuracyEvaluation: boolean;

                        /** SummarizationConfig accuracyEvaluationVersion. */
                        public accuracyEvaluationVersion: string;

                        /** SummarizationConfig enableCompletenessEvaluation. */
                        public enableCompletenessEvaluation: boolean;

                        /** SummarizationConfig completenessEvaluationVersion. */
                        public completenessEvaluationVersion: string;

                        /** SummarizationConfig evaluatorVersion. */
                        public evaluatorVersion?: (string|null);

                        /**
                         * Creates a new SummarizationConfig instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns SummarizationConfig instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2.GeneratorEvaluationConfig.ISummarizationConfig): google.cloud.dialogflow.v2.GeneratorEvaluationConfig.SummarizationConfig;

                        /**
                         * Encodes the specified SummarizationConfig message. Does not implicitly {@link google.cloud.dialogflow.v2.GeneratorEvaluationConfig.SummarizationConfig.verify|verify} messages.
                         * @param message SummarizationConfig message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2.GeneratorEvaluationConfig.ISummarizationConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified SummarizationConfig message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.GeneratorEvaluationConfig.SummarizationConfig.verify|verify} messages.
                         * @param message SummarizationConfig message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2.GeneratorEvaluationConfig.ISummarizationConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a SummarizationConfig message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns SummarizationConfig
                         * @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.cloud.dialogflow.v2.GeneratorEvaluationConfig.SummarizationConfig;

                        /**
                         * Decodes a SummarizationConfig message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns SummarizationConfig
                         * @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.cloud.dialogflow.v2.GeneratorEvaluationConfig.SummarizationConfig;

                        /**
                         * Verifies a SummarizationConfig 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 SummarizationConfig message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns SummarizationConfig
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.GeneratorEvaluationConfig.SummarizationConfig;

                        /**
                         * Creates a plain object from a SummarizationConfig message. Also converts values to other types if specified.
                         * @param message SummarizationConfig
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.dialogflow.v2.GeneratorEvaluationConfig.SummarizationConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this SummarizationConfig to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for SummarizationConfig
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }
                }

                /** Properties of an EvaluationStatus. */
                interface IEvaluationStatus {

                    /** EvaluationStatus done */
                    done?: (boolean|null);

                    /** EvaluationStatus pipelineStatus */
                    pipelineStatus?: (google.rpc.IStatus|null);
                }

                /** Represents an EvaluationStatus. */
                class EvaluationStatus implements IEvaluationStatus {

                    /**
                     * Constructs a new EvaluationStatus.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IEvaluationStatus);

                    /** EvaluationStatus done. */
                    public done?: (boolean|null);

                    /** EvaluationStatus pipelineStatus. */
                    public pipelineStatus?: (google.rpc.IStatus|null);

                    /**
                     * Creates a new EvaluationStatus instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns EvaluationStatus instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IEvaluationStatus): google.cloud.dialogflow.v2.EvaluationStatus;

                    /**
                     * Encodes the specified EvaluationStatus message. Does not implicitly {@link google.cloud.dialogflow.v2.EvaluationStatus.verify|verify} messages.
                     * @param message EvaluationStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IEvaluationStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified EvaluationStatus message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.EvaluationStatus.verify|verify} messages.
                     * @param message EvaluationStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.IEvaluationStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an EvaluationStatus message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns EvaluationStatus
                     * @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.cloud.dialogflow.v2.EvaluationStatus;

                    /**
                     * Decodes an EvaluationStatus message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns EvaluationStatus
                     * @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.cloud.dialogflow.v2.EvaluationStatus;

                    /**
                     * Verifies an EvaluationStatus 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 EvaluationStatus message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns EvaluationStatus
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.EvaluationStatus;

                    /**
                     * Creates a plain object from an EvaluationStatus message. Also converts values to other types if specified.
                     * @param message EvaluationStatus
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.EvaluationStatus, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this EvaluationStatus to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for EvaluationStatus
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GeneratorEvaluationOperationMetadata. */
                interface IGeneratorEvaluationOperationMetadata {

                    /** GeneratorEvaluationOperationMetadata generatorEvaluation */
                    generatorEvaluation?: (string|null);
                }

                /** Represents a GeneratorEvaluationOperationMetadata. */
                class GeneratorEvaluationOperationMetadata implements IGeneratorEvaluationOperationMetadata {

                    /**
                     * Constructs a new GeneratorEvaluationOperationMetadata.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IGeneratorEvaluationOperationMetadata);

                    /** GeneratorEvaluationOperationMetadata generatorEvaluation. */
                    public generatorEvaluation: string;

                    /**
                     * Creates a new GeneratorEvaluationOperationMetadata instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GeneratorEvaluationOperationMetadata instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IGeneratorEvaluationOperationMetadata): google.cloud.dialogflow.v2.GeneratorEvaluationOperationMetadata;

                    /**
                     * Encodes the specified GeneratorEvaluationOperationMetadata message. Does not implicitly {@link google.cloud.dialogflow.v2.GeneratorEvaluationOperationMetadata.verify|verify} messages.
                     * @param message GeneratorEvaluationOperationMetadata message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IGeneratorEvaluationOperationMetadata, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GeneratorEvaluationOperationMetadata message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.GeneratorEvaluationOperationMetadata.verify|verify} messages.
                     * @param message GeneratorEvaluationOperationMetadata message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.IGeneratorEvaluationOperationMetadata, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GeneratorEvaluationOperationMetadata message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GeneratorEvaluationOperationMetadata
                     * @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.cloud.dialogflow.v2.GeneratorEvaluationOperationMetadata;

                    /**
                     * Decodes a GeneratorEvaluationOperationMetadata message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GeneratorEvaluationOperationMetadata
                     * @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.cloud.dialogflow.v2.GeneratorEvaluationOperationMetadata;

                    /**
                     * Verifies a GeneratorEvaluationOperationMetadata 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 GeneratorEvaluationOperationMetadata message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GeneratorEvaluationOperationMetadata
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.GeneratorEvaluationOperationMetadata;

                    /**
                     * Creates a plain object from a GeneratorEvaluationOperationMetadata message. Also converts values to other types if specified.
                     * @param message GeneratorEvaluationOperationMetadata
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.GeneratorEvaluationOperationMetadata, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GeneratorEvaluationOperationMetadata to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GeneratorEvaluationOperationMetadata
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a HumanAgentAssistantEvent. */
                interface IHumanAgentAssistantEvent {

                    /** HumanAgentAssistantEvent conversation */
                    conversation?: (string|null);

                    /** HumanAgentAssistantEvent participant */
                    participant?: (string|null);

                    /** HumanAgentAssistantEvent suggestionResults */
                    suggestionResults?: (google.cloud.dialogflow.v2.ISuggestionResult[]|null);
                }

                /** Represents a HumanAgentAssistantEvent. */
                class HumanAgentAssistantEvent implements IHumanAgentAssistantEvent {

                    /**
                     * Constructs a new HumanAgentAssistantEvent.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IHumanAgentAssistantEvent);

                    /** HumanAgentAssistantEvent conversation. */
                    public conversation: string;

                    /** HumanAgentAssistantEvent participant. */
                    public participant: string;

                    /** HumanAgentAssistantEvent suggestionResults. */
                    public suggestionResults: google.cloud.dialogflow.v2.ISuggestionResult[];

                    /**
                     * Creates a new HumanAgentAssistantEvent instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns HumanAgentAssistantEvent instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IHumanAgentAssistantEvent): google.cloud.dialogflow.v2.HumanAgentAssistantEvent;

                    /**
                     * Encodes the specified HumanAgentAssistantEvent message. Does not implicitly {@link google.cloud.dialogflow.v2.HumanAgentAssistantEvent.verify|verify} messages.
                     * @param message HumanAgentAssistantEvent message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IHumanAgentAssistantEvent, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified HumanAgentAssistantEvent message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.HumanAgentAssistantEvent.verify|verify} messages.
                     * @param message HumanAgentAssistantEvent message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.IHumanAgentAssistantEvent, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a HumanAgentAssistantEvent message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns HumanAgentAssistantEvent
                     * @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.cloud.dialogflow.v2.HumanAgentAssistantEvent;

                    /**
                     * Decodes a HumanAgentAssistantEvent message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns HumanAgentAssistantEvent
                     * @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.cloud.dialogflow.v2.HumanAgentAssistantEvent;

                    /**
                     * Verifies a HumanAgentAssistantEvent 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 HumanAgentAssistantEvent message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns HumanAgentAssistantEvent
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.HumanAgentAssistantEvent;

                    /**
                     * Creates a plain object from a HumanAgentAssistantEvent message. Also converts values to other types if specified.
                     * @param message HumanAgentAssistantEvent
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.HumanAgentAssistantEvent, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this HumanAgentAssistantEvent to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for HumanAgentAssistantEvent
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Represents a KnowledgeBases */
                class KnowledgeBases extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new KnowledgeBases 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 KnowledgeBases 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): KnowledgeBases;

                    /**
                     * Calls ListKnowledgeBases.
                     * @param request ListKnowledgeBasesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ListKnowledgeBasesResponse
                     */
                    public listKnowledgeBases(request: google.cloud.dialogflow.v2.IListKnowledgeBasesRequest, callback: google.cloud.dialogflow.v2.KnowledgeBases.ListKnowledgeBasesCallback): void;

                    /**
                     * Calls ListKnowledgeBases.
                     * @param request ListKnowledgeBasesRequest message or plain object
                     * @returns Promise
                     */
                    public listKnowledgeBases(request: google.cloud.dialogflow.v2.IListKnowledgeBasesRequest): Promise<google.cloud.dialogflow.v2.ListKnowledgeBasesResponse>;

                    /**
                     * Calls GetKnowledgeBase.
                     * @param request GetKnowledgeBaseRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and KnowledgeBase
                     */
                    public getKnowledgeBase(request: google.cloud.dialogflow.v2.IGetKnowledgeBaseRequest, callback: google.cloud.dialogflow.v2.KnowledgeBases.GetKnowledgeBaseCallback): void;

                    /**
                     * Calls GetKnowledgeBase.
                     * @param request GetKnowledgeBaseRequest message or plain object
                     * @returns Promise
                     */
                    public getKnowledgeBase(request: google.cloud.dialogflow.v2.IGetKnowledgeBaseRequest): Promise<google.cloud.dialogflow.v2.KnowledgeBase>;

                    /**
                     * Calls CreateKnowledgeBase.
                     * @param request CreateKnowledgeBaseRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and KnowledgeBase
                     */
                    public createKnowledgeBase(request: google.cloud.dialogflow.v2.ICreateKnowledgeBaseRequest, callback: google.cloud.dialogflow.v2.KnowledgeBases.CreateKnowledgeBaseCallback): void;

                    /**
                     * Calls CreateKnowledgeBase.
                     * @param request CreateKnowledgeBaseRequest message or plain object
                     * @returns Promise
                     */
                    public createKnowledgeBase(request: google.cloud.dialogflow.v2.ICreateKnowledgeBaseRequest): Promise<google.cloud.dialogflow.v2.KnowledgeBase>;

                    /**
                     * Calls DeleteKnowledgeBase.
                     * @param request DeleteKnowledgeBaseRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Empty
                     */
                    public deleteKnowledgeBase(request: google.cloud.dialogflow.v2.IDeleteKnowledgeBaseRequest, callback: google.cloud.dialogflow.v2.KnowledgeBases.DeleteKnowledgeBaseCallback): void;

                    /**
                     * Calls DeleteKnowledgeBase.
                     * @param request DeleteKnowledgeBaseRequest message or plain object
                     * @returns Promise
                     */
                    public deleteKnowledgeBase(request: google.cloud.dialogflow.v2.IDeleteKnowledgeBaseRequest): Promise<google.protobuf.Empty>;

                    /**
                     * Calls UpdateKnowledgeBase.
                     * @param request UpdateKnowledgeBaseRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and KnowledgeBase
                     */
                    public updateKnowledgeBase(request: google.cloud.dialogflow.v2.IUpdateKnowledgeBaseRequest, callback: google.cloud.dialogflow.v2.KnowledgeBases.UpdateKnowledgeBaseCallback): void;

                    /**
                     * Calls UpdateKnowledgeBase.
                     * @param request UpdateKnowledgeBaseRequest message or plain object
                     * @returns Promise
                     */
                    public updateKnowledgeBase(request: google.cloud.dialogflow.v2.IUpdateKnowledgeBaseRequest): Promise<google.cloud.dialogflow.v2.KnowledgeBase>;
                }

                namespace KnowledgeBases {

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2.KnowledgeBases|listKnowledgeBases}.
                     * @param error Error, if any
                     * @param [response] ListKnowledgeBasesResponse
                     */
                    type ListKnowledgeBasesCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2.ListKnowledgeBasesResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2.KnowledgeBases|getKnowledgeBase}.
                     * @param error Error, if any
                     * @param [response] KnowledgeBase
                     */
                    type GetKnowledgeBaseCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2.KnowledgeBase) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2.KnowledgeBases|createKnowledgeBase}.
                     * @param error Error, if any
                     * @param [response] KnowledgeBase
                     */
                    type CreateKnowledgeBaseCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2.KnowledgeBase) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2.KnowledgeBases|deleteKnowledgeBase}.
                     * @param error Error, if any
                     * @param [response] Empty
                     */
                    type DeleteKnowledgeBaseCallback = (error: (Error|null), response?: google.protobuf.Empty) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2.KnowledgeBases|updateKnowledgeBase}.
                     * @param error Error, if any
                     * @param [response] KnowledgeBase
                     */
                    type UpdateKnowledgeBaseCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2.KnowledgeBase) => void;
                }

                /** Properties of a KnowledgeBase. */
                interface IKnowledgeBase {

                    /** KnowledgeBase name */
                    name?: (string|null);

                    /** KnowledgeBase displayName */
                    displayName?: (string|null);

                    /** KnowledgeBase languageCode */
                    languageCode?: (string|null);
                }

                /** Represents a KnowledgeBase. */
                class KnowledgeBase implements IKnowledgeBase {

                    /**
                     * Constructs a new KnowledgeBase.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IKnowledgeBase);

                    /** KnowledgeBase name. */
                    public name: string;

                    /** KnowledgeBase displayName. */
                    public displayName: string;

                    /** KnowledgeBase languageCode. */
                    public languageCode: string;

                    /**
                     * Creates a new KnowledgeBase instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns KnowledgeBase instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IKnowledgeBase): google.cloud.dialogflow.v2.KnowledgeBase;

                    /**
                     * Encodes the specified KnowledgeBase message. Does not implicitly {@link google.cloud.dialogflow.v2.KnowledgeBase.verify|verify} messages.
                     * @param message KnowledgeBase message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IKnowledgeBase, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified KnowledgeBase message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.KnowledgeBase.verify|verify} messages.
                     * @param message KnowledgeBase message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.IKnowledgeBase, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a KnowledgeBase message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns KnowledgeBase
                     * @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.cloud.dialogflow.v2.KnowledgeBase;

                    /**
                     * Decodes a KnowledgeBase message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns KnowledgeBase
                     * @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.cloud.dialogflow.v2.KnowledgeBase;

                    /**
                     * Verifies a KnowledgeBase 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 KnowledgeBase message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns KnowledgeBase
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.KnowledgeBase;

                    /**
                     * Creates a plain object from a KnowledgeBase message. Also converts values to other types if specified.
                     * @param message KnowledgeBase
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.KnowledgeBase, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this KnowledgeBase to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for KnowledgeBase
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListKnowledgeBasesRequest. */
                interface IListKnowledgeBasesRequest {

                    /** ListKnowledgeBasesRequest parent */
                    parent?: (string|null);

                    /** ListKnowledgeBasesRequest pageSize */
                    pageSize?: (number|null);

                    /** ListKnowledgeBasesRequest pageToken */
                    pageToken?: (string|null);

                    /** ListKnowledgeBasesRequest filter */
                    filter?: (string|null);
                }

                /** Represents a ListKnowledgeBasesRequest. */
                class ListKnowledgeBasesRequest implements IListKnowledgeBasesRequest {

                    /**
                     * Constructs a new ListKnowledgeBasesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IListKnowledgeBasesRequest);

                    /** ListKnowledgeBasesRequest parent. */
                    public parent: string;

                    /** ListKnowledgeBasesRequest pageSize. */
                    public pageSize: number;

                    /** ListKnowledgeBasesRequest pageToken. */
                    public pageToken: string;

                    /** ListKnowledgeBasesRequest filter. */
                    public filter: string;

                    /**
                     * Creates a new ListKnowledgeBasesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListKnowledgeBasesRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IListKnowledgeBasesRequest): google.cloud.dialogflow.v2.ListKnowledgeBasesRequest;

                    /**
                     * Encodes the specified ListKnowledgeBasesRequest message. Does not implicitly {@link google.cloud.dialogflow.v2.ListKnowledgeBasesRequest.verify|verify} messages.
                     * @param message ListKnowledgeBasesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IListKnowledgeBasesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListKnowledgeBasesRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.ListKnowledgeBasesRequest.verify|verify} messages.
                     * @param message ListKnowledgeBasesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.IListKnowledgeBasesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListKnowledgeBasesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListKnowledgeBasesRequest
                     * @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.cloud.dialogflow.v2.ListKnowledgeBasesRequest;

                    /**
                     * Decodes a ListKnowledgeBasesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListKnowledgeBasesRequest
                     * @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.cloud.dialogflow.v2.ListKnowledgeBasesRequest;

                    /**
                     * Verifies a ListKnowledgeBasesRequest 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 ListKnowledgeBasesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListKnowledgeBasesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.ListKnowledgeBasesRequest;

                    /**
                     * Creates a plain object from a ListKnowledgeBasesRequest message. Also converts values to other types if specified.
                     * @param message ListKnowledgeBasesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.ListKnowledgeBasesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListKnowledgeBasesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListKnowledgeBasesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListKnowledgeBasesResponse. */
                interface IListKnowledgeBasesResponse {

                    /** ListKnowledgeBasesResponse knowledgeBases */
                    knowledgeBases?: (google.cloud.dialogflow.v2.IKnowledgeBase[]|null);

                    /** ListKnowledgeBasesResponse nextPageToken */
                    nextPageToken?: (string|null);
                }

                /** Represents a ListKnowledgeBasesResponse. */
                class ListKnowledgeBasesResponse implements IListKnowledgeBasesResponse {

                    /**
                     * Constructs a new ListKnowledgeBasesResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IListKnowledgeBasesResponse);

                    /** ListKnowledgeBasesResponse knowledgeBases. */
                    public knowledgeBases: google.cloud.dialogflow.v2.IKnowledgeBase[];

                    /** ListKnowledgeBasesResponse nextPageToken. */
                    public nextPageToken: string;

                    /**
                     * Creates a new ListKnowledgeBasesResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListKnowledgeBasesResponse instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IListKnowledgeBasesResponse): google.cloud.dialogflow.v2.ListKnowledgeBasesResponse;

                    /**
                     * Encodes the specified ListKnowledgeBasesResponse message. Does not implicitly {@link google.cloud.dialogflow.v2.ListKnowledgeBasesResponse.verify|verify} messages.
                     * @param message ListKnowledgeBasesResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IListKnowledgeBasesResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListKnowledgeBasesResponse message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.ListKnowledgeBasesResponse.verify|verify} messages.
                     * @param message ListKnowledgeBasesResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.IListKnowledgeBasesResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListKnowledgeBasesResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListKnowledgeBasesResponse
                     * @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.cloud.dialogflow.v2.ListKnowledgeBasesResponse;

                    /**
                     * Decodes a ListKnowledgeBasesResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListKnowledgeBasesResponse
                     * @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.cloud.dialogflow.v2.ListKnowledgeBasesResponse;

                    /**
                     * Verifies a ListKnowledgeBasesResponse 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 ListKnowledgeBasesResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListKnowledgeBasesResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.ListKnowledgeBasesResponse;

                    /**
                     * Creates a plain object from a ListKnowledgeBasesResponse message. Also converts values to other types if specified.
                     * @param message ListKnowledgeBasesResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.ListKnowledgeBasesResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListKnowledgeBasesResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListKnowledgeBasesResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetKnowledgeBaseRequest. */
                interface IGetKnowledgeBaseRequest {

                    /** GetKnowledgeBaseRequest name */
                    name?: (string|null);
                }

                /** Represents a GetKnowledgeBaseRequest. */
                class GetKnowledgeBaseRequest implements IGetKnowledgeBaseRequest {

                    /**
                     * Constructs a new GetKnowledgeBaseRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IGetKnowledgeBaseRequest);

                    /** GetKnowledgeBaseRequest name. */
                    public name: string;

                    /**
                     * Creates a new GetKnowledgeBaseRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetKnowledgeBaseRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IGetKnowledgeBaseRequest): google.cloud.dialogflow.v2.GetKnowledgeBaseRequest;

                    /**
                     * Encodes the specified GetKnowledgeBaseRequest message. Does not implicitly {@link google.cloud.dialogflow.v2.GetKnowledgeBaseRequest.verify|verify} messages.
                     * @param message GetKnowledgeBaseRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IGetKnowledgeBaseRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetKnowledgeBaseRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.GetKnowledgeBaseRequest.verify|verify} messages.
                     * @param message GetKnowledgeBaseRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.IGetKnowledgeBaseRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetKnowledgeBaseRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetKnowledgeBaseRequest
                     * @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.cloud.dialogflow.v2.GetKnowledgeBaseRequest;

                    /**
                     * Decodes a GetKnowledgeBaseRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetKnowledgeBaseRequest
                     * @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.cloud.dialogflow.v2.GetKnowledgeBaseRequest;

                    /**
                     * Verifies a GetKnowledgeBaseRequest 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 GetKnowledgeBaseRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetKnowledgeBaseRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.GetKnowledgeBaseRequest;

                    /**
                     * Creates a plain object from a GetKnowledgeBaseRequest message. Also converts values to other types if specified.
                     * @param message GetKnowledgeBaseRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.GetKnowledgeBaseRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetKnowledgeBaseRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetKnowledgeBaseRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a CreateKnowledgeBaseRequest. */
                interface ICreateKnowledgeBaseRequest {

                    /** CreateKnowledgeBaseRequest parent */
                    parent?: (string|null);

                    /** CreateKnowledgeBaseRequest knowledgeBase */
                    knowledgeBase?: (google.cloud.dialogflow.v2.IKnowledgeBase|null);
                }

                /** Represents a CreateKnowledgeBaseRequest. */
                class CreateKnowledgeBaseRequest implements ICreateKnowledgeBaseRequest {

                    /**
                     * Constructs a new CreateKnowledgeBaseRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.ICreateKnowledgeBaseRequest);

                    /** CreateKnowledgeBaseRequest parent. */
                    public parent: string;

                    /** CreateKnowledgeBaseRequest knowledgeBase. */
                    public knowledgeBase?: (google.cloud.dialogflow.v2.IKnowledgeBase|null);

                    /**
                     * Creates a new CreateKnowledgeBaseRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CreateKnowledgeBaseRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.ICreateKnowledgeBaseRequest): google.cloud.dialogflow.v2.CreateKnowledgeBaseRequest;

                    /**
                     * Encodes the specified CreateKnowledgeBaseRequest message. Does not implicitly {@link google.cloud.dialogflow.v2.CreateKnowledgeBaseRequest.verify|verify} messages.
                     * @param message CreateKnowledgeBaseRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.ICreateKnowledgeBaseRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CreateKnowledgeBaseRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.CreateKnowledgeBaseRequest.verify|verify} messages.
                     * @param message CreateKnowledgeBaseRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.ICreateKnowledgeBaseRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CreateKnowledgeBaseRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CreateKnowledgeBaseRequest
                     * @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.cloud.dialogflow.v2.CreateKnowledgeBaseRequest;

                    /**
                     * Decodes a CreateKnowledgeBaseRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CreateKnowledgeBaseRequest
                     * @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.cloud.dialogflow.v2.CreateKnowledgeBaseRequest;

                    /**
                     * Verifies a CreateKnowledgeBaseRequest 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 CreateKnowledgeBaseRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CreateKnowledgeBaseRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.CreateKnowledgeBaseRequest;

                    /**
                     * Creates a plain object from a CreateKnowledgeBaseRequest message. Also converts values to other types if specified.
                     * @param message CreateKnowledgeBaseRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.CreateKnowledgeBaseRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CreateKnowledgeBaseRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CreateKnowledgeBaseRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteKnowledgeBaseRequest. */
                interface IDeleteKnowledgeBaseRequest {

                    /** DeleteKnowledgeBaseRequest name */
                    name?: (string|null);

                    /** DeleteKnowledgeBaseRequest force */
                    force?: (boolean|null);
                }

                /** Represents a DeleteKnowledgeBaseRequest. */
                class DeleteKnowledgeBaseRequest implements IDeleteKnowledgeBaseRequest {

                    /**
                     * Constructs a new DeleteKnowledgeBaseRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IDeleteKnowledgeBaseRequest);

                    /** DeleteKnowledgeBaseRequest name. */
                    public name: string;

                    /** DeleteKnowledgeBaseRequest force. */
                    public force: boolean;

                    /**
                     * Creates a new DeleteKnowledgeBaseRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteKnowledgeBaseRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IDeleteKnowledgeBaseRequest): google.cloud.dialogflow.v2.DeleteKnowledgeBaseRequest;

                    /**
                     * Encodes the specified DeleteKnowledgeBaseRequest message. Does not implicitly {@link google.cloud.dialogflow.v2.DeleteKnowledgeBaseRequest.verify|verify} messages.
                     * @param message DeleteKnowledgeBaseRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IDeleteKnowledgeBaseRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteKnowledgeBaseRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.DeleteKnowledgeBaseRequest.verify|verify} messages.
                     * @param message DeleteKnowledgeBaseRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.IDeleteKnowledgeBaseRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteKnowledgeBaseRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteKnowledgeBaseRequest
                     * @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.cloud.dialogflow.v2.DeleteKnowledgeBaseRequest;

                    /**
                     * Decodes a DeleteKnowledgeBaseRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteKnowledgeBaseRequest
                     * @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.cloud.dialogflow.v2.DeleteKnowledgeBaseRequest;

                    /**
                     * Verifies a DeleteKnowledgeBaseRequest 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 DeleteKnowledgeBaseRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteKnowledgeBaseRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.DeleteKnowledgeBaseRequest;

                    /**
                     * Creates a plain object from a DeleteKnowledgeBaseRequest message. Also converts values to other types if specified.
                     * @param message DeleteKnowledgeBaseRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.DeleteKnowledgeBaseRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteKnowledgeBaseRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteKnowledgeBaseRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an UpdateKnowledgeBaseRequest. */
                interface IUpdateKnowledgeBaseRequest {

                    /** UpdateKnowledgeBaseRequest knowledgeBase */
                    knowledgeBase?: (google.cloud.dialogflow.v2.IKnowledgeBase|null);

                    /** UpdateKnowledgeBaseRequest updateMask */
                    updateMask?: (google.protobuf.IFieldMask|null);
                }

                /** Represents an UpdateKnowledgeBaseRequest. */
                class UpdateKnowledgeBaseRequest implements IUpdateKnowledgeBaseRequest {

                    /**
                     * Constructs a new UpdateKnowledgeBaseRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IUpdateKnowledgeBaseRequest);

                    /** UpdateKnowledgeBaseRequest knowledgeBase. */
                    public knowledgeBase?: (google.cloud.dialogflow.v2.IKnowledgeBase|null);

                    /** UpdateKnowledgeBaseRequest updateMask. */
                    public updateMask?: (google.protobuf.IFieldMask|null);

                    /**
                     * Creates a new UpdateKnowledgeBaseRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UpdateKnowledgeBaseRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IUpdateKnowledgeBaseRequest): google.cloud.dialogflow.v2.UpdateKnowledgeBaseRequest;

                    /**
                     * Encodes the specified UpdateKnowledgeBaseRequest message. Does not implicitly {@link google.cloud.dialogflow.v2.UpdateKnowledgeBaseRequest.verify|verify} messages.
                     * @param message UpdateKnowledgeBaseRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IUpdateKnowledgeBaseRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified UpdateKnowledgeBaseRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.UpdateKnowledgeBaseRequest.verify|verify} messages.
                     * @param message UpdateKnowledgeBaseRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.IUpdateKnowledgeBaseRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an UpdateKnowledgeBaseRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns UpdateKnowledgeBaseRequest
                     * @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.cloud.dialogflow.v2.UpdateKnowledgeBaseRequest;

                    /**
                     * Decodes an UpdateKnowledgeBaseRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns UpdateKnowledgeBaseRequest
                     * @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.cloud.dialogflow.v2.UpdateKnowledgeBaseRequest;

                    /**
                     * Verifies an UpdateKnowledgeBaseRequest 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 UpdateKnowledgeBaseRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UpdateKnowledgeBaseRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.UpdateKnowledgeBaseRequest;

                    /**
                     * Creates a plain object from an UpdateKnowledgeBaseRequest message. Also converts values to other types if specified.
                     * @param message UpdateKnowledgeBaseRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.UpdateKnowledgeBaseRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this UpdateKnowledgeBaseRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for UpdateKnowledgeBaseRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Represents a SipTrunks */
                class SipTrunks extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new SipTrunks 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 SipTrunks 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): SipTrunks;

                    /**
                     * Calls CreateSipTrunk.
                     * @param request CreateSipTrunkRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and SipTrunk
                     */
                    public createSipTrunk(request: google.cloud.dialogflow.v2.ICreateSipTrunkRequest, callback: google.cloud.dialogflow.v2.SipTrunks.CreateSipTrunkCallback): void;

                    /**
                     * Calls CreateSipTrunk.
                     * @param request CreateSipTrunkRequest message or plain object
                     * @returns Promise
                     */
                    public createSipTrunk(request: google.cloud.dialogflow.v2.ICreateSipTrunkRequest): Promise<google.cloud.dialogflow.v2.SipTrunk>;

                    /**
                     * Calls DeleteSipTrunk.
                     * @param request DeleteSipTrunkRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Empty
                     */
                    public deleteSipTrunk(request: google.cloud.dialogflow.v2.IDeleteSipTrunkRequest, callback: google.cloud.dialogflow.v2.SipTrunks.DeleteSipTrunkCallback): void;

                    /**
                     * Calls DeleteSipTrunk.
                     * @param request DeleteSipTrunkRequest message or plain object
                     * @returns Promise
                     */
                    public deleteSipTrunk(request: google.cloud.dialogflow.v2.IDeleteSipTrunkRequest): Promise<google.protobuf.Empty>;

                    /**
                     * Calls ListSipTrunks.
                     * @param request ListSipTrunksRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ListSipTrunksResponse
                     */
                    public listSipTrunks(request: google.cloud.dialogflow.v2.IListSipTrunksRequest, callback: google.cloud.dialogflow.v2.SipTrunks.ListSipTrunksCallback): void;

                    /**
                     * Calls ListSipTrunks.
                     * @param request ListSipTrunksRequest message or plain object
                     * @returns Promise
                     */
                    public listSipTrunks(request: google.cloud.dialogflow.v2.IListSipTrunksRequest): Promise<google.cloud.dialogflow.v2.ListSipTrunksResponse>;

                    /**
                     * Calls GetSipTrunk.
                     * @param request GetSipTrunkRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and SipTrunk
                     */
                    public getSipTrunk(request: google.cloud.dialogflow.v2.IGetSipTrunkRequest, callback: google.cloud.dialogflow.v2.SipTrunks.GetSipTrunkCallback): void;

                    /**
                     * Calls GetSipTrunk.
                     * @param request GetSipTrunkRequest message or plain object
                     * @returns Promise
                     */
                    public getSipTrunk(request: google.cloud.dialogflow.v2.IGetSipTrunkRequest): Promise<google.cloud.dialogflow.v2.SipTrunk>;

                    /**
                     * Calls UpdateSipTrunk.
                     * @param request UpdateSipTrunkRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and SipTrunk
                     */
                    public updateSipTrunk(request: google.cloud.dialogflow.v2.IUpdateSipTrunkRequest, callback: google.cloud.dialogflow.v2.SipTrunks.UpdateSipTrunkCallback): void;

                    /**
                     * Calls UpdateSipTrunk.
                     * @param request UpdateSipTrunkRequest message or plain object
                     * @returns Promise
                     */
                    public updateSipTrunk(request: google.cloud.dialogflow.v2.IUpdateSipTrunkRequest): Promise<google.cloud.dialogflow.v2.SipTrunk>;
                }

                namespace SipTrunks {

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2.SipTrunks|createSipTrunk}.
                     * @param error Error, if any
                     * @param [response] SipTrunk
                     */
                    type CreateSipTrunkCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2.SipTrunk) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2.SipTrunks|deleteSipTrunk}.
                     * @param error Error, if any
                     * @param [response] Empty
                     */
                    type DeleteSipTrunkCallback = (error: (Error|null), response?: google.protobuf.Empty) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2.SipTrunks|listSipTrunks}.
                     * @param error Error, if any
                     * @param [response] ListSipTrunksResponse
                     */
                    type ListSipTrunksCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2.ListSipTrunksResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2.SipTrunks|getSipTrunk}.
                     * @param error Error, if any
                     * @param [response] SipTrunk
                     */
                    type GetSipTrunkCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2.SipTrunk) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2.SipTrunks|updateSipTrunk}.
                     * @param error Error, if any
                     * @param [response] SipTrunk
                     */
                    type UpdateSipTrunkCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2.SipTrunk) => void;
                }

                /** Properties of a CreateSipTrunkRequest. */
                interface ICreateSipTrunkRequest {

                    /** CreateSipTrunkRequest parent */
                    parent?: (string|null);

                    /** CreateSipTrunkRequest sipTrunk */
                    sipTrunk?: (google.cloud.dialogflow.v2.ISipTrunk|null);
                }

                /** Represents a CreateSipTrunkRequest. */
                class CreateSipTrunkRequest implements ICreateSipTrunkRequest {

                    /**
                     * Constructs a new CreateSipTrunkRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.ICreateSipTrunkRequest);

                    /** CreateSipTrunkRequest parent. */
                    public parent: string;

                    /** CreateSipTrunkRequest sipTrunk. */
                    public sipTrunk?: (google.cloud.dialogflow.v2.ISipTrunk|null);

                    /**
                     * Creates a new CreateSipTrunkRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CreateSipTrunkRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.ICreateSipTrunkRequest): google.cloud.dialogflow.v2.CreateSipTrunkRequest;

                    /**
                     * Encodes the specified CreateSipTrunkRequest message. Does not implicitly {@link google.cloud.dialogflow.v2.CreateSipTrunkRequest.verify|verify} messages.
                     * @param message CreateSipTrunkRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.ICreateSipTrunkRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CreateSipTrunkRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.CreateSipTrunkRequest.verify|verify} messages.
                     * @param message CreateSipTrunkRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.ICreateSipTrunkRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CreateSipTrunkRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CreateSipTrunkRequest
                     * @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.cloud.dialogflow.v2.CreateSipTrunkRequest;

                    /**
                     * Decodes a CreateSipTrunkRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CreateSipTrunkRequest
                     * @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.cloud.dialogflow.v2.CreateSipTrunkRequest;

                    /**
                     * Verifies a CreateSipTrunkRequest 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 CreateSipTrunkRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CreateSipTrunkRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.CreateSipTrunkRequest;

                    /**
                     * Creates a plain object from a CreateSipTrunkRequest message. Also converts values to other types if specified.
                     * @param message CreateSipTrunkRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.CreateSipTrunkRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CreateSipTrunkRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CreateSipTrunkRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteSipTrunkRequest. */
                interface IDeleteSipTrunkRequest {

                    /** DeleteSipTrunkRequest name */
                    name?: (string|null);
                }

                /** Represents a DeleteSipTrunkRequest. */
                class DeleteSipTrunkRequest implements IDeleteSipTrunkRequest {

                    /**
                     * Constructs a new DeleteSipTrunkRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IDeleteSipTrunkRequest);

                    /** DeleteSipTrunkRequest name. */
                    public name: string;

                    /**
                     * Creates a new DeleteSipTrunkRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteSipTrunkRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IDeleteSipTrunkRequest): google.cloud.dialogflow.v2.DeleteSipTrunkRequest;

                    /**
                     * Encodes the specified DeleteSipTrunkRequest message. Does not implicitly {@link google.cloud.dialogflow.v2.DeleteSipTrunkRequest.verify|verify} messages.
                     * @param message DeleteSipTrunkRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IDeleteSipTrunkRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteSipTrunkRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.DeleteSipTrunkRequest.verify|verify} messages.
                     * @param message DeleteSipTrunkRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.IDeleteSipTrunkRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteSipTrunkRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteSipTrunkRequest
                     * @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.cloud.dialogflow.v2.DeleteSipTrunkRequest;

                    /**
                     * Decodes a DeleteSipTrunkRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteSipTrunkRequest
                     * @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.cloud.dialogflow.v2.DeleteSipTrunkRequest;

                    /**
                     * Verifies a DeleteSipTrunkRequest 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 DeleteSipTrunkRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteSipTrunkRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.DeleteSipTrunkRequest;

                    /**
                     * Creates a plain object from a DeleteSipTrunkRequest message. Also converts values to other types if specified.
                     * @param message DeleteSipTrunkRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.DeleteSipTrunkRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteSipTrunkRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteSipTrunkRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListSipTrunksRequest. */
                interface IListSipTrunksRequest {

                    /** ListSipTrunksRequest parent */
                    parent?: (string|null);

                    /** ListSipTrunksRequest pageSize */
                    pageSize?: (number|null);

                    /** ListSipTrunksRequest pageToken */
                    pageToken?: (string|null);
                }

                /** Represents a ListSipTrunksRequest. */
                class ListSipTrunksRequest implements IListSipTrunksRequest {

                    /**
                     * Constructs a new ListSipTrunksRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IListSipTrunksRequest);

                    /** ListSipTrunksRequest parent. */
                    public parent: string;

                    /** ListSipTrunksRequest pageSize. */
                    public pageSize: number;

                    /** ListSipTrunksRequest pageToken. */
                    public pageToken: string;

                    /**
                     * Creates a new ListSipTrunksRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListSipTrunksRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IListSipTrunksRequest): google.cloud.dialogflow.v2.ListSipTrunksRequest;

                    /**
                     * Encodes the specified ListSipTrunksRequest message. Does not implicitly {@link google.cloud.dialogflow.v2.ListSipTrunksRequest.verify|verify} messages.
                     * @param message ListSipTrunksRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IListSipTrunksRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListSipTrunksRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.ListSipTrunksRequest.verify|verify} messages.
                     * @param message ListSipTrunksRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.IListSipTrunksRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListSipTrunksRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListSipTrunksRequest
                     * @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.cloud.dialogflow.v2.ListSipTrunksRequest;

                    /**
                     * Decodes a ListSipTrunksRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListSipTrunksRequest
                     * @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.cloud.dialogflow.v2.ListSipTrunksRequest;

                    /**
                     * Verifies a ListSipTrunksRequest 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 ListSipTrunksRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListSipTrunksRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.ListSipTrunksRequest;

                    /**
                     * Creates a plain object from a ListSipTrunksRequest message. Also converts values to other types if specified.
                     * @param message ListSipTrunksRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.ListSipTrunksRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListSipTrunksRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListSipTrunksRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListSipTrunksResponse. */
                interface IListSipTrunksResponse {

                    /** ListSipTrunksResponse sipTrunks */
                    sipTrunks?: (google.cloud.dialogflow.v2.ISipTrunk[]|null);

                    /** ListSipTrunksResponse nextPageToken */
                    nextPageToken?: (string|null);
                }

                /** Represents a ListSipTrunksResponse. */
                class ListSipTrunksResponse implements IListSipTrunksResponse {

                    /**
                     * Constructs a new ListSipTrunksResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IListSipTrunksResponse);

                    /** ListSipTrunksResponse sipTrunks. */
                    public sipTrunks: google.cloud.dialogflow.v2.ISipTrunk[];

                    /** ListSipTrunksResponse nextPageToken. */
                    public nextPageToken: string;

                    /**
                     * Creates a new ListSipTrunksResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListSipTrunksResponse instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IListSipTrunksResponse): google.cloud.dialogflow.v2.ListSipTrunksResponse;

                    /**
                     * Encodes the specified ListSipTrunksResponse message. Does not implicitly {@link google.cloud.dialogflow.v2.ListSipTrunksResponse.verify|verify} messages.
                     * @param message ListSipTrunksResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IListSipTrunksResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListSipTrunksResponse message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.ListSipTrunksResponse.verify|verify} messages.
                     * @param message ListSipTrunksResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.IListSipTrunksResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListSipTrunksResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListSipTrunksResponse
                     * @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.cloud.dialogflow.v2.ListSipTrunksResponse;

                    /**
                     * Decodes a ListSipTrunksResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListSipTrunksResponse
                     * @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.cloud.dialogflow.v2.ListSipTrunksResponse;

                    /**
                     * Verifies a ListSipTrunksResponse 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 ListSipTrunksResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListSipTrunksResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.ListSipTrunksResponse;

                    /**
                     * Creates a plain object from a ListSipTrunksResponse message. Also converts values to other types if specified.
                     * @param message ListSipTrunksResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.ListSipTrunksResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListSipTrunksResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListSipTrunksResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetSipTrunkRequest. */
                interface IGetSipTrunkRequest {

                    /** GetSipTrunkRequest name */
                    name?: (string|null);
                }

                /** Represents a GetSipTrunkRequest. */
                class GetSipTrunkRequest implements IGetSipTrunkRequest {

                    /**
                     * Constructs a new GetSipTrunkRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IGetSipTrunkRequest);

                    /** GetSipTrunkRequest name. */
                    public name: string;

                    /**
                     * Creates a new GetSipTrunkRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetSipTrunkRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IGetSipTrunkRequest): google.cloud.dialogflow.v2.GetSipTrunkRequest;

                    /**
                     * Encodes the specified GetSipTrunkRequest message. Does not implicitly {@link google.cloud.dialogflow.v2.GetSipTrunkRequest.verify|verify} messages.
                     * @param message GetSipTrunkRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IGetSipTrunkRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetSipTrunkRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.GetSipTrunkRequest.verify|verify} messages.
                     * @param message GetSipTrunkRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.IGetSipTrunkRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetSipTrunkRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetSipTrunkRequest
                     * @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.cloud.dialogflow.v2.GetSipTrunkRequest;

                    /**
                     * Decodes a GetSipTrunkRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetSipTrunkRequest
                     * @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.cloud.dialogflow.v2.GetSipTrunkRequest;

                    /**
                     * Verifies a GetSipTrunkRequest 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 GetSipTrunkRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetSipTrunkRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.GetSipTrunkRequest;

                    /**
                     * Creates a plain object from a GetSipTrunkRequest message. Also converts values to other types if specified.
                     * @param message GetSipTrunkRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.GetSipTrunkRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetSipTrunkRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetSipTrunkRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an UpdateSipTrunkRequest. */
                interface IUpdateSipTrunkRequest {

                    /** UpdateSipTrunkRequest sipTrunk */
                    sipTrunk?: (google.cloud.dialogflow.v2.ISipTrunk|null);

                    /** UpdateSipTrunkRequest updateMask */
                    updateMask?: (google.protobuf.IFieldMask|null);
                }

                /** Represents an UpdateSipTrunkRequest. */
                class UpdateSipTrunkRequest implements IUpdateSipTrunkRequest {

                    /**
                     * Constructs a new UpdateSipTrunkRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IUpdateSipTrunkRequest);

                    /** UpdateSipTrunkRequest sipTrunk. */
                    public sipTrunk?: (google.cloud.dialogflow.v2.ISipTrunk|null);

                    /** UpdateSipTrunkRequest updateMask. */
                    public updateMask?: (google.protobuf.IFieldMask|null);

                    /**
                     * Creates a new UpdateSipTrunkRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UpdateSipTrunkRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IUpdateSipTrunkRequest): google.cloud.dialogflow.v2.UpdateSipTrunkRequest;

                    /**
                     * Encodes the specified UpdateSipTrunkRequest message. Does not implicitly {@link google.cloud.dialogflow.v2.UpdateSipTrunkRequest.verify|verify} messages.
                     * @param message UpdateSipTrunkRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IUpdateSipTrunkRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified UpdateSipTrunkRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.UpdateSipTrunkRequest.verify|verify} messages.
                     * @param message UpdateSipTrunkRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.IUpdateSipTrunkRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an UpdateSipTrunkRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns UpdateSipTrunkRequest
                     * @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.cloud.dialogflow.v2.UpdateSipTrunkRequest;

                    /**
                     * Decodes an UpdateSipTrunkRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns UpdateSipTrunkRequest
                     * @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.cloud.dialogflow.v2.UpdateSipTrunkRequest;

                    /**
                     * Verifies an UpdateSipTrunkRequest 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 UpdateSipTrunkRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UpdateSipTrunkRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.UpdateSipTrunkRequest;

                    /**
                     * Creates a plain object from an UpdateSipTrunkRequest message. Also converts values to other types if specified.
                     * @param message UpdateSipTrunkRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.UpdateSipTrunkRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this UpdateSipTrunkRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for UpdateSipTrunkRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SipTrunk. */
                interface ISipTrunk {

                    /** SipTrunk name */
                    name?: (string|null);

                    /** SipTrunk expectedHostname */
                    expectedHostname?: (string[]|null);

                    /** SipTrunk connections */
                    connections?: (google.cloud.dialogflow.v2.IConnection[]|null);

                    /** SipTrunk displayName */
                    displayName?: (string|null);
                }

                /** Represents a SipTrunk. */
                class SipTrunk implements ISipTrunk {

                    /**
                     * Constructs a new SipTrunk.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.ISipTrunk);

                    /** SipTrunk name. */
                    public name: string;

                    /** SipTrunk expectedHostname. */
                    public expectedHostname: string[];

                    /** SipTrunk connections. */
                    public connections: google.cloud.dialogflow.v2.IConnection[];

                    /** SipTrunk displayName. */
                    public displayName: string;

                    /**
                     * Creates a new SipTrunk instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SipTrunk instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.ISipTrunk): google.cloud.dialogflow.v2.SipTrunk;

                    /**
                     * Encodes the specified SipTrunk message. Does not implicitly {@link google.cloud.dialogflow.v2.SipTrunk.verify|verify} messages.
                     * @param message SipTrunk message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.ISipTrunk, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SipTrunk message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.SipTrunk.verify|verify} messages.
                     * @param message SipTrunk message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.ISipTrunk, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SipTrunk message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SipTrunk
                     * @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.cloud.dialogflow.v2.SipTrunk;

                    /**
                     * Decodes a SipTrunk message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SipTrunk
                     * @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.cloud.dialogflow.v2.SipTrunk;

                    /**
                     * Verifies a SipTrunk 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 SipTrunk message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SipTrunk
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.SipTrunk;

                    /**
                     * Creates a plain object from a SipTrunk message. Also converts values to other types if specified.
                     * @param message SipTrunk
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.SipTrunk, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SipTrunk to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SipTrunk
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a Connection. */
                interface IConnection {

                    /** Connection connectionId */
                    connectionId?: (string|null);

                    /** Connection state */
                    state?: (google.cloud.dialogflow.v2.Connection.State|keyof typeof google.cloud.dialogflow.v2.Connection.State|null);

                    /** Connection updateTime */
                    updateTime?: (google.protobuf.ITimestamp|null);

                    /** Connection errorDetails */
                    errorDetails?: (google.cloud.dialogflow.v2.Connection.IErrorDetails|null);
                }

                /** Represents a Connection. */
                class Connection implements IConnection {

                    /**
                     * Constructs a new Connection.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IConnection);

                    /** Connection connectionId. */
                    public connectionId: string;

                    /** Connection state. */
                    public state: (google.cloud.dialogflow.v2.Connection.State|keyof typeof google.cloud.dialogflow.v2.Connection.State);

                    /** Connection updateTime. */
                    public updateTime?: (google.protobuf.ITimestamp|null);

                    /** Connection errorDetails. */
                    public errorDetails?: (google.cloud.dialogflow.v2.Connection.IErrorDetails|null);

                    /**
                     * Creates a new Connection instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Connection instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IConnection): google.cloud.dialogflow.v2.Connection;

                    /**
                     * Encodes the specified Connection message. Does not implicitly {@link google.cloud.dialogflow.v2.Connection.verify|verify} messages.
                     * @param message Connection message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IConnection, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Connection message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.Connection.verify|verify} messages.
                     * @param message Connection message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.IConnection, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a Connection message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Connection
                     * @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.cloud.dialogflow.v2.Connection;

                    /**
                     * Decodes a Connection message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Connection
                     * @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.cloud.dialogflow.v2.Connection;

                    /**
                     * Verifies a Connection 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 Connection message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Connection
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.Connection;

                    /**
                     * Creates a plain object from a Connection message. Also converts values to other types if specified.
                     * @param message Connection
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.Connection, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Connection to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Connection
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace Connection {

                    /** State enum. */
                    enum State {
                        STATE_UNSPECIFIED = 0,
                        CONNECTED = 1,
                        DISCONNECTED = 2,
                        AUTHENTICATION_FAILED = 3,
                        KEEPALIVE = 4
                    }

                    /** CertificateState enum. */
                    enum CertificateState {
                        CERTIFICATE_STATE_UNSPECIFIED = 0,
                        CERTIFICATE_VALID = 1,
                        CERTIFICATE_INVALID = 2,
                        CERTIFICATE_EXPIRED = 3,
                        CERTIFICATE_HOSTNAME_NOT_FOUND = 4,
                        CERTIFICATE_UNAUTHENTICATED = 5,
                        CERTIFICATE_TRUST_STORE_NOT_FOUND = 6,
                        CERTIFICATE_HOSTNAME_INVALID_FORMAT = 7,
                        CERTIFICATE_QUOTA_EXCEEDED = 8
                    }

                    /** Properties of an ErrorDetails. */
                    interface IErrorDetails {

                        /** ErrorDetails certificateState */
                        certificateState?: (google.cloud.dialogflow.v2.Connection.CertificateState|keyof typeof google.cloud.dialogflow.v2.Connection.CertificateState|null);

                        /** ErrorDetails errorMessage */
                        errorMessage?: (string|null);
                    }

                    /** Represents an ErrorDetails. */
                    class ErrorDetails implements IErrorDetails {

                        /**
                         * Constructs a new ErrorDetails.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2.Connection.IErrorDetails);

                        /** ErrorDetails certificateState. */
                        public certificateState?: (google.cloud.dialogflow.v2.Connection.CertificateState|keyof typeof google.cloud.dialogflow.v2.Connection.CertificateState|null);

                        /** ErrorDetails errorMessage. */
                        public errorMessage?: (string|null);

                        /**
                         * Creates a new ErrorDetails instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns ErrorDetails instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2.Connection.IErrorDetails): google.cloud.dialogflow.v2.Connection.ErrorDetails;

                        /**
                         * Encodes the specified ErrorDetails message. Does not implicitly {@link google.cloud.dialogflow.v2.Connection.ErrorDetails.verify|verify} messages.
                         * @param message ErrorDetails message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2.Connection.IErrorDetails, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified ErrorDetails message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.Connection.ErrorDetails.verify|verify} messages.
                         * @param message ErrorDetails message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2.Connection.IErrorDetails, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes an ErrorDetails message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns ErrorDetails
                         * @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.cloud.dialogflow.v2.Connection.ErrorDetails;

                        /**
                         * Decodes an ErrorDetails message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns ErrorDetails
                         * @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.cloud.dialogflow.v2.Connection.ErrorDetails;

                        /**
                         * Verifies an ErrorDetails 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 ErrorDetails message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns ErrorDetails
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.Connection.ErrorDetails;

                        /**
                         * Creates a plain object from an ErrorDetails message. Also converts values to other types if specified.
                         * @param message ErrorDetails
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.dialogflow.v2.Connection.ErrorDetails, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this ErrorDetails to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for ErrorDetails
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }
                }

                /** Represents a Versions */
                class Versions extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new Versions 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 Versions 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): Versions;

                    /**
                     * Calls ListVersions.
                     * @param request ListVersionsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ListVersionsResponse
                     */
                    public listVersions(request: google.cloud.dialogflow.v2.IListVersionsRequest, callback: google.cloud.dialogflow.v2.Versions.ListVersionsCallback): void;

                    /**
                     * Calls ListVersions.
                     * @param request ListVersionsRequest message or plain object
                     * @returns Promise
                     */
                    public listVersions(request: google.cloud.dialogflow.v2.IListVersionsRequest): Promise<google.cloud.dialogflow.v2.ListVersionsResponse>;

                    /**
                     * Calls GetVersion.
                     * @param request GetVersionRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Version
                     */
                    public getVersion(request: google.cloud.dialogflow.v2.IGetVersionRequest, callback: google.cloud.dialogflow.v2.Versions.GetVersionCallback): void;

                    /**
                     * Calls GetVersion.
                     * @param request GetVersionRequest message or plain object
                     * @returns Promise
                     */
                    public getVersion(request: google.cloud.dialogflow.v2.IGetVersionRequest): Promise<google.cloud.dialogflow.v2.Version>;

                    /**
                     * Calls CreateVersion.
                     * @param request CreateVersionRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Version
                     */
                    public createVersion(request: google.cloud.dialogflow.v2.ICreateVersionRequest, callback: google.cloud.dialogflow.v2.Versions.CreateVersionCallback): void;

                    /**
                     * Calls CreateVersion.
                     * @param request CreateVersionRequest message or plain object
                     * @returns Promise
                     */
                    public createVersion(request: google.cloud.dialogflow.v2.ICreateVersionRequest): Promise<google.cloud.dialogflow.v2.Version>;

                    /**
                     * Calls UpdateVersion.
                     * @param request UpdateVersionRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Version
                     */
                    public updateVersion(request: google.cloud.dialogflow.v2.IUpdateVersionRequest, callback: google.cloud.dialogflow.v2.Versions.UpdateVersionCallback): void;

                    /**
                     * Calls UpdateVersion.
                     * @param request UpdateVersionRequest message or plain object
                     * @returns Promise
                     */
                    public updateVersion(request: google.cloud.dialogflow.v2.IUpdateVersionRequest): Promise<google.cloud.dialogflow.v2.Version>;

                    /**
                     * Calls DeleteVersion.
                     * @param request DeleteVersionRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Empty
                     */
                    public deleteVersion(request: google.cloud.dialogflow.v2.IDeleteVersionRequest, callback: google.cloud.dialogflow.v2.Versions.DeleteVersionCallback): void;

                    /**
                     * Calls DeleteVersion.
                     * @param request DeleteVersionRequest message or plain object
                     * @returns Promise
                     */
                    public deleteVersion(request: google.cloud.dialogflow.v2.IDeleteVersionRequest): Promise<google.protobuf.Empty>;
                }

                namespace Versions {

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2.Versions|listVersions}.
                     * @param error Error, if any
                     * @param [response] ListVersionsResponse
                     */
                    type ListVersionsCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2.ListVersionsResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2.Versions|getVersion}.
                     * @param error Error, if any
                     * @param [response] Version
                     */
                    type GetVersionCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2.Version) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2.Versions|createVersion}.
                     * @param error Error, if any
                     * @param [response] Version
                     */
                    type CreateVersionCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2.Version) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2.Versions|updateVersion}.
                     * @param error Error, if any
                     * @param [response] Version
                     */
                    type UpdateVersionCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2.Version) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2.Versions|deleteVersion}.
                     * @param error Error, if any
                     * @param [response] Empty
                     */
                    type DeleteVersionCallback = (error: (Error|null), response?: google.protobuf.Empty) => void;
                }

                /** Properties of a Version. */
                interface IVersion {

                    /** Version name */
                    name?: (string|null);

                    /** Version description */
                    description?: (string|null);

                    /** Version versionNumber */
                    versionNumber?: (number|null);

                    /** Version createTime */
                    createTime?: (google.protobuf.ITimestamp|null);

                    /** Version status */
                    status?: (google.cloud.dialogflow.v2.Version.VersionStatus|keyof typeof google.cloud.dialogflow.v2.Version.VersionStatus|null);
                }

                /** Represents a Version. */
                class Version implements IVersion {

                    /**
                     * Constructs a new Version.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IVersion);

                    /** Version name. */
                    public name: string;

                    /** Version description. */
                    public description: string;

                    /** Version versionNumber. */
                    public versionNumber: number;

                    /** Version createTime. */
                    public createTime?: (google.protobuf.ITimestamp|null);

                    /** Version status. */
                    public status: (google.cloud.dialogflow.v2.Version.VersionStatus|keyof typeof google.cloud.dialogflow.v2.Version.VersionStatus);

                    /**
                     * Creates a new Version instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Version instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IVersion): google.cloud.dialogflow.v2.Version;

                    /**
                     * Encodes the specified Version message. Does not implicitly {@link google.cloud.dialogflow.v2.Version.verify|verify} messages.
                     * @param message Version message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IVersion, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Version message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.Version.verify|verify} messages.
                     * @param message Version message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.IVersion, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a Version message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Version
                     * @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.cloud.dialogflow.v2.Version;

                    /**
                     * Decodes a Version message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Version
                     * @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.cloud.dialogflow.v2.Version;

                    /**
                     * Verifies a Version 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 Version message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Version
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.Version;

                    /**
                     * Creates a plain object from a Version message. Also converts values to other types if specified.
                     * @param message Version
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.Version, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Version to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Version
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace Version {

                    /** VersionStatus enum. */
                    enum VersionStatus {
                        VERSION_STATUS_UNSPECIFIED = 0,
                        IN_PROGRESS = 1,
                        READY = 2,
                        FAILED = 3
                    }
                }

                /** Properties of a ListVersionsRequest. */
                interface IListVersionsRequest {

                    /** ListVersionsRequest parent */
                    parent?: (string|null);

                    /** ListVersionsRequest pageSize */
                    pageSize?: (number|null);

                    /** ListVersionsRequest pageToken */
                    pageToken?: (string|null);
                }

                /** Represents a ListVersionsRequest. */
                class ListVersionsRequest implements IListVersionsRequest {

                    /**
                     * Constructs a new ListVersionsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IListVersionsRequest);

                    /** ListVersionsRequest parent. */
                    public parent: string;

                    /** ListVersionsRequest pageSize. */
                    public pageSize: number;

                    /** ListVersionsRequest pageToken. */
                    public pageToken: string;

                    /**
                     * Creates a new ListVersionsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListVersionsRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IListVersionsRequest): google.cloud.dialogflow.v2.ListVersionsRequest;

                    /**
                     * Encodes the specified ListVersionsRequest message. Does not implicitly {@link google.cloud.dialogflow.v2.ListVersionsRequest.verify|verify} messages.
                     * @param message ListVersionsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IListVersionsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListVersionsRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.ListVersionsRequest.verify|verify} messages.
                     * @param message ListVersionsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.IListVersionsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListVersionsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListVersionsRequest
                     * @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.cloud.dialogflow.v2.ListVersionsRequest;

                    /**
                     * Decodes a ListVersionsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListVersionsRequest
                     * @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.cloud.dialogflow.v2.ListVersionsRequest;

                    /**
                     * Verifies a ListVersionsRequest 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 ListVersionsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListVersionsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.ListVersionsRequest;

                    /**
                     * Creates a plain object from a ListVersionsRequest message. Also converts values to other types if specified.
                     * @param message ListVersionsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.ListVersionsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListVersionsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListVersionsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListVersionsResponse. */
                interface IListVersionsResponse {

                    /** ListVersionsResponse versions */
                    versions?: (google.cloud.dialogflow.v2.IVersion[]|null);

                    /** ListVersionsResponse nextPageToken */
                    nextPageToken?: (string|null);
                }

                /** Represents a ListVersionsResponse. */
                class ListVersionsResponse implements IListVersionsResponse {

                    /**
                     * Constructs a new ListVersionsResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IListVersionsResponse);

                    /** ListVersionsResponse versions. */
                    public versions: google.cloud.dialogflow.v2.IVersion[];

                    /** ListVersionsResponse nextPageToken. */
                    public nextPageToken: string;

                    /**
                     * Creates a new ListVersionsResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListVersionsResponse instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IListVersionsResponse): google.cloud.dialogflow.v2.ListVersionsResponse;

                    /**
                     * Encodes the specified ListVersionsResponse message. Does not implicitly {@link google.cloud.dialogflow.v2.ListVersionsResponse.verify|verify} messages.
                     * @param message ListVersionsResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IListVersionsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListVersionsResponse message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.ListVersionsResponse.verify|verify} messages.
                     * @param message ListVersionsResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.IListVersionsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListVersionsResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListVersionsResponse
                     * @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.cloud.dialogflow.v2.ListVersionsResponse;

                    /**
                     * Decodes a ListVersionsResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListVersionsResponse
                     * @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.cloud.dialogflow.v2.ListVersionsResponse;

                    /**
                     * Verifies a ListVersionsResponse 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 ListVersionsResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListVersionsResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.ListVersionsResponse;

                    /**
                     * Creates a plain object from a ListVersionsResponse message. Also converts values to other types if specified.
                     * @param message ListVersionsResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.ListVersionsResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListVersionsResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListVersionsResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetVersionRequest. */
                interface IGetVersionRequest {

                    /** GetVersionRequest name */
                    name?: (string|null);
                }

                /** Represents a GetVersionRequest. */
                class GetVersionRequest implements IGetVersionRequest {

                    /**
                     * Constructs a new GetVersionRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IGetVersionRequest);

                    /** GetVersionRequest name. */
                    public name: string;

                    /**
                     * Creates a new GetVersionRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetVersionRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IGetVersionRequest): google.cloud.dialogflow.v2.GetVersionRequest;

                    /**
                     * Encodes the specified GetVersionRequest message. Does not implicitly {@link google.cloud.dialogflow.v2.GetVersionRequest.verify|verify} messages.
                     * @param message GetVersionRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IGetVersionRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetVersionRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.GetVersionRequest.verify|verify} messages.
                     * @param message GetVersionRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.IGetVersionRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetVersionRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetVersionRequest
                     * @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.cloud.dialogflow.v2.GetVersionRequest;

                    /**
                     * Decodes a GetVersionRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetVersionRequest
                     * @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.cloud.dialogflow.v2.GetVersionRequest;

                    /**
                     * Verifies a GetVersionRequest 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 GetVersionRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetVersionRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.GetVersionRequest;

                    /**
                     * Creates a plain object from a GetVersionRequest message. Also converts values to other types if specified.
                     * @param message GetVersionRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.GetVersionRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetVersionRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetVersionRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a CreateVersionRequest. */
                interface ICreateVersionRequest {

                    /** CreateVersionRequest parent */
                    parent?: (string|null);

                    /** CreateVersionRequest version */
                    version?: (google.cloud.dialogflow.v2.IVersion|null);
                }

                /** Represents a CreateVersionRequest. */
                class CreateVersionRequest implements ICreateVersionRequest {

                    /**
                     * Constructs a new CreateVersionRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.ICreateVersionRequest);

                    /** CreateVersionRequest parent. */
                    public parent: string;

                    /** CreateVersionRequest version. */
                    public version?: (google.cloud.dialogflow.v2.IVersion|null);

                    /**
                     * Creates a new CreateVersionRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CreateVersionRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.ICreateVersionRequest): google.cloud.dialogflow.v2.CreateVersionRequest;

                    /**
                     * Encodes the specified CreateVersionRequest message. Does not implicitly {@link google.cloud.dialogflow.v2.CreateVersionRequest.verify|verify} messages.
                     * @param message CreateVersionRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.ICreateVersionRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CreateVersionRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.CreateVersionRequest.verify|verify} messages.
                     * @param message CreateVersionRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.ICreateVersionRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CreateVersionRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CreateVersionRequest
                     * @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.cloud.dialogflow.v2.CreateVersionRequest;

                    /**
                     * Decodes a CreateVersionRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CreateVersionRequest
                     * @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.cloud.dialogflow.v2.CreateVersionRequest;

                    /**
                     * Verifies a CreateVersionRequest 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 CreateVersionRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CreateVersionRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.CreateVersionRequest;

                    /**
                     * Creates a plain object from a CreateVersionRequest message. Also converts values to other types if specified.
                     * @param message CreateVersionRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.CreateVersionRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CreateVersionRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CreateVersionRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an UpdateVersionRequest. */
                interface IUpdateVersionRequest {

                    /** UpdateVersionRequest version */
                    version?: (google.cloud.dialogflow.v2.IVersion|null);

                    /** UpdateVersionRequest updateMask */
                    updateMask?: (google.protobuf.IFieldMask|null);
                }

                /** Represents an UpdateVersionRequest. */
                class UpdateVersionRequest implements IUpdateVersionRequest {

                    /**
                     * Constructs a new UpdateVersionRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IUpdateVersionRequest);

                    /** UpdateVersionRequest version. */
                    public version?: (google.cloud.dialogflow.v2.IVersion|null);

                    /** UpdateVersionRequest updateMask. */
                    public updateMask?: (google.protobuf.IFieldMask|null);

                    /**
                     * Creates a new UpdateVersionRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UpdateVersionRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IUpdateVersionRequest): google.cloud.dialogflow.v2.UpdateVersionRequest;

                    /**
                     * Encodes the specified UpdateVersionRequest message. Does not implicitly {@link google.cloud.dialogflow.v2.UpdateVersionRequest.verify|verify} messages.
                     * @param message UpdateVersionRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IUpdateVersionRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified UpdateVersionRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.UpdateVersionRequest.verify|verify} messages.
                     * @param message UpdateVersionRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.IUpdateVersionRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an UpdateVersionRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns UpdateVersionRequest
                     * @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.cloud.dialogflow.v2.UpdateVersionRequest;

                    /**
                     * Decodes an UpdateVersionRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns UpdateVersionRequest
                     * @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.cloud.dialogflow.v2.UpdateVersionRequest;

                    /**
                     * Verifies an UpdateVersionRequest 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 UpdateVersionRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UpdateVersionRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.UpdateVersionRequest;

                    /**
                     * Creates a plain object from an UpdateVersionRequest message. Also converts values to other types if specified.
                     * @param message UpdateVersionRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.UpdateVersionRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this UpdateVersionRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for UpdateVersionRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteVersionRequest. */
                interface IDeleteVersionRequest {

                    /** DeleteVersionRequest name */
                    name?: (string|null);
                }

                /** Represents a DeleteVersionRequest. */
                class DeleteVersionRequest implements IDeleteVersionRequest {

                    /**
                     * Constructs a new DeleteVersionRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IDeleteVersionRequest);

                    /** DeleteVersionRequest name. */
                    public name: string;

                    /**
                     * Creates a new DeleteVersionRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteVersionRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IDeleteVersionRequest): google.cloud.dialogflow.v2.DeleteVersionRequest;

                    /**
                     * Encodes the specified DeleteVersionRequest message. Does not implicitly {@link google.cloud.dialogflow.v2.DeleteVersionRequest.verify|verify} messages.
                     * @param message DeleteVersionRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IDeleteVersionRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteVersionRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.DeleteVersionRequest.verify|verify} messages.
                     * @param message DeleteVersionRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.IDeleteVersionRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteVersionRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteVersionRequest
                     * @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.cloud.dialogflow.v2.DeleteVersionRequest;

                    /**
                     * Decodes a DeleteVersionRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteVersionRequest
                     * @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.cloud.dialogflow.v2.DeleteVersionRequest;

                    /**
                     * Verifies a DeleteVersionRequest 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 DeleteVersionRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteVersionRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.DeleteVersionRequest;

                    /**
                     * Creates a plain object from a DeleteVersionRequest message. Also converts values to other types if specified.
                     * @param message DeleteVersionRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.DeleteVersionRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteVersionRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteVersionRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a WebhookRequest. */
                interface IWebhookRequest {

                    /** WebhookRequest session */
                    session?: (string|null);

                    /** WebhookRequest responseId */
                    responseId?: (string|null);

                    /** WebhookRequest queryResult */
                    queryResult?: (google.cloud.dialogflow.v2.IQueryResult|null);

                    /** WebhookRequest originalDetectIntentRequest */
                    originalDetectIntentRequest?: (google.cloud.dialogflow.v2.IOriginalDetectIntentRequest|null);
                }

                /** Represents a WebhookRequest. */
                class WebhookRequest implements IWebhookRequest {

                    /**
                     * Constructs a new WebhookRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IWebhookRequest);

                    /** WebhookRequest session. */
                    public session: string;

                    /** WebhookRequest responseId. */
                    public responseId: string;

                    /** WebhookRequest queryResult. */
                    public queryResult?: (google.cloud.dialogflow.v2.IQueryResult|null);

                    /** WebhookRequest originalDetectIntentRequest. */
                    public originalDetectIntentRequest?: (google.cloud.dialogflow.v2.IOriginalDetectIntentRequest|null);

                    /**
                     * Creates a new WebhookRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns WebhookRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IWebhookRequest): google.cloud.dialogflow.v2.WebhookRequest;

                    /**
                     * Encodes the specified WebhookRequest message. Does not implicitly {@link google.cloud.dialogflow.v2.WebhookRequest.verify|verify} messages.
                     * @param message WebhookRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IWebhookRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified WebhookRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.WebhookRequest.verify|verify} messages.
                     * @param message WebhookRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.IWebhookRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a WebhookRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns WebhookRequest
                     * @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.cloud.dialogflow.v2.WebhookRequest;

                    /**
                     * Decodes a WebhookRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns WebhookRequest
                     * @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.cloud.dialogflow.v2.WebhookRequest;

                    /**
                     * Verifies a WebhookRequest 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 WebhookRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns WebhookRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.WebhookRequest;

                    /**
                     * Creates a plain object from a WebhookRequest message. Also converts values to other types if specified.
                     * @param message WebhookRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.WebhookRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this WebhookRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for WebhookRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a WebhookResponse. */
                interface IWebhookResponse {

                    /** WebhookResponse fulfillmentText */
                    fulfillmentText?: (string|null);

                    /** WebhookResponse fulfillmentMessages */
                    fulfillmentMessages?: (google.cloud.dialogflow.v2.Intent.IMessage[]|null);

                    /** WebhookResponse source */
                    source?: (string|null);

                    /** WebhookResponse payload */
                    payload?: (google.protobuf.IStruct|null);

                    /** WebhookResponse outputContexts */
                    outputContexts?: (google.cloud.dialogflow.v2.IContext[]|null);

                    /** WebhookResponse followupEventInput */
                    followupEventInput?: (google.cloud.dialogflow.v2.IEventInput|null);

                    /** WebhookResponse sessionEntityTypes */
                    sessionEntityTypes?: (google.cloud.dialogflow.v2.ISessionEntityType[]|null);
                }

                /** Represents a WebhookResponse. */
                class WebhookResponse implements IWebhookResponse {

                    /**
                     * Constructs a new WebhookResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IWebhookResponse);

                    /** WebhookResponse fulfillmentText. */
                    public fulfillmentText: string;

                    /** WebhookResponse fulfillmentMessages. */
                    public fulfillmentMessages: google.cloud.dialogflow.v2.Intent.IMessage[];

                    /** WebhookResponse source. */
                    public source: string;

                    /** WebhookResponse payload. */
                    public payload?: (google.protobuf.IStruct|null);

                    /** WebhookResponse outputContexts. */
                    public outputContexts: google.cloud.dialogflow.v2.IContext[];

                    /** WebhookResponse followupEventInput. */
                    public followupEventInput?: (google.cloud.dialogflow.v2.IEventInput|null);

                    /** WebhookResponse sessionEntityTypes. */
                    public sessionEntityTypes: google.cloud.dialogflow.v2.ISessionEntityType[];

                    /**
                     * Creates a new WebhookResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns WebhookResponse instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IWebhookResponse): google.cloud.dialogflow.v2.WebhookResponse;

                    /**
                     * Encodes the specified WebhookResponse message. Does not implicitly {@link google.cloud.dialogflow.v2.WebhookResponse.verify|verify} messages.
                     * @param message WebhookResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IWebhookResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified WebhookResponse message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.WebhookResponse.verify|verify} messages.
                     * @param message WebhookResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.IWebhookResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a WebhookResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns WebhookResponse
                     * @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.cloud.dialogflow.v2.WebhookResponse;

                    /**
                     * Decodes a WebhookResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns WebhookResponse
                     * @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.cloud.dialogflow.v2.WebhookResponse;

                    /**
                     * Verifies a WebhookResponse 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 WebhookResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns WebhookResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.WebhookResponse;

                    /**
                     * Creates a plain object from a WebhookResponse message. Also converts values to other types if specified.
                     * @param message WebhookResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.WebhookResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this WebhookResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for WebhookResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an OriginalDetectIntentRequest. */
                interface IOriginalDetectIntentRequest {

                    /** OriginalDetectIntentRequest source */
                    source?: (string|null);

                    /** OriginalDetectIntentRequest version */
                    version?: (string|null);

                    /** OriginalDetectIntentRequest payload */
                    payload?: (google.protobuf.IStruct|null);
                }

                /** Represents an OriginalDetectIntentRequest. */
                class OriginalDetectIntentRequest implements IOriginalDetectIntentRequest {

                    /**
                     * Constructs a new OriginalDetectIntentRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2.IOriginalDetectIntentRequest);

                    /** OriginalDetectIntentRequest source. */
                    public source: string;

                    /** OriginalDetectIntentRequest version. */
                    public version: string;

                    /** OriginalDetectIntentRequest payload. */
                    public payload?: (google.protobuf.IStruct|null);

                    /**
                     * Creates a new OriginalDetectIntentRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns OriginalDetectIntentRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2.IOriginalDetectIntentRequest): google.cloud.dialogflow.v2.OriginalDetectIntentRequest;

                    /**
                     * Encodes the specified OriginalDetectIntentRequest message. Does not implicitly {@link google.cloud.dialogflow.v2.OriginalDetectIntentRequest.verify|verify} messages.
                     * @param message OriginalDetectIntentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2.IOriginalDetectIntentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified OriginalDetectIntentRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2.OriginalDetectIntentRequest.verify|verify} messages.
                     * @param message OriginalDetectIntentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2.IOriginalDetectIntentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an OriginalDetectIntentRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns OriginalDetectIntentRequest
                     * @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.cloud.dialogflow.v2.OriginalDetectIntentRequest;

                    /**
                     * Decodes an OriginalDetectIntentRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns OriginalDetectIntentRequest
                     * @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.cloud.dialogflow.v2.OriginalDetectIntentRequest;

                    /**
                     * Verifies an OriginalDetectIntentRequest 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 OriginalDetectIntentRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns OriginalDetectIntentRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2.OriginalDetectIntentRequest;

                    /**
                     * Creates a plain object from an OriginalDetectIntentRequest message. Also converts values to other types if specified.
                     * @param message OriginalDetectIntentRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2.OriginalDetectIntentRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this OriginalDetectIntentRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for OriginalDetectIntentRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }
            }

            /** Namespace v2beta1. */
            namespace v2beta1 {

                /** Represents an Agents */
                class Agents extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new Agents 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 Agents 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): Agents;

                    /**
                     * Calls GetAgent.
                     * @param request GetAgentRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Agent
                     */
                    public getAgent(request: google.cloud.dialogflow.v2beta1.IGetAgentRequest, callback: google.cloud.dialogflow.v2beta1.Agents.GetAgentCallback): void;

                    /**
                     * Calls GetAgent.
                     * @param request GetAgentRequest message or plain object
                     * @returns Promise
                     */
                    public getAgent(request: google.cloud.dialogflow.v2beta1.IGetAgentRequest): Promise<google.cloud.dialogflow.v2beta1.Agent>;

                    /**
                     * Calls SetAgent.
                     * @param request SetAgentRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Agent
                     */
                    public setAgent(request: google.cloud.dialogflow.v2beta1.ISetAgentRequest, callback: google.cloud.dialogflow.v2beta1.Agents.SetAgentCallback): void;

                    /**
                     * Calls SetAgent.
                     * @param request SetAgentRequest message or plain object
                     * @returns Promise
                     */
                    public setAgent(request: google.cloud.dialogflow.v2beta1.ISetAgentRequest): Promise<google.cloud.dialogflow.v2beta1.Agent>;

                    /**
                     * Calls DeleteAgent.
                     * @param request DeleteAgentRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Empty
                     */
                    public deleteAgent(request: google.cloud.dialogflow.v2beta1.IDeleteAgentRequest, callback: google.cloud.dialogflow.v2beta1.Agents.DeleteAgentCallback): void;

                    /**
                     * Calls DeleteAgent.
                     * @param request DeleteAgentRequest message or plain object
                     * @returns Promise
                     */
                    public deleteAgent(request: google.cloud.dialogflow.v2beta1.IDeleteAgentRequest): Promise<google.protobuf.Empty>;

                    /**
                     * Calls SearchAgents.
                     * @param request SearchAgentsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and SearchAgentsResponse
                     */
                    public searchAgents(request: google.cloud.dialogflow.v2beta1.ISearchAgentsRequest, callback: google.cloud.dialogflow.v2beta1.Agents.SearchAgentsCallback): void;

                    /**
                     * Calls SearchAgents.
                     * @param request SearchAgentsRequest message or plain object
                     * @returns Promise
                     */
                    public searchAgents(request: google.cloud.dialogflow.v2beta1.ISearchAgentsRequest): Promise<google.cloud.dialogflow.v2beta1.SearchAgentsResponse>;

                    /**
                     * Calls TrainAgent.
                     * @param request TrainAgentRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public trainAgent(request: google.cloud.dialogflow.v2beta1.ITrainAgentRequest, callback: google.cloud.dialogflow.v2beta1.Agents.TrainAgentCallback): void;

                    /**
                     * Calls TrainAgent.
                     * @param request TrainAgentRequest message or plain object
                     * @returns Promise
                     */
                    public trainAgent(request: google.cloud.dialogflow.v2beta1.ITrainAgentRequest): Promise<google.longrunning.Operation>;

                    /**
                     * Calls ExportAgent.
                     * @param request ExportAgentRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public exportAgent(request: google.cloud.dialogflow.v2beta1.IExportAgentRequest, callback: google.cloud.dialogflow.v2beta1.Agents.ExportAgentCallback): void;

                    /**
                     * Calls ExportAgent.
                     * @param request ExportAgentRequest message or plain object
                     * @returns Promise
                     */
                    public exportAgent(request: google.cloud.dialogflow.v2beta1.IExportAgentRequest): Promise<google.longrunning.Operation>;

                    /**
                     * Calls ImportAgent.
                     * @param request ImportAgentRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public importAgent(request: google.cloud.dialogflow.v2beta1.IImportAgentRequest, callback: google.cloud.dialogflow.v2beta1.Agents.ImportAgentCallback): void;

                    /**
                     * Calls ImportAgent.
                     * @param request ImportAgentRequest message or plain object
                     * @returns Promise
                     */
                    public importAgent(request: google.cloud.dialogflow.v2beta1.IImportAgentRequest): Promise<google.longrunning.Operation>;

                    /**
                     * Calls RestoreAgent.
                     * @param request RestoreAgentRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public restoreAgent(request: google.cloud.dialogflow.v2beta1.IRestoreAgentRequest, callback: google.cloud.dialogflow.v2beta1.Agents.RestoreAgentCallback): void;

                    /**
                     * Calls RestoreAgent.
                     * @param request RestoreAgentRequest message or plain object
                     * @returns Promise
                     */
                    public restoreAgent(request: google.cloud.dialogflow.v2beta1.IRestoreAgentRequest): Promise<google.longrunning.Operation>;

                    /**
                     * Calls GetValidationResult.
                     * @param request GetValidationResultRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ValidationResult
                     */
                    public getValidationResult(request: google.cloud.dialogflow.v2beta1.IGetValidationResultRequest, callback: google.cloud.dialogflow.v2beta1.Agents.GetValidationResultCallback): void;

                    /**
                     * Calls GetValidationResult.
                     * @param request GetValidationResultRequest message or plain object
                     * @returns Promise
                     */
                    public getValidationResult(request: google.cloud.dialogflow.v2beta1.IGetValidationResultRequest): Promise<google.cloud.dialogflow.v2beta1.ValidationResult>;
                }

                namespace Agents {

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2beta1.Agents|getAgent}.
                     * @param error Error, if any
                     * @param [response] Agent
                     */
                    type GetAgentCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2beta1.Agent) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2beta1.Agents|setAgent}.
                     * @param error Error, if any
                     * @param [response] Agent
                     */
                    type SetAgentCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2beta1.Agent) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2beta1.Agents|deleteAgent}.
                     * @param error Error, if any
                     * @param [response] Empty
                     */
                    type DeleteAgentCallback = (error: (Error|null), response?: google.protobuf.Empty) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2beta1.Agents|searchAgents}.
                     * @param error Error, if any
                     * @param [response] SearchAgentsResponse
                     */
                    type SearchAgentsCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2beta1.SearchAgentsResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2beta1.Agents|trainAgent}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type TrainAgentCallback = (error: (Error|null), response?: google.longrunning.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2beta1.Agents|exportAgent}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type ExportAgentCallback = (error: (Error|null), response?: google.longrunning.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2beta1.Agents|importAgent}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type ImportAgentCallback = (error: (Error|null), response?: google.longrunning.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2beta1.Agents|restoreAgent}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type RestoreAgentCallback = (error: (Error|null), response?: google.longrunning.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2beta1.Agents|getValidationResult}.
                     * @param error Error, if any
                     * @param [response] ValidationResult
                     */
                    type GetValidationResultCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2beta1.ValidationResult) => void;
                }

                /** Properties of an Agent. */
                interface IAgent {

                    /** Agent parent */
                    parent?: (string|null);

                    /** Agent displayName */
                    displayName?: (string|null);

                    /** Agent defaultLanguageCode */
                    defaultLanguageCode?: (string|null);

                    /** Agent supportedLanguageCodes */
                    supportedLanguageCodes?: (string[]|null);

                    /** Agent timeZone */
                    timeZone?: (string|null);

                    /** Agent description */
                    description?: (string|null);

                    /** Agent avatarUri */
                    avatarUri?: (string|null);

                    /** Agent enableLogging */
                    enableLogging?: (boolean|null);

                    /** Agent matchMode */
                    matchMode?: (google.cloud.dialogflow.v2beta1.Agent.MatchMode|keyof typeof google.cloud.dialogflow.v2beta1.Agent.MatchMode|null);

                    /** Agent classificationThreshold */
                    classificationThreshold?: (number|null);

                    /** Agent apiVersion */
                    apiVersion?: (google.cloud.dialogflow.v2beta1.Agent.ApiVersion|keyof typeof google.cloud.dialogflow.v2beta1.Agent.ApiVersion|null);

                    /** Agent tier */
                    tier?: (google.cloud.dialogflow.v2beta1.Agent.Tier|keyof typeof google.cloud.dialogflow.v2beta1.Agent.Tier|null);
                }

                /** Represents an Agent. */
                class Agent implements IAgent {

                    /**
                     * Constructs a new Agent.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IAgent);

                    /** Agent parent. */
                    public parent: string;

                    /** Agent displayName. */
                    public displayName: string;

                    /** Agent defaultLanguageCode. */
                    public defaultLanguageCode: string;

                    /** Agent supportedLanguageCodes. */
                    public supportedLanguageCodes: string[];

                    /** Agent timeZone. */
                    public timeZone: string;

                    /** Agent description. */
                    public description: string;

                    /** Agent avatarUri. */
                    public avatarUri: string;

                    /** Agent enableLogging. */
                    public enableLogging: boolean;

                    /** Agent matchMode. */
                    public matchMode: (google.cloud.dialogflow.v2beta1.Agent.MatchMode|keyof typeof google.cloud.dialogflow.v2beta1.Agent.MatchMode);

                    /** Agent classificationThreshold. */
                    public classificationThreshold: number;

                    /** Agent apiVersion. */
                    public apiVersion: (google.cloud.dialogflow.v2beta1.Agent.ApiVersion|keyof typeof google.cloud.dialogflow.v2beta1.Agent.ApiVersion);

                    /** Agent tier. */
                    public tier: (google.cloud.dialogflow.v2beta1.Agent.Tier|keyof typeof google.cloud.dialogflow.v2beta1.Agent.Tier);

                    /**
                     * Creates a new Agent instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Agent instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IAgent): google.cloud.dialogflow.v2beta1.Agent;

                    /**
                     * Encodes the specified Agent message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Agent.verify|verify} messages.
                     * @param message Agent message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IAgent, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Agent message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Agent.verify|verify} messages.
                     * @param message Agent message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IAgent, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an Agent message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Agent
                     * @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.cloud.dialogflow.v2beta1.Agent;

                    /**
                     * Decodes an Agent message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Agent
                     * @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.cloud.dialogflow.v2beta1.Agent;

                    /**
                     * Verifies an Agent 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 Agent message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Agent
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.Agent;

                    /**
                     * Creates a plain object from an Agent message. Also converts values to other types if specified.
                     * @param message Agent
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.Agent, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Agent to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Agent
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace Agent {

                    /** MatchMode enum. */
                    enum MatchMode {
                        MATCH_MODE_UNSPECIFIED = 0,
                        MATCH_MODE_HYBRID = 1,
                        MATCH_MODE_ML_ONLY = 2
                    }

                    /** ApiVersion enum. */
                    enum ApiVersion {
                        API_VERSION_UNSPECIFIED = 0,
                        API_VERSION_V1 = 1,
                        API_VERSION_V2 = 2,
                        API_VERSION_V2_BETA_1 = 3
                    }

                    /** Tier enum. */
                    enum Tier {
                        TIER_UNSPECIFIED = 0,
                        TIER_STANDARD = 1,
                        TIER_ENTERPRISE = 2,
                        TIER_ENTERPRISE_PLUS = 3
                    }
                }

                /** Properties of a GetAgentRequest. */
                interface IGetAgentRequest {

                    /** GetAgentRequest parent */
                    parent?: (string|null);
                }

                /** Represents a GetAgentRequest. */
                class GetAgentRequest implements IGetAgentRequest {

                    /**
                     * Constructs a new GetAgentRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IGetAgentRequest);

                    /** GetAgentRequest parent. */
                    public parent: string;

                    /**
                     * Creates a new GetAgentRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetAgentRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IGetAgentRequest): google.cloud.dialogflow.v2beta1.GetAgentRequest;

                    /**
                     * Encodes the specified GetAgentRequest message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.GetAgentRequest.verify|verify} messages.
                     * @param message GetAgentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IGetAgentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetAgentRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.GetAgentRequest.verify|verify} messages.
                     * @param message GetAgentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IGetAgentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetAgentRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetAgentRequest
                     * @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.cloud.dialogflow.v2beta1.GetAgentRequest;

                    /**
                     * Decodes a GetAgentRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetAgentRequest
                     * @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.cloud.dialogflow.v2beta1.GetAgentRequest;

                    /**
                     * Verifies a GetAgentRequest 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 GetAgentRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetAgentRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.GetAgentRequest;

                    /**
                     * Creates a plain object from a GetAgentRequest message. Also converts values to other types if specified.
                     * @param message GetAgentRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.GetAgentRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetAgentRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetAgentRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetAgentRequest. */
                interface ISetAgentRequest {

                    /** SetAgentRequest agent */
                    agent?: (google.cloud.dialogflow.v2beta1.IAgent|null);

                    /** SetAgentRequest updateMask */
                    updateMask?: (google.protobuf.IFieldMask|null);
                }

                /** Represents a SetAgentRequest. */
                class SetAgentRequest implements ISetAgentRequest {

                    /**
                     * Constructs a new SetAgentRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.ISetAgentRequest);

                    /** SetAgentRequest agent. */
                    public agent?: (google.cloud.dialogflow.v2beta1.IAgent|null);

                    /** SetAgentRequest updateMask. */
                    public updateMask?: (google.protobuf.IFieldMask|null);

                    /**
                     * Creates a new SetAgentRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetAgentRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.ISetAgentRequest): google.cloud.dialogflow.v2beta1.SetAgentRequest;

                    /**
                     * Encodes the specified SetAgentRequest message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.SetAgentRequest.verify|verify} messages.
                     * @param message SetAgentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.ISetAgentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetAgentRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.SetAgentRequest.verify|verify} messages.
                     * @param message SetAgentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.ISetAgentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetAgentRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetAgentRequest
                     * @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.cloud.dialogflow.v2beta1.SetAgentRequest;

                    /**
                     * Decodes a SetAgentRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetAgentRequest
                     * @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.cloud.dialogflow.v2beta1.SetAgentRequest;

                    /**
                     * Verifies a SetAgentRequest 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 SetAgentRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetAgentRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.SetAgentRequest;

                    /**
                     * Creates a plain object from a SetAgentRequest message. Also converts values to other types if specified.
                     * @param message SetAgentRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.SetAgentRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetAgentRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetAgentRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteAgentRequest. */
                interface IDeleteAgentRequest {

                    /** DeleteAgentRequest parent */
                    parent?: (string|null);
                }

                /** Represents a DeleteAgentRequest. */
                class DeleteAgentRequest implements IDeleteAgentRequest {

                    /**
                     * Constructs a new DeleteAgentRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IDeleteAgentRequest);

                    /** DeleteAgentRequest parent. */
                    public parent: string;

                    /**
                     * Creates a new DeleteAgentRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteAgentRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IDeleteAgentRequest): google.cloud.dialogflow.v2beta1.DeleteAgentRequest;

                    /**
                     * Encodes the specified DeleteAgentRequest message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.DeleteAgentRequest.verify|verify} messages.
                     * @param message DeleteAgentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IDeleteAgentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteAgentRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.DeleteAgentRequest.verify|verify} messages.
                     * @param message DeleteAgentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IDeleteAgentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteAgentRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteAgentRequest
                     * @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.cloud.dialogflow.v2beta1.DeleteAgentRequest;

                    /**
                     * Decodes a DeleteAgentRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteAgentRequest
                     * @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.cloud.dialogflow.v2beta1.DeleteAgentRequest;

                    /**
                     * Verifies a DeleteAgentRequest 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 DeleteAgentRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteAgentRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.DeleteAgentRequest;

                    /**
                     * Creates a plain object from a DeleteAgentRequest message. Also converts values to other types if specified.
                     * @param message DeleteAgentRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.DeleteAgentRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteAgentRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteAgentRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SubAgent. */
                interface ISubAgent {

                    /** SubAgent project */
                    project?: (string|null);

                    /** SubAgent environment */
                    environment?: (string|null);
                }

                /** Represents a SubAgent. */
                class SubAgent implements ISubAgent {

                    /**
                     * Constructs a new SubAgent.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.ISubAgent);

                    /** SubAgent project. */
                    public project: string;

                    /** SubAgent environment. */
                    public environment: string;

                    /**
                     * Creates a new SubAgent instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SubAgent instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.ISubAgent): google.cloud.dialogflow.v2beta1.SubAgent;

                    /**
                     * Encodes the specified SubAgent message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.SubAgent.verify|verify} messages.
                     * @param message SubAgent message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.ISubAgent, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SubAgent message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.SubAgent.verify|verify} messages.
                     * @param message SubAgent message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.ISubAgent, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SubAgent message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SubAgent
                     * @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.cloud.dialogflow.v2beta1.SubAgent;

                    /**
                     * Decodes a SubAgent message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SubAgent
                     * @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.cloud.dialogflow.v2beta1.SubAgent;

                    /**
                     * Verifies a SubAgent 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 SubAgent message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SubAgent
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.SubAgent;

                    /**
                     * Creates a plain object from a SubAgent message. Also converts values to other types if specified.
                     * @param message SubAgent
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.SubAgent, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SubAgent to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SubAgent
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SearchAgentsRequest. */
                interface ISearchAgentsRequest {

                    /** SearchAgentsRequest parent */
                    parent?: (string|null);

                    /** SearchAgentsRequest pageSize */
                    pageSize?: (number|null);

                    /** SearchAgentsRequest pageToken */
                    pageToken?: (string|null);
                }

                /** Represents a SearchAgentsRequest. */
                class SearchAgentsRequest implements ISearchAgentsRequest {

                    /**
                     * Constructs a new SearchAgentsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.ISearchAgentsRequest);

                    /** SearchAgentsRequest parent. */
                    public parent: string;

                    /** SearchAgentsRequest pageSize. */
                    public pageSize: number;

                    /** SearchAgentsRequest pageToken. */
                    public pageToken: string;

                    /**
                     * Creates a new SearchAgentsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SearchAgentsRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.ISearchAgentsRequest): google.cloud.dialogflow.v2beta1.SearchAgentsRequest;

                    /**
                     * Encodes the specified SearchAgentsRequest message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.SearchAgentsRequest.verify|verify} messages.
                     * @param message SearchAgentsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.ISearchAgentsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SearchAgentsRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.SearchAgentsRequest.verify|verify} messages.
                     * @param message SearchAgentsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.ISearchAgentsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SearchAgentsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SearchAgentsRequest
                     * @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.cloud.dialogflow.v2beta1.SearchAgentsRequest;

                    /**
                     * Decodes a SearchAgentsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SearchAgentsRequest
                     * @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.cloud.dialogflow.v2beta1.SearchAgentsRequest;

                    /**
                     * Verifies a SearchAgentsRequest 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 SearchAgentsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SearchAgentsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.SearchAgentsRequest;

                    /**
                     * Creates a plain object from a SearchAgentsRequest message. Also converts values to other types if specified.
                     * @param message SearchAgentsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.SearchAgentsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SearchAgentsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SearchAgentsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SearchAgentsResponse. */
                interface ISearchAgentsResponse {

                    /** SearchAgentsResponse agents */
                    agents?: (google.cloud.dialogflow.v2beta1.IAgent[]|null);

                    /** SearchAgentsResponse nextPageToken */
                    nextPageToken?: (string|null);
                }

                /** Represents a SearchAgentsResponse. */
                class SearchAgentsResponse implements ISearchAgentsResponse {

                    /**
                     * Constructs a new SearchAgentsResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.ISearchAgentsResponse);

                    /** SearchAgentsResponse agents. */
                    public agents: google.cloud.dialogflow.v2beta1.IAgent[];

                    /** SearchAgentsResponse nextPageToken. */
                    public nextPageToken: string;

                    /**
                     * Creates a new SearchAgentsResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SearchAgentsResponse instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.ISearchAgentsResponse): google.cloud.dialogflow.v2beta1.SearchAgentsResponse;

                    /**
                     * Encodes the specified SearchAgentsResponse message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.SearchAgentsResponse.verify|verify} messages.
                     * @param message SearchAgentsResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.ISearchAgentsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SearchAgentsResponse message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.SearchAgentsResponse.verify|verify} messages.
                     * @param message SearchAgentsResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.ISearchAgentsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SearchAgentsResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SearchAgentsResponse
                     * @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.cloud.dialogflow.v2beta1.SearchAgentsResponse;

                    /**
                     * Decodes a SearchAgentsResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SearchAgentsResponse
                     * @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.cloud.dialogflow.v2beta1.SearchAgentsResponse;

                    /**
                     * Verifies a SearchAgentsResponse 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 SearchAgentsResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SearchAgentsResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.SearchAgentsResponse;

                    /**
                     * Creates a plain object from a SearchAgentsResponse message. Also converts values to other types if specified.
                     * @param message SearchAgentsResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.SearchAgentsResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SearchAgentsResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SearchAgentsResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TrainAgentRequest. */
                interface ITrainAgentRequest {

                    /** TrainAgentRequest parent */
                    parent?: (string|null);
                }

                /** Represents a TrainAgentRequest. */
                class TrainAgentRequest implements ITrainAgentRequest {

                    /**
                     * Constructs a new TrainAgentRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.ITrainAgentRequest);

                    /** TrainAgentRequest parent. */
                    public parent: string;

                    /**
                     * Creates a new TrainAgentRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TrainAgentRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.ITrainAgentRequest): google.cloud.dialogflow.v2beta1.TrainAgentRequest;

                    /**
                     * Encodes the specified TrainAgentRequest message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.TrainAgentRequest.verify|verify} messages.
                     * @param message TrainAgentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.ITrainAgentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TrainAgentRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.TrainAgentRequest.verify|verify} messages.
                     * @param message TrainAgentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.ITrainAgentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TrainAgentRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TrainAgentRequest
                     * @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.cloud.dialogflow.v2beta1.TrainAgentRequest;

                    /**
                     * Decodes a TrainAgentRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TrainAgentRequest
                     * @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.cloud.dialogflow.v2beta1.TrainAgentRequest;

                    /**
                     * Verifies a TrainAgentRequest 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 TrainAgentRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TrainAgentRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.TrainAgentRequest;

                    /**
                     * Creates a plain object from a TrainAgentRequest message. Also converts values to other types if specified.
                     * @param message TrainAgentRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.TrainAgentRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TrainAgentRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TrainAgentRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an ExportAgentRequest. */
                interface IExportAgentRequest {

                    /** ExportAgentRequest parent */
                    parent?: (string|null);

                    /** ExportAgentRequest agentUri */
                    agentUri?: (string|null);
                }

                /** Represents an ExportAgentRequest. */
                class ExportAgentRequest implements IExportAgentRequest {

                    /**
                     * Constructs a new ExportAgentRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IExportAgentRequest);

                    /** ExportAgentRequest parent. */
                    public parent: string;

                    /** ExportAgentRequest agentUri. */
                    public agentUri: string;

                    /**
                     * Creates a new ExportAgentRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ExportAgentRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IExportAgentRequest): google.cloud.dialogflow.v2beta1.ExportAgentRequest;

                    /**
                     * Encodes the specified ExportAgentRequest message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.ExportAgentRequest.verify|verify} messages.
                     * @param message ExportAgentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IExportAgentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ExportAgentRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.ExportAgentRequest.verify|verify} messages.
                     * @param message ExportAgentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IExportAgentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an ExportAgentRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ExportAgentRequest
                     * @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.cloud.dialogflow.v2beta1.ExportAgentRequest;

                    /**
                     * Decodes an ExportAgentRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ExportAgentRequest
                     * @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.cloud.dialogflow.v2beta1.ExportAgentRequest;

                    /**
                     * Verifies an ExportAgentRequest 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 ExportAgentRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ExportAgentRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.ExportAgentRequest;

                    /**
                     * Creates a plain object from an ExportAgentRequest message. Also converts values to other types if specified.
                     * @param message ExportAgentRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.ExportAgentRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ExportAgentRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ExportAgentRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an ExportAgentResponse. */
                interface IExportAgentResponse {

                    /** ExportAgentResponse agentUri */
                    agentUri?: (string|null);

                    /** ExportAgentResponse agentContent */
                    agentContent?: (Uint8Array|Buffer|string|null);
                }

                /** Represents an ExportAgentResponse. */
                class ExportAgentResponse implements IExportAgentResponse {

                    /**
                     * Constructs a new ExportAgentResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IExportAgentResponse);

                    /** ExportAgentResponse agentUri. */
                    public agentUri?: (string|null);

                    /** ExportAgentResponse agentContent. */
                    public agentContent?: (Uint8Array|Buffer|string|null);

                    /** ExportAgentResponse agent. */
                    public agent?: ("agentUri"|"agentContent");

                    /**
                     * Creates a new ExportAgentResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ExportAgentResponse instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IExportAgentResponse): google.cloud.dialogflow.v2beta1.ExportAgentResponse;

                    /**
                     * Encodes the specified ExportAgentResponse message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.ExportAgentResponse.verify|verify} messages.
                     * @param message ExportAgentResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IExportAgentResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ExportAgentResponse message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.ExportAgentResponse.verify|verify} messages.
                     * @param message ExportAgentResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IExportAgentResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an ExportAgentResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ExportAgentResponse
                     * @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.cloud.dialogflow.v2beta1.ExportAgentResponse;

                    /**
                     * Decodes an ExportAgentResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ExportAgentResponse
                     * @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.cloud.dialogflow.v2beta1.ExportAgentResponse;

                    /**
                     * Verifies an ExportAgentResponse 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 ExportAgentResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ExportAgentResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.ExportAgentResponse;

                    /**
                     * Creates a plain object from an ExportAgentResponse message. Also converts values to other types if specified.
                     * @param message ExportAgentResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.ExportAgentResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ExportAgentResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ExportAgentResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an ImportAgentRequest. */
                interface IImportAgentRequest {

                    /** ImportAgentRequest parent */
                    parent?: (string|null);

                    /** ImportAgentRequest agentUri */
                    agentUri?: (string|null);

                    /** ImportAgentRequest agentContent */
                    agentContent?: (Uint8Array|Buffer|string|null);
                }

                /** Represents an ImportAgentRequest. */
                class ImportAgentRequest implements IImportAgentRequest {

                    /**
                     * Constructs a new ImportAgentRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IImportAgentRequest);

                    /** ImportAgentRequest parent. */
                    public parent: string;

                    /** ImportAgentRequest agentUri. */
                    public agentUri?: (string|null);

                    /** ImportAgentRequest agentContent. */
                    public agentContent?: (Uint8Array|Buffer|string|null);

                    /** ImportAgentRequest agent. */
                    public agent?: ("agentUri"|"agentContent");

                    /**
                     * Creates a new ImportAgentRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ImportAgentRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IImportAgentRequest): google.cloud.dialogflow.v2beta1.ImportAgentRequest;

                    /**
                     * Encodes the specified ImportAgentRequest message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.ImportAgentRequest.verify|verify} messages.
                     * @param message ImportAgentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IImportAgentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ImportAgentRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.ImportAgentRequest.verify|verify} messages.
                     * @param message ImportAgentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IImportAgentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an ImportAgentRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ImportAgentRequest
                     * @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.cloud.dialogflow.v2beta1.ImportAgentRequest;

                    /**
                     * Decodes an ImportAgentRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ImportAgentRequest
                     * @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.cloud.dialogflow.v2beta1.ImportAgentRequest;

                    /**
                     * Verifies an ImportAgentRequest 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 ImportAgentRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ImportAgentRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.ImportAgentRequest;

                    /**
                     * Creates a plain object from an ImportAgentRequest message. Also converts values to other types if specified.
                     * @param message ImportAgentRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.ImportAgentRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ImportAgentRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ImportAgentRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RestoreAgentRequest. */
                interface IRestoreAgentRequest {

                    /** RestoreAgentRequest parent */
                    parent?: (string|null);

                    /** RestoreAgentRequest agentUri */
                    agentUri?: (string|null);

                    /** RestoreAgentRequest agentContent */
                    agentContent?: (Uint8Array|Buffer|string|null);
                }

                /** Represents a RestoreAgentRequest. */
                class RestoreAgentRequest implements IRestoreAgentRequest {

                    /**
                     * Constructs a new RestoreAgentRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IRestoreAgentRequest);

                    /** RestoreAgentRequest parent. */
                    public parent: string;

                    /** RestoreAgentRequest agentUri. */
                    public agentUri?: (string|null);

                    /** RestoreAgentRequest agentContent. */
                    public agentContent?: (Uint8Array|Buffer|string|null);

                    /** RestoreAgentRequest agent. */
                    public agent?: ("agentUri"|"agentContent");

                    /**
                     * Creates a new RestoreAgentRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RestoreAgentRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IRestoreAgentRequest): google.cloud.dialogflow.v2beta1.RestoreAgentRequest;

                    /**
                     * Encodes the specified RestoreAgentRequest message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.RestoreAgentRequest.verify|verify} messages.
                     * @param message RestoreAgentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IRestoreAgentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RestoreAgentRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.RestoreAgentRequest.verify|verify} messages.
                     * @param message RestoreAgentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IRestoreAgentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RestoreAgentRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RestoreAgentRequest
                     * @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.cloud.dialogflow.v2beta1.RestoreAgentRequest;

                    /**
                     * Decodes a RestoreAgentRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RestoreAgentRequest
                     * @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.cloud.dialogflow.v2beta1.RestoreAgentRequest;

                    /**
                     * Verifies a RestoreAgentRequest 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 RestoreAgentRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RestoreAgentRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.RestoreAgentRequest;

                    /**
                     * Creates a plain object from a RestoreAgentRequest message. Also converts values to other types if specified.
                     * @param message RestoreAgentRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.RestoreAgentRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RestoreAgentRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RestoreAgentRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetValidationResultRequest. */
                interface IGetValidationResultRequest {

                    /** GetValidationResultRequest parent */
                    parent?: (string|null);

                    /** GetValidationResultRequest languageCode */
                    languageCode?: (string|null);
                }

                /** Represents a GetValidationResultRequest. */
                class GetValidationResultRequest implements IGetValidationResultRequest {

                    /**
                     * Constructs a new GetValidationResultRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IGetValidationResultRequest);

                    /** GetValidationResultRequest parent. */
                    public parent: string;

                    /** GetValidationResultRequest languageCode. */
                    public languageCode: string;

                    /**
                     * Creates a new GetValidationResultRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetValidationResultRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IGetValidationResultRequest): google.cloud.dialogflow.v2beta1.GetValidationResultRequest;

                    /**
                     * Encodes the specified GetValidationResultRequest message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.GetValidationResultRequest.verify|verify} messages.
                     * @param message GetValidationResultRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IGetValidationResultRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetValidationResultRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.GetValidationResultRequest.verify|verify} messages.
                     * @param message GetValidationResultRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IGetValidationResultRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetValidationResultRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetValidationResultRequest
                     * @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.cloud.dialogflow.v2beta1.GetValidationResultRequest;

                    /**
                     * Decodes a GetValidationResultRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetValidationResultRequest
                     * @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.cloud.dialogflow.v2beta1.GetValidationResultRequest;

                    /**
                     * Verifies a GetValidationResultRequest 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 GetValidationResultRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetValidationResultRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.GetValidationResultRequest;

                    /**
                     * Creates a plain object from a GetValidationResultRequest message. Also converts values to other types if specified.
                     * @param message GetValidationResultRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.GetValidationResultRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetValidationResultRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetValidationResultRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ValidationError. */
                interface IValidationError {

                    /** ValidationError severity */
                    severity?: (google.cloud.dialogflow.v2beta1.ValidationError.Severity|keyof typeof google.cloud.dialogflow.v2beta1.ValidationError.Severity|null);

                    /** ValidationError entries */
                    entries?: (string[]|null);

                    /** ValidationError errorMessage */
                    errorMessage?: (string|null);
                }

                /** Represents a ValidationError. */
                class ValidationError implements IValidationError {

                    /**
                     * Constructs a new ValidationError.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IValidationError);

                    /** ValidationError severity. */
                    public severity: (google.cloud.dialogflow.v2beta1.ValidationError.Severity|keyof typeof google.cloud.dialogflow.v2beta1.ValidationError.Severity);

                    /** ValidationError entries. */
                    public entries: string[];

                    /** ValidationError errorMessage. */
                    public errorMessage: string;

                    /**
                     * Creates a new ValidationError instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ValidationError instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IValidationError): google.cloud.dialogflow.v2beta1.ValidationError;

                    /**
                     * Encodes the specified ValidationError message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.ValidationError.verify|verify} messages.
                     * @param message ValidationError message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IValidationError, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ValidationError message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.ValidationError.verify|verify} messages.
                     * @param message ValidationError message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IValidationError, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ValidationError message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ValidationError
                     * @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.cloud.dialogflow.v2beta1.ValidationError;

                    /**
                     * Decodes a ValidationError message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ValidationError
                     * @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.cloud.dialogflow.v2beta1.ValidationError;

                    /**
                     * Verifies a ValidationError 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 ValidationError message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ValidationError
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.ValidationError;

                    /**
                     * Creates a plain object from a ValidationError message. Also converts values to other types if specified.
                     * @param message ValidationError
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.ValidationError, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ValidationError to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ValidationError
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace ValidationError {

                    /** Severity enum. */
                    enum Severity {
                        SEVERITY_UNSPECIFIED = 0,
                        INFO = 1,
                        WARNING = 2,
                        ERROR = 3,
                        CRITICAL = 4
                    }
                }

                /** Properties of a ValidationResult. */
                interface IValidationResult {

                    /** ValidationResult validationErrors */
                    validationErrors?: (google.cloud.dialogflow.v2beta1.IValidationError[]|null);
                }

                /** Represents a ValidationResult. */
                class ValidationResult implements IValidationResult {

                    /**
                     * Constructs a new ValidationResult.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IValidationResult);

                    /** ValidationResult validationErrors. */
                    public validationErrors: google.cloud.dialogflow.v2beta1.IValidationError[];

                    /**
                     * Creates a new ValidationResult instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ValidationResult instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IValidationResult): google.cloud.dialogflow.v2beta1.ValidationResult;

                    /**
                     * Encodes the specified ValidationResult message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.ValidationResult.verify|verify} messages.
                     * @param message ValidationResult message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IValidationResult, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ValidationResult message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.ValidationResult.verify|verify} messages.
                     * @param message ValidationResult message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IValidationResult, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ValidationResult message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ValidationResult
                     * @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.cloud.dialogflow.v2beta1.ValidationResult;

                    /**
                     * Decodes a ValidationResult message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ValidationResult
                     * @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.cloud.dialogflow.v2beta1.ValidationResult;

                    /**
                     * Verifies a ValidationResult 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 ValidationResult message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ValidationResult
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.ValidationResult;

                    /**
                     * Creates a plain object from a ValidationResult message. Also converts values to other types if specified.
                     * @param message ValidationResult
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.ValidationResult, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ValidationResult to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ValidationResult
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AgentCoachingInstruction. */
                interface IAgentCoachingInstruction {

                    /** AgentCoachingInstruction displayName */
                    displayName?: (string|null);

                    /** AgentCoachingInstruction displayDetails */
                    displayDetails?: (string|null);

                    /** AgentCoachingInstruction condition */
                    condition?: (string|null);

                    /** AgentCoachingInstruction agentAction */
                    agentAction?: (string|null);

                    /** AgentCoachingInstruction systemAction */
                    systemAction?: (string|null);

                    /** AgentCoachingInstruction duplicateCheckResult */
                    duplicateCheckResult?: (google.cloud.dialogflow.v2beta1.AgentCoachingInstruction.IDuplicateCheckResult|null);

                    /** AgentCoachingInstruction triggeringEvent */
                    triggeringEvent?: (google.cloud.dialogflow.v2beta1.AgentCoachingInstruction.TriggerEvent|keyof typeof google.cloud.dialogflow.v2beta1.AgentCoachingInstruction.TriggerEvent|null);
                }

                /** Represents an AgentCoachingInstruction. */
                class AgentCoachingInstruction implements IAgentCoachingInstruction {

                    /**
                     * Constructs a new AgentCoachingInstruction.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IAgentCoachingInstruction);

                    /** AgentCoachingInstruction displayName. */
                    public displayName: string;

                    /** AgentCoachingInstruction displayDetails. */
                    public displayDetails: string;

                    /** AgentCoachingInstruction condition. */
                    public condition: string;

                    /** AgentCoachingInstruction agentAction. */
                    public agentAction: string;

                    /** AgentCoachingInstruction systemAction. */
                    public systemAction: string;

                    /** AgentCoachingInstruction duplicateCheckResult. */
                    public duplicateCheckResult?: (google.cloud.dialogflow.v2beta1.AgentCoachingInstruction.IDuplicateCheckResult|null);

                    /** AgentCoachingInstruction triggeringEvent. */
                    public triggeringEvent: (google.cloud.dialogflow.v2beta1.AgentCoachingInstruction.TriggerEvent|keyof typeof google.cloud.dialogflow.v2beta1.AgentCoachingInstruction.TriggerEvent);

                    /**
                     * Creates a new AgentCoachingInstruction instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AgentCoachingInstruction instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IAgentCoachingInstruction): google.cloud.dialogflow.v2beta1.AgentCoachingInstruction;

                    /**
                     * Encodes the specified AgentCoachingInstruction message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.AgentCoachingInstruction.verify|verify} messages.
                     * @param message AgentCoachingInstruction message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IAgentCoachingInstruction, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AgentCoachingInstruction message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.AgentCoachingInstruction.verify|verify} messages.
                     * @param message AgentCoachingInstruction message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IAgentCoachingInstruction, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AgentCoachingInstruction message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AgentCoachingInstruction
                     * @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.cloud.dialogflow.v2beta1.AgentCoachingInstruction;

                    /**
                     * Decodes an AgentCoachingInstruction message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AgentCoachingInstruction
                     * @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.cloud.dialogflow.v2beta1.AgentCoachingInstruction;

                    /**
                     * Verifies an AgentCoachingInstruction 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 AgentCoachingInstruction message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AgentCoachingInstruction
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.AgentCoachingInstruction;

                    /**
                     * Creates a plain object from an AgentCoachingInstruction message. Also converts values to other types if specified.
                     * @param message AgentCoachingInstruction
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.AgentCoachingInstruction, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AgentCoachingInstruction to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AgentCoachingInstruction
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace AgentCoachingInstruction {

                    /** Properties of a DuplicateCheckResult. */
                    interface IDuplicateCheckResult {

                        /** DuplicateCheckResult duplicateSuggestions */
                        duplicateSuggestions?: (google.cloud.dialogflow.v2beta1.AgentCoachingInstruction.DuplicateCheckResult.IDuplicateSuggestion[]|null);
                    }

                    /** Represents a DuplicateCheckResult. */
                    class DuplicateCheckResult implements IDuplicateCheckResult {

                        /**
                         * Constructs a new DuplicateCheckResult.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2beta1.AgentCoachingInstruction.IDuplicateCheckResult);

                        /** DuplicateCheckResult duplicateSuggestions. */
                        public duplicateSuggestions: google.cloud.dialogflow.v2beta1.AgentCoachingInstruction.DuplicateCheckResult.IDuplicateSuggestion[];

                        /**
                         * Creates a new DuplicateCheckResult instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns DuplicateCheckResult instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2beta1.AgentCoachingInstruction.IDuplicateCheckResult): google.cloud.dialogflow.v2beta1.AgentCoachingInstruction.DuplicateCheckResult;

                        /**
                         * Encodes the specified DuplicateCheckResult message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.AgentCoachingInstruction.DuplicateCheckResult.verify|verify} messages.
                         * @param message DuplicateCheckResult message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2beta1.AgentCoachingInstruction.IDuplicateCheckResult, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified DuplicateCheckResult message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.AgentCoachingInstruction.DuplicateCheckResult.verify|verify} messages.
                         * @param message DuplicateCheckResult message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.AgentCoachingInstruction.IDuplicateCheckResult, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a DuplicateCheckResult message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns DuplicateCheckResult
                         * @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.cloud.dialogflow.v2beta1.AgentCoachingInstruction.DuplicateCheckResult;

                        /**
                         * Decodes a DuplicateCheckResult message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns DuplicateCheckResult
                         * @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.cloud.dialogflow.v2beta1.AgentCoachingInstruction.DuplicateCheckResult;

                        /**
                         * Verifies a DuplicateCheckResult 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 DuplicateCheckResult message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns DuplicateCheckResult
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.AgentCoachingInstruction.DuplicateCheckResult;

                        /**
                         * Creates a plain object from a DuplicateCheckResult message. Also converts values to other types if specified.
                         * @param message DuplicateCheckResult
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.dialogflow.v2beta1.AgentCoachingInstruction.DuplicateCheckResult, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this DuplicateCheckResult to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for DuplicateCheckResult
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    namespace DuplicateCheckResult {

                        /** Properties of a DuplicateSuggestion. */
                        interface IDuplicateSuggestion {

                            /** DuplicateSuggestion answerRecord */
                            answerRecord?: (string|null);

                            /** DuplicateSuggestion suggestionIndex */
                            suggestionIndex?: (number|null);

                            /** DuplicateSuggestion similarityScore */
                            similarityScore?: (number|null);
                        }

                        /** Represents a DuplicateSuggestion. */
                        class DuplicateSuggestion implements IDuplicateSuggestion {

                            /**
                             * Constructs a new DuplicateSuggestion.
                             * @param [properties] Properties to set
                             */
                            constructor(properties?: google.cloud.dialogflow.v2beta1.AgentCoachingInstruction.DuplicateCheckResult.IDuplicateSuggestion);

                            /** DuplicateSuggestion answerRecord. */
                            public answerRecord: string;

                            /** DuplicateSuggestion suggestionIndex. */
                            public suggestionIndex: number;

                            /** DuplicateSuggestion similarityScore. */
                            public similarityScore: number;

                            /**
                             * Creates a new DuplicateSuggestion instance using the specified properties.
                             * @param [properties] Properties to set
                             * @returns DuplicateSuggestion instance
                             */
                            public static create(properties?: google.cloud.dialogflow.v2beta1.AgentCoachingInstruction.DuplicateCheckResult.IDuplicateSuggestion): google.cloud.dialogflow.v2beta1.AgentCoachingInstruction.DuplicateCheckResult.DuplicateSuggestion;

                            /**
                             * Encodes the specified DuplicateSuggestion message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.AgentCoachingInstruction.DuplicateCheckResult.DuplicateSuggestion.verify|verify} messages.
                             * @param message DuplicateSuggestion message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encode(message: google.cloud.dialogflow.v2beta1.AgentCoachingInstruction.DuplicateCheckResult.IDuplicateSuggestion, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Encodes the specified DuplicateSuggestion message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.AgentCoachingInstruction.DuplicateCheckResult.DuplicateSuggestion.verify|verify} messages.
                             * @param message DuplicateSuggestion message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.AgentCoachingInstruction.DuplicateCheckResult.IDuplicateSuggestion, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Decodes a DuplicateSuggestion message from the specified reader or buffer.
                             * @param reader Reader or buffer to decode from
                             * @param [length] Message length if known beforehand
                             * @returns DuplicateSuggestion
                             * @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.cloud.dialogflow.v2beta1.AgentCoachingInstruction.DuplicateCheckResult.DuplicateSuggestion;

                            /**
                             * Decodes a DuplicateSuggestion message from the specified reader or buffer, length delimited.
                             * @param reader Reader or buffer to decode from
                             * @returns DuplicateSuggestion
                             * @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.cloud.dialogflow.v2beta1.AgentCoachingInstruction.DuplicateCheckResult.DuplicateSuggestion;

                            /**
                             * Verifies a DuplicateSuggestion 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 DuplicateSuggestion message from a plain object. Also converts values to their respective internal types.
                             * @param object Plain object
                             * @returns DuplicateSuggestion
                             */
                            public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.AgentCoachingInstruction.DuplicateCheckResult.DuplicateSuggestion;

                            /**
                             * Creates a plain object from a DuplicateSuggestion message. Also converts values to other types if specified.
                             * @param message DuplicateSuggestion
                             * @param [options] Conversion options
                             * @returns Plain object
                             */
                            public static toObject(message: google.cloud.dialogflow.v2beta1.AgentCoachingInstruction.DuplicateCheckResult.DuplicateSuggestion, options?: $protobuf.IConversionOptions): { [k: string]: any };

                            /**
                             * Converts this DuplicateSuggestion to JSON.
                             * @returns JSON object
                             */
                            public toJSON(): { [k: string]: any };

                            /**
                             * Gets the default type url for DuplicateSuggestion
                             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                             * @returns The default type url
                             */
                            public static getTypeUrl(typeUrlPrefix?: string): string;
                        }
                    }

                    /** TriggerEvent enum. */
                    enum TriggerEvent {
                        TRIGGER_EVENT_UNSPECIFIED = 0,
                        END_OF_UTTERANCE = 1,
                        MANUAL_CALL = 2,
                        CUSTOMER_MESSAGE = 3,
                        AGENT_MESSAGE = 4,
                        TOOL_CALL_COMPLETION = 5
                    }
                }

                /** Represents an AnswerRecords */
                class AnswerRecords extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new AnswerRecords 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 AnswerRecords 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): AnswerRecords;

                    /**
                     * Calls GetAnswerRecord.
                     * @param request GetAnswerRecordRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and AnswerRecord
                     */
                    public getAnswerRecord(request: google.cloud.dialogflow.v2beta1.IGetAnswerRecordRequest, callback: google.cloud.dialogflow.v2beta1.AnswerRecords.GetAnswerRecordCallback): void;

                    /**
                     * Calls GetAnswerRecord.
                     * @param request GetAnswerRecordRequest message or plain object
                     * @returns Promise
                     */
                    public getAnswerRecord(request: google.cloud.dialogflow.v2beta1.IGetAnswerRecordRequest): Promise<google.cloud.dialogflow.v2beta1.AnswerRecord>;

                    /**
                     * Calls ListAnswerRecords.
                     * @param request ListAnswerRecordsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ListAnswerRecordsResponse
                     */
                    public listAnswerRecords(request: google.cloud.dialogflow.v2beta1.IListAnswerRecordsRequest, callback: google.cloud.dialogflow.v2beta1.AnswerRecords.ListAnswerRecordsCallback): void;

                    /**
                     * Calls ListAnswerRecords.
                     * @param request ListAnswerRecordsRequest message or plain object
                     * @returns Promise
                     */
                    public listAnswerRecords(request: google.cloud.dialogflow.v2beta1.IListAnswerRecordsRequest): Promise<google.cloud.dialogflow.v2beta1.ListAnswerRecordsResponse>;

                    /**
                     * Calls UpdateAnswerRecord.
                     * @param request UpdateAnswerRecordRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and AnswerRecord
                     */
                    public updateAnswerRecord(request: google.cloud.dialogflow.v2beta1.IUpdateAnswerRecordRequest, callback: google.cloud.dialogflow.v2beta1.AnswerRecords.UpdateAnswerRecordCallback): void;

                    /**
                     * Calls UpdateAnswerRecord.
                     * @param request UpdateAnswerRecordRequest message or plain object
                     * @returns Promise
                     */
                    public updateAnswerRecord(request: google.cloud.dialogflow.v2beta1.IUpdateAnswerRecordRequest): Promise<google.cloud.dialogflow.v2beta1.AnswerRecord>;
                }

                namespace AnswerRecords {

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2beta1.AnswerRecords|getAnswerRecord}.
                     * @param error Error, if any
                     * @param [response] AnswerRecord
                     */
                    type GetAnswerRecordCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2beta1.AnswerRecord) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2beta1.AnswerRecords|listAnswerRecords}.
                     * @param error Error, if any
                     * @param [response] ListAnswerRecordsResponse
                     */
                    type ListAnswerRecordsCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2beta1.ListAnswerRecordsResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2beta1.AnswerRecords|updateAnswerRecord}.
                     * @param error Error, if any
                     * @param [response] AnswerRecord
                     */
                    type UpdateAnswerRecordCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2beta1.AnswerRecord) => void;
                }

                /** Properties of an AnswerRecord. */
                interface IAnswerRecord {

                    /** AnswerRecord name */
                    name?: (string|null);

                    /** AnswerRecord answerFeedback */
                    answerFeedback?: (google.cloud.dialogflow.v2beta1.IAnswerFeedback|null);

                    /** AnswerRecord agentAssistantRecord */
                    agentAssistantRecord?: (google.cloud.dialogflow.v2beta1.IAgentAssistantRecord|null);
                }

                /** Represents an AnswerRecord. */
                class AnswerRecord implements IAnswerRecord {

                    /**
                     * Constructs a new AnswerRecord.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IAnswerRecord);

                    /** AnswerRecord name. */
                    public name: string;

                    /** AnswerRecord answerFeedback. */
                    public answerFeedback?: (google.cloud.dialogflow.v2beta1.IAnswerFeedback|null);

                    /** AnswerRecord agentAssistantRecord. */
                    public agentAssistantRecord?: (google.cloud.dialogflow.v2beta1.IAgentAssistantRecord|null);

                    /** AnswerRecord record. */
                    public record?: "agentAssistantRecord";

                    /**
                     * Creates a new AnswerRecord instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AnswerRecord instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IAnswerRecord): google.cloud.dialogflow.v2beta1.AnswerRecord;

                    /**
                     * Encodes the specified AnswerRecord message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.AnswerRecord.verify|verify} messages.
                     * @param message AnswerRecord message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IAnswerRecord, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AnswerRecord message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.AnswerRecord.verify|verify} messages.
                     * @param message AnswerRecord message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IAnswerRecord, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AnswerRecord message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AnswerRecord
                     * @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.cloud.dialogflow.v2beta1.AnswerRecord;

                    /**
                     * Decodes an AnswerRecord message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AnswerRecord
                     * @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.cloud.dialogflow.v2beta1.AnswerRecord;

                    /**
                     * Verifies an AnswerRecord 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 AnswerRecord message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AnswerRecord
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.AnswerRecord;

                    /**
                     * Creates a plain object from an AnswerRecord message. Also converts values to other types if specified.
                     * @param message AnswerRecord
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.AnswerRecord, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AnswerRecord to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AnswerRecord
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AgentAssistantRecord. */
                interface IAgentAssistantRecord {

                    /** AgentAssistantRecord articleSuggestionAnswer */
                    articleSuggestionAnswer?: (google.cloud.dialogflow.v2beta1.IArticleAnswer|null);

                    /** AgentAssistantRecord faqAnswer */
                    faqAnswer?: (google.cloud.dialogflow.v2beta1.IFaqAnswer|null);

                    /** AgentAssistantRecord dialogflowAssistAnswer */
                    dialogflowAssistAnswer?: (google.cloud.dialogflow.v2beta1.IDialogflowAssistAnswer|null);

                    /** AgentAssistantRecord generatorSuggestion */
                    generatorSuggestion?: (google.cloud.dialogflow.v2beta1.IGeneratorSuggestion|null);
                }

                /** Represents an AgentAssistantRecord. */
                class AgentAssistantRecord implements IAgentAssistantRecord {

                    /**
                     * Constructs a new AgentAssistantRecord.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IAgentAssistantRecord);

                    /** AgentAssistantRecord articleSuggestionAnswer. */
                    public articleSuggestionAnswer?: (google.cloud.dialogflow.v2beta1.IArticleAnswer|null);

                    /** AgentAssistantRecord faqAnswer. */
                    public faqAnswer?: (google.cloud.dialogflow.v2beta1.IFaqAnswer|null);

                    /** AgentAssistantRecord dialogflowAssistAnswer. */
                    public dialogflowAssistAnswer?: (google.cloud.dialogflow.v2beta1.IDialogflowAssistAnswer|null);

                    /** AgentAssistantRecord generatorSuggestion. */
                    public generatorSuggestion?: (google.cloud.dialogflow.v2beta1.IGeneratorSuggestion|null);

                    /** AgentAssistantRecord answer. */
                    public answer?: ("articleSuggestionAnswer"|"faqAnswer"|"dialogflowAssistAnswer"|"generatorSuggestion");

                    /**
                     * Creates a new AgentAssistantRecord instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AgentAssistantRecord instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IAgentAssistantRecord): google.cloud.dialogflow.v2beta1.AgentAssistantRecord;

                    /**
                     * Encodes the specified AgentAssistantRecord message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.AgentAssistantRecord.verify|verify} messages.
                     * @param message AgentAssistantRecord message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IAgentAssistantRecord, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AgentAssistantRecord message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.AgentAssistantRecord.verify|verify} messages.
                     * @param message AgentAssistantRecord message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IAgentAssistantRecord, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AgentAssistantRecord message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AgentAssistantRecord
                     * @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.cloud.dialogflow.v2beta1.AgentAssistantRecord;

                    /**
                     * Decodes an AgentAssistantRecord message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AgentAssistantRecord
                     * @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.cloud.dialogflow.v2beta1.AgentAssistantRecord;

                    /**
                     * Verifies an AgentAssistantRecord 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 AgentAssistantRecord message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AgentAssistantRecord
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.AgentAssistantRecord;

                    /**
                     * Creates a plain object from an AgentAssistantRecord message. Also converts values to other types if specified.
                     * @param message AgentAssistantRecord
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.AgentAssistantRecord, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AgentAssistantRecord to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AgentAssistantRecord
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AnswerFeedback. */
                interface IAnswerFeedback {

                    /** AnswerFeedback correctnessLevel */
                    correctnessLevel?: (google.cloud.dialogflow.v2beta1.AnswerFeedback.CorrectnessLevel|keyof typeof google.cloud.dialogflow.v2beta1.AnswerFeedback.CorrectnessLevel|null);

                    /** AnswerFeedback agentAssistantDetailFeedback */
                    agentAssistantDetailFeedback?: (google.cloud.dialogflow.v2beta1.IAgentAssistantFeedback|null);

                    /** AnswerFeedback clicked */
                    clicked?: (boolean|null);

                    /** AnswerFeedback clickTime */
                    clickTime?: (google.protobuf.ITimestamp|null);

                    /** AnswerFeedback displayed */
                    displayed?: (boolean|null);

                    /** AnswerFeedback displayTime */
                    displayTime?: (google.protobuf.ITimestamp|null);
                }

                /** Represents an AnswerFeedback. */
                class AnswerFeedback implements IAnswerFeedback {

                    /**
                     * Constructs a new AnswerFeedback.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IAnswerFeedback);

                    /** AnswerFeedback correctnessLevel. */
                    public correctnessLevel: (google.cloud.dialogflow.v2beta1.AnswerFeedback.CorrectnessLevel|keyof typeof google.cloud.dialogflow.v2beta1.AnswerFeedback.CorrectnessLevel);

                    /** AnswerFeedback agentAssistantDetailFeedback. */
                    public agentAssistantDetailFeedback?: (google.cloud.dialogflow.v2beta1.IAgentAssistantFeedback|null);

                    /** AnswerFeedback clicked. */
                    public clicked: boolean;

                    /** AnswerFeedback clickTime. */
                    public clickTime?: (google.protobuf.ITimestamp|null);

                    /** AnswerFeedback displayed. */
                    public displayed: boolean;

                    /** AnswerFeedback displayTime. */
                    public displayTime?: (google.protobuf.ITimestamp|null);

                    /** AnswerFeedback detailFeedback. */
                    public detailFeedback?: "agentAssistantDetailFeedback";

                    /**
                     * Creates a new AnswerFeedback instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AnswerFeedback instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IAnswerFeedback): google.cloud.dialogflow.v2beta1.AnswerFeedback;

                    /**
                     * Encodes the specified AnswerFeedback message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.AnswerFeedback.verify|verify} messages.
                     * @param message AnswerFeedback message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IAnswerFeedback, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AnswerFeedback message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.AnswerFeedback.verify|verify} messages.
                     * @param message AnswerFeedback message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IAnswerFeedback, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AnswerFeedback message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AnswerFeedback
                     * @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.cloud.dialogflow.v2beta1.AnswerFeedback;

                    /**
                     * Decodes an AnswerFeedback message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AnswerFeedback
                     * @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.cloud.dialogflow.v2beta1.AnswerFeedback;

                    /**
                     * Verifies an AnswerFeedback 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 AnswerFeedback message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AnswerFeedback
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.AnswerFeedback;

                    /**
                     * Creates a plain object from an AnswerFeedback message. Also converts values to other types if specified.
                     * @param message AnswerFeedback
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.AnswerFeedback, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AnswerFeedback to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AnswerFeedback
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace AnswerFeedback {

                    /** CorrectnessLevel enum. */
                    enum CorrectnessLevel {
                        CORRECTNESS_LEVEL_UNSPECIFIED = 0,
                        NOT_CORRECT = 1,
                        PARTIALLY_CORRECT = 2,
                        FULLY_CORRECT = 3
                    }
                }

                /** Properties of an AgentAssistantFeedback. */
                interface IAgentAssistantFeedback {

                    /** AgentAssistantFeedback answerRelevance */
                    answerRelevance?: (google.cloud.dialogflow.v2beta1.AgentAssistantFeedback.AnswerRelevance|keyof typeof google.cloud.dialogflow.v2beta1.AgentAssistantFeedback.AnswerRelevance|null);

                    /** AgentAssistantFeedback documentCorrectness */
                    documentCorrectness?: (google.cloud.dialogflow.v2beta1.AgentAssistantFeedback.DocumentCorrectness|keyof typeof google.cloud.dialogflow.v2beta1.AgentAssistantFeedback.DocumentCorrectness|null);

                    /** AgentAssistantFeedback documentEfficiency */
                    documentEfficiency?: (google.cloud.dialogflow.v2beta1.AgentAssistantFeedback.DocumentEfficiency|keyof typeof google.cloud.dialogflow.v2beta1.AgentAssistantFeedback.DocumentEfficiency|null);

                    /** AgentAssistantFeedback summarizationFeedback */
                    summarizationFeedback?: (google.cloud.dialogflow.v2beta1.AgentAssistantFeedback.ISummarizationFeedback|null);

                    /** AgentAssistantFeedback knowledgeSearchFeedback */
                    knowledgeSearchFeedback?: (google.cloud.dialogflow.v2beta1.AgentAssistantFeedback.IKnowledgeSearchFeedback|null);

                    /** AgentAssistantFeedback knowledgeAssistFeedback */
                    knowledgeAssistFeedback?: (google.cloud.dialogflow.v2beta1.AgentAssistantFeedback.IKnowledgeAssistFeedback|null);
                }

                /** Represents an AgentAssistantFeedback. */
                class AgentAssistantFeedback implements IAgentAssistantFeedback {

                    /**
                     * Constructs a new AgentAssistantFeedback.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IAgentAssistantFeedback);

                    /** AgentAssistantFeedback answerRelevance. */
                    public answerRelevance: (google.cloud.dialogflow.v2beta1.AgentAssistantFeedback.AnswerRelevance|keyof typeof google.cloud.dialogflow.v2beta1.AgentAssistantFeedback.AnswerRelevance);

                    /** AgentAssistantFeedback documentCorrectness. */
                    public documentCorrectness: (google.cloud.dialogflow.v2beta1.AgentAssistantFeedback.DocumentCorrectness|keyof typeof google.cloud.dialogflow.v2beta1.AgentAssistantFeedback.DocumentCorrectness);

                    /** AgentAssistantFeedback documentEfficiency. */
                    public documentEfficiency: (google.cloud.dialogflow.v2beta1.AgentAssistantFeedback.DocumentEfficiency|keyof typeof google.cloud.dialogflow.v2beta1.AgentAssistantFeedback.DocumentEfficiency);

                    /** AgentAssistantFeedback summarizationFeedback. */
                    public summarizationFeedback?: (google.cloud.dialogflow.v2beta1.AgentAssistantFeedback.ISummarizationFeedback|null);

                    /** AgentAssistantFeedback knowledgeSearchFeedback. */
                    public knowledgeSearchFeedback?: (google.cloud.dialogflow.v2beta1.AgentAssistantFeedback.IKnowledgeSearchFeedback|null);

                    /** AgentAssistantFeedback knowledgeAssistFeedback. */
                    public knowledgeAssistFeedback?: (google.cloud.dialogflow.v2beta1.AgentAssistantFeedback.IKnowledgeAssistFeedback|null);

                    /**
                     * Creates a new AgentAssistantFeedback instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AgentAssistantFeedback instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IAgentAssistantFeedback): google.cloud.dialogflow.v2beta1.AgentAssistantFeedback;

                    /**
                     * Encodes the specified AgentAssistantFeedback message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.AgentAssistantFeedback.verify|verify} messages.
                     * @param message AgentAssistantFeedback message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IAgentAssistantFeedback, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AgentAssistantFeedback message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.AgentAssistantFeedback.verify|verify} messages.
                     * @param message AgentAssistantFeedback message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IAgentAssistantFeedback, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AgentAssistantFeedback message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AgentAssistantFeedback
                     * @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.cloud.dialogflow.v2beta1.AgentAssistantFeedback;

                    /**
                     * Decodes an AgentAssistantFeedback message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AgentAssistantFeedback
                     * @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.cloud.dialogflow.v2beta1.AgentAssistantFeedback;

                    /**
                     * Verifies an AgentAssistantFeedback 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 AgentAssistantFeedback message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AgentAssistantFeedback
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.AgentAssistantFeedback;

                    /**
                     * Creates a plain object from an AgentAssistantFeedback message. Also converts values to other types if specified.
                     * @param message AgentAssistantFeedback
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.AgentAssistantFeedback, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AgentAssistantFeedback to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AgentAssistantFeedback
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace AgentAssistantFeedback {

                    /** AnswerRelevance enum. */
                    enum AnswerRelevance {
                        ANSWER_RELEVANCE_UNSPECIFIED = 0,
                        IRRELEVANT = 1,
                        RELEVANT = 2
                    }

                    /** DocumentCorrectness enum. */
                    enum DocumentCorrectness {
                        DOCUMENT_CORRECTNESS_UNSPECIFIED = 0,
                        INCORRECT = 1,
                        CORRECT = 2
                    }

                    /** DocumentEfficiency enum. */
                    enum DocumentEfficiency {
                        DOCUMENT_EFFICIENCY_UNSPECIFIED = 0,
                        INEFFICIENT = 1,
                        EFFICIENT = 2
                    }

                    /** Properties of a SummarizationFeedback. */
                    interface ISummarizationFeedback {

                        /** SummarizationFeedback startTimestamp */
                        startTimestamp?: (google.protobuf.ITimestamp|null);

                        /** SummarizationFeedback submitTimestamp */
                        submitTimestamp?: (google.protobuf.ITimestamp|null);

                        /** SummarizationFeedback summaryText */
                        summaryText?: (string|null);

                        /** SummarizationFeedback textSections */
                        textSections?: ({ [k: string]: string }|null);
                    }

                    /** Represents a SummarizationFeedback. */
                    class SummarizationFeedback implements ISummarizationFeedback {

                        /**
                         * Constructs a new SummarizationFeedback.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2beta1.AgentAssistantFeedback.ISummarizationFeedback);

                        /** SummarizationFeedback startTimestamp. */
                        public startTimestamp?: (google.protobuf.ITimestamp|null);

                        /** SummarizationFeedback submitTimestamp. */
                        public submitTimestamp?: (google.protobuf.ITimestamp|null);

                        /** SummarizationFeedback summaryText. */
                        public summaryText: string;

                        /** SummarizationFeedback textSections. */
                        public textSections: { [k: string]: string };

                        /**
                         * Creates a new SummarizationFeedback instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns SummarizationFeedback instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2beta1.AgentAssistantFeedback.ISummarizationFeedback): google.cloud.dialogflow.v2beta1.AgentAssistantFeedback.SummarizationFeedback;

                        /**
                         * Encodes the specified SummarizationFeedback message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.AgentAssistantFeedback.SummarizationFeedback.verify|verify} messages.
                         * @param message SummarizationFeedback message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2beta1.AgentAssistantFeedback.ISummarizationFeedback, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified SummarizationFeedback message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.AgentAssistantFeedback.SummarizationFeedback.verify|verify} messages.
                         * @param message SummarizationFeedback message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.AgentAssistantFeedback.ISummarizationFeedback, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a SummarizationFeedback message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns SummarizationFeedback
                         * @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.cloud.dialogflow.v2beta1.AgentAssistantFeedback.SummarizationFeedback;

                        /**
                         * Decodes a SummarizationFeedback message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns SummarizationFeedback
                         * @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.cloud.dialogflow.v2beta1.AgentAssistantFeedback.SummarizationFeedback;

                        /**
                         * Verifies a SummarizationFeedback 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 SummarizationFeedback message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns SummarizationFeedback
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.AgentAssistantFeedback.SummarizationFeedback;

                        /**
                         * Creates a plain object from a SummarizationFeedback message. Also converts values to other types if specified.
                         * @param message SummarizationFeedback
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.dialogflow.v2beta1.AgentAssistantFeedback.SummarizationFeedback, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this SummarizationFeedback to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for SummarizationFeedback
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    /** Properties of a KnowledgeSearchFeedback. */
                    interface IKnowledgeSearchFeedback {

                        /** KnowledgeSearchFeedback answerCopied */
                        answerCopied?: (boolean|null);

                        /** KnowledgeSearchFeedback clickedUris */
                        clickedUris?: (string[]|null);
                    }

                    /** Represents a KnowledgeSearchFeedback. */
                    class KnowledgeSearchFeedback implements IKnowledgeSearchFeedback {

                        /**
                         * Constructs a new KnowledgeSearchFeedback.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2beta1.AgentAssistantFeedback.IKnowledgeSearchFeedback);

                        /** KnowledgeSearchFeedback answerCopied. */
                        public answerCopied: boolean;

                        /** KnowledgeSearchFeedback clickedUris. */
                        public clickedUris: string[];

                        /**
                         * Creates a new KnowledgeSearchFeedback instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns KnowledgeSearchFeedback instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2beta1.AgentAssistantFeedback.IKnowledgeSearchFeedback): google.cloud.dialogflow.v2beta1.AgentAssistantFeedback.KnowledgeSearchFeedback;

                        /**
                         * Encodes the specified KnowledgeSearchFeedback message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.AgentAssistantFeedback.KnowledgeSearchFeedback.verify|verify} messages.
                         * @param message KnowledgeSearchFeedback message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2beta1.AgentAssistantFeedback.IKnowledgeSearchFeedback, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified KnowledgeSearchFeedback message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.AgentAssistantFeedback.KnowledgeSearchFeedback.verify|verify} messages.
                         * @param message KnowledgeSearchFeedback message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.AgentAssistantFeedback.IKnowledgeSearchFeedback, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a KnowledgeSearchFeedback message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns KnowledgeSearchFeedback
                         * @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.cloud.dialogflow.v2beta1.AgentAssistantFeedback.KnowledgeSearchFeedback;

                        /**
                         * Decodes a KnowledgeSearchFeedback message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns KnowledgeSearchFeedback
                         * @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.cloud.dialogflow.v2beta1.AgentAssistantFeedback.KnowledgeSearchFeedback;

                        /**
                         * Verifies a KnowledgeSearchFeedback 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 KnowledgeSearchFeedback message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns KnowledgeSearchFeedback
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.AgentAssistantFeedback.KnowledgeSearchFeedback;

                        /**
                         * Creates a plain object from a KnowledgeSearchFeedback message. Also converts values to other types if specified.
                         * @param message KnowledgeSearchFeedback
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.dialogflow.v2beta1.AgentAssistantFeedback.KnowledgeSearchFeedback, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this KnowledgeSearchFeedback to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for KnowledgeSearchFeedback
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    /** Properties of a KnowledgeAssistFeedback. */
                    interface IKnowledgeAssistFeedback {

                        /** KnowledgeAssistFeedback answerCopied */
                        answerCopied?: (boolean|null);

                        /** KnowledgeAssistFeedback clickedUris */
                        clickedUris?: (string[]|null);
                    }

                    /** Represents a KnowledgeAssistFeedback. */
                    class KnowledgeAssistFeedback implements IKnowledgeAssistFeedback {

                        /**
                         * Constructs a new KnowledgeAssistFeedback.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2beta1.AgentAssistantFeedback.IKnowledgeAssistFeedback);

                        /** KnowledgeAssistFeedback answerCopied. */
                        public answerCopied: boolean;

                        /** KnowledgeAssistFeedback clickedUris. */
                        public clickedUris: string[];

                        /**
                         * Creates a new KnowledgeAssistFeedback instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns KnowledgeAssistFeedback instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2beta1.AgentAssistantFeedback.IKnowledgeAssistFeedback): google.cloud.dialogflow.v2beta1.AgentAssistantFeedback.KnowledgeAssistFeedback;

                        /**
                         * Encodes the specified KnowledgeAssistFeedback message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.AgentAssistantFeedback.KnowledgeAssistFeedback.verify|verify} messages.
                         * @param message KnowledgeAssistFeedback message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2beta1.AgentAssistantFeedback.IKnowledgeAssistFeedback, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified KnowledgeAssistFeedback message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.AgentAssistantFeedback.KnowledgeAssistFeedback.verify|verify} messages.
                         * @param message KnowledgeAssistFeedback message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.AgentAssistantFeedback.IKnowledgeAssistFeedback, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a KnowledgeAssistFeedback message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns KnowledgeAssistFeedback
                         * @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.cloud.dialogflow.v2beta1.AgentAssistantFeedback.KnowledgeAssistFeedback;

                        /**
                         * Decodes a KnowledgeAssistFeedback message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns KnowledgeAssistFeedback
                         * @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.cloud.dialogflow.v2beta1.AgentAssistantFeedback.KnowledgeAssistFeedback;

                        /**
                         * Verifies a KnowledgeAssistFeedback 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 KnowledgeAssistFeedback message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns KnowledgeAssistFeedback
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.AgentAssistantFeedback.KnowledgeAssistFeedback;

                        /**
                         * Creates a plain object from a KnowledgeAssistFeedback message. Also converts values to other types if specified.
                         * @param message KnowledgeAssistFeedback
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.dialogflow.v2beta1.AgentAssistantFeedback.KnowledgeAssistFeedback, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this KnowledgeAssistFeedback to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for KnowledgeAssistFeedback
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }
                }

                /** Properties of a GetAnswerRecordRequest. */
                interface IGetAnswerRecordRequest {

                    /** GetAnswerRecordRequest name */
                    name?: (string|null);
                }

                /** Represents a GetAnswerRecordRequest. */
                class GetAnswerRecordRequest implements IGetAnswerRecordRequest {

                    /**
                     * Constructs a new GetAnswerRecordRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IGetAnswerRecordRequest);

                    /** GetAnswerRecordRequest name. */
                    public name: string;

                    /**
                     * Creates a new GetAnswerRecordRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetAnswerRecordRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IGetAnswerRecordRequest): google.cloud.dialogflow.v2beta1.GetAnswerRecordRequest;

                    /**
                     * Encodes the specified GetAnswerRecordRequest message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.GetAnswerRecordRequest.verify|verify} messages.
                     * @param message GetAnswerRecordRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IGetAnswerRecordRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetAnswerRecordRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.GetAnswerRecordRequest.verify|verify} messages.
                     * @param message GetAnswerRecordRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IGetAnswerRecordRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetAnswerRecordRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetAnswerRecordRequest
                     * @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.cloud.dialogflow.v2beta1.GetAnswerRecordRequest;

                    /**
                     * Decodes a GetAnswerRecordRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetAnswerRecordRequest
                     * @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.cloud.dialogflow.v2beta1.GetAnswerRecordRequest;

                    /**
                     * Verifies a GetAnswerRecordRequest 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 GetAnswerRecordRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetAnswerRecordRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.GetAnswerRecordRequest;

                    /**
                     * Creates a plain object from a GetAnswerRecordRequest message. Also converts values to other types if specified.
                     * @param message GetAnswerRecordRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.GetAnswerRecordRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetAnswerRecordRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetAnswerRecordRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListAnswerRecordsRequest. */
                interface IListAnswerRecordsRequest {

                    /** ListAnswerRecordsRequest parent */
                    parent?: (string|null);

                    /** ListAnswerRecordsRequest filter */
                    filter?: (string|null);

                    /** ListAnswerRecordsRequest pageSize */
                    pageSize?: (number|null);

                    /** ListAnswerRecordsRequest pageToken */
                    pageToken?: (string|null);
                }

                /** Represents a ListAnswerRecordsRequest. */
                class ListAnswerRecordsRequest implements IListAnswerRecordsRequest {

                    /**
                     * Constructs a new ListAnswerRecordsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IListAnswerRecordsRequest);

                    /** ListAnswerRecordsRequest parent. */
                    public parent: string;

                    /** ListAnswerRecordsRequest filter. */
                    public filter: string;

                    /** ListAnswerRecordsRequest pageSize. */
                    public pageSize: number;

                    /** ListAnswerRecordsRequest pageToken. */
                    public pageToken: string;

                    /**
                     * Creates a new ListAnswerRecordsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListAnswerRecordsRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IListAnswerRecordsRequest): google.cloud.dialogflow.v2beta1.ListAnswerRecordsRequest;

                    /**
                     * Encodes the specified ListAnswerRecordsRequest message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.ListAnswerRecordsRequest.verify|verify} messages.
                     * @param message ListAnswerRecordsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IListAnswerRecordsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListAnswerRecordsRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.ListAnswerRecordsRequest.verify|verify} messages.
                     * @param message ListAnswerRecordsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IListAnswerRecordsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListAnswerRecordsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListAnswerRecordsRequest
                     * @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.cloud.dialogflow.v2beta1.ListAnswerRecordsRequest;

                    /**
                     * Decodes a ListAnswerRecordsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListAnswerRecordsRequest
                     * @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.cloud.dialogflow.v2beta1.ListAnswerRecordsRequest;

                    /**
                     * Verifies a ListAnswerRecordsRequest 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 ListAnswerRecordsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListAnswerRecordsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.ListAnswerRecordsRequest;

                    /**
                     * Creates a plain object from a ListAnswerRecordsRequest message. Also converts values to other types if specified.
                     * @param message ListAnswerRecordsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.ListAnswerRecordsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListAnswerRecordsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListAnswerRecordsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListAnswerRecordsResponse. */
                interface IListAnswerRecordsResponse {

                    /** ListAnswerRecordsResponse answerRecords */
                    answerRecords?: (google.cloud.dialogflow.v2beta1.IAnswerRecord[]|null);

                    /** ListAnswerRecordsResponse nextPageToken */
                    nextPageToken?: (string|null);
                }

                /** Represents a ListAnswerRecordsResponse. */
                class ListAnswerRecordsResponse implements IListAnswerRecordsResponse {

                    /**
                     * Constructs a new ListAnswerRecordsResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IListAnswerRecordsResponse);

                    /** ListAnswerRecordsResponse answerRecords. */
                    public answerRecords: google.cloud.dialogflow.v2beta1.IAnswerRecord[];

                    /** ListAnswerRecordsResponse nextPageToken. */
                    public nextPageToken: string;

                    /**
                     * Creates a new ListAnswerRecordsResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListAnswerRecordsResponse instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IListAnswerRecordsResponse): google.cloud.dialogflow.v2beta1.ListAnswerRecordsResponse;

                    /**
                     * Encodes the specified ListAnswerRecordsResponse message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.ListAnswerRecordsResponse.verify|verify} messages.
                     * @param message ListAnswerRecordsResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IListAnswerRecordsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListAnswerRecordsResponse message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.ListAnswerRecordsResponse.verify|verify} messages.
                     * @param message ListAnswerRecordsResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IListAnswerRecordsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListAnswerRecordsResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListAnswerRecordsResponse
                     * @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.cloud.dialogflow.v2beta1.ListAnswerRecordsResponse;

                    /**
                     * Decodes a ListAnswerRecordsResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListAnswerRecordsResponse
                     * @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.cloud.dialogflow.v2beta1.ListAnswerRecordsResponse;

                    /**
                     * Verifies a ListAnswerRecordsResponse 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 ListAnswerRecordsResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListAnswerRecordsResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.ListAnswerRecordsResponse;

                    /**
                     * Creates a plain object from a ListAnswerRecordsResponse message. Also converts values to other types if specified.
                     * @param message ListAnswerRecordsResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.ListAnswerRecordsResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListAnswerRecordsResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListAnswerRecordsResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an UpdateAnswerRecordRequest. */
                interface IUpdateAnswerRecordRequest {

                    /** UpdateAnswerRecordRequest answerRecord */
                    answerRecord?: (google.cloud.dialogflow.v2beta1.IAnswerRecord|null);

                    /** UpdateAnswerRecordRequest updateMask */
                    updateMask?: (google.protobuf.IFieldMask|null);
                }

                /** Represents an UpdateAnswerRecordRequest. */
                class UpdateAnswerRecordRequest implements IUpdateAnswerRecordRequest {

                    /**
                     * Constructs a new UpdateAnswerRecordRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IUpdateAnswerRecordRequest);

                    /** UpdateAnswerRecordRequest answerRecord. */
                    public answerRecord?: (google.cloud.dialogflow.v2beta1.IAnswerRecord|null);

                    /** UpdateAnswerRecordRequest updateMask. */
                    public updateMask?: (google.protobuf.IFieldMask|null);

                    /**
                     * Creates a new UpdateAnswerRecordRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UpdateAnswerRecordRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IUpdateAnswerRecordRequest): google.cloud.dialogflow.v2beta1.UpdateAnswerRecordRequest;

                    /**
                     * Encodes the specified UpdateAnswerRecordRequest message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.UpdateAnswerRecordRequest.verify|verify} messages.
                     * @param message UpdateAnswerRecordRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IUpdateAnswerRecordRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified UpdateAnswerRecordRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.UpdateAnswerRecordRequest.verify|verify} messages.
                     * @param message UpdateAnswerRecordRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IUpdateAnswerRecordRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an UpdateAnswerRecordRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns UpdateAnswerRecordRequest
                     * @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.cloud.dialogflow.v2beta1.UpdateAnswerRecordRequest;

                    /**
                     * Decodes an UpdateAnswerRecordRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns UpdateAnswerRecordRequest
                     * @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.cloud.dialogflow.v2beta1.UpdateAnswerRecordRequest;

                    /**
                     * Verifies an UpdateAnswerRecordRequest 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 UpdateAnswerRecordRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UpdateAnswerRecordRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.UpdateAnswerRecordRequest;

                    /**
                     * Creates a plain object from an UpdateAnswerRecordRequest message. Also converts values to other types if specified.
                     * @param message UpdateAnswerRecordRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.UpdateAnswerRecordRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this UpdateAnswerRecordRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for UpdateAnswerRecordRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Represents a Generators */
                class Generators extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new Generators 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 Generators 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): Generators;

                    /**
                     * Calls CreateGenerator.
                     * @param request CreateGeneratorRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Generator
                     */
                    public createGenerator(request: google.cloud.dialogflow.v2beta1.ICreateGeneratorRequest, callback: google.cloud.dialogflow.v2beta1.Generators.CreateGeneratorCallback): void;

                    /**
                     * Calls CreateGenerator.
                     * @param request CreateGeneratorRequest message or plain object
                     * @returns Promise
                     */
                    public createGenerator(request: google.cloud.dialogflow.v2beta1.ICreateGeneratorRequest): Promise<google.cloud.dialogflow.v2beta1.Generator>;

                    /**
                     * Calls GetGenerator.
                     * @param request GetGeneratorRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Generator
                     */
                    public getGenerator(request: google.cloud.dialogflow.v2beta1.IGetGeneratorRequest, callback: google.cloud.dialogflow.v2beta1.Generators.GetGeneratorCallback): void;

                    /**
                     * Calls GetGenerator.
                     * @param request GetGeneratorRequest message or plain object
                     * @returns Promise
                     */
                    public getGenerator(request: google.cloud.dialogflow.v2beta1.IGetGeneratorRequest): Promise<google.cloud.dialogflow.v2beta1.Generator>;

                    /**
                     * Calls ListGenerators.
                     * @param request ListGeneratorsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ListGeneratorsResponse
                     */
                    public listGenerators(request: google.cloud.dialogflow.v2beta1.IListGeneratorsRequest, callback: google.cloud.dialogflow.v2beta1.Generators.ListGeneratorsCallback): void;

                    /**
                     * Calls ListGenerators.
                     * @param request ListGeneratorsRequest message or plain object
                     * @returns Promise
                     */
                    public listGenerators(request: google.cloud.dialogflow.v2beta1.IListGeneratorsRequest): Promise<google.cloud.dialogflow.v2beta1.ListGeneratorsResponse>;

                    /**
                     * Calls DeleteGenerator.
                     * @param request DeleteGeneratorRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Empty
                     */
                    public deleteGenerator(request: google.cloud.dialogflow.v2beta1.IDeleteGeneratorRequest, callback: google.cloud.dialogflow.v2beta1.Generators.DeleteGeneratorCallback): void;

                    /**
                     * Calls DeleteGenerator.
                     * @param request DeleteGeneratorRequest message or plain object
                     * @returns Promise
                     */
                    public deleteGenerator(request: google.cloud.dialogflow.v2beta1.IDeleteGeneratorRequest): Promise<google.protobuf.Empty>;

                    /**
                     * Calls UpdateGenerator.
                     * @param request UpdateGeneratorRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Generator
                     */
                    public updateGenerator(request: google.cloud.dialogflow.v2beta1.IUpdateGeneratorRequest, callback: google.cloud.dialogflow.v2beta1.Generators.UpdateGeneratorCallback): void;

                    /**
                     * Calls UpdateGenerator.
                     * @param request UpdateGeneratorRequest message or plain object
                     * @returns Promise
                     */
                    public updateGenerator(request: google.cloud.dialogflow.v2beta1.IUpdateGeneratorRequest): Promise<google.cloud.dialogflow.v2beta1.Generator>;
                }

                namespace Generators {

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2beta1.Generators|createGenerator}.
                     * @param error Error, if any
                     * @param [response] Generator
                     */
                    type CreateGeneratorCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2beta1.Generator) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2beta1.Generators|getGenerator}.
                     * @param error Error, if any
                     * @param [response] Generator
                     */
                    type GetGeneratorCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2beta1.Generator) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2beta1.Generators|listGenerators}.
                     * @param error Error, if any
                     * @param [response] ListGeneratorsResponse
                     */
                    type ListGeneratorsCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2beta1.ListGeneratorsResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2beta1.Generators|deleteGenerator}.
                     * @param error Error, if any
                     * @param [response] Empty
                     */
                    type DeleteGeneratorCallback = (error: (Error|null), response?: google.protobuf.Empty) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2beta1.Generators|updateGenerator}.
                     * @param error Error, if any
                     * @param [response] Generator
                     */
                    type UpdateGeneratorCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2beta1.Generator) => void;
                }

                /** Properties of a CreateGeneratorRequest. */
                interface ICreateGeneratorRequest {

                    /** CreateGeneratorRequest parent */
                    parent?: (string|null);

                    /** CreateGeneratorRequest generator */
                    generator?: (google.cloud.dialogflow.v2beta1.IGenerator|null);

                    /** CreateGeneratorRequest generatorId */
                    generatorId?: (string|null);
                }

                /** Represents a CreateGeneratorRequest. */
                class CreateGeneratorRequest implements ICreateGeneratorRequest {

                    /**
                     * Constructs a new CreateGeneratorRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.ICreateGeneratorRequest);

                    /** CreateGeneratorRequest parent. */
                    public parent: string;

                    /** CreateGeneratorRequest generator. */
                    public generator?: (google.cloud.dialogflow.v2beta1.IGenerator|null);

                    /** CreateGeneratorRequest generatorId. */
                    public generatorId: string;

                    /**
                     * Creates a new CreateGeneratorRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CreateGeneratorRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.ICreateGeneratorRequest): google.cloud.dialogflow.v2beta1.CreateGeneratorRequest;

                    /**
                     * Encodes the specified CreateGeneratorRequest message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.CreateGeneratorRequest.verify|verify} messages.
                     * @param message CreateGeneratorRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.ICreateGeneratorRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CreateGeneratorRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.CreateGeneratorRequest.verify|verify} messages.
                     * @param message CreateGeneratorRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.ICreateGeneratorRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CreateGeneratorRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CreateGeneratorRequest
                     * @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.cloud.dialogflow.v2beta1.CreateGeneratorRequest;

                    /**
                     * Decodes a CreateGeneratorRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CreateGeneratorRequest
                     * @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.cloud.dialogflow.v2beta1.CreateGeneratorRequest;

                    /**
                     * Verifies a CreateGeneratorRequest 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 CreateGeneratorRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CreateGeneratorRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.CreateGeneratorRequest;

                    /**
                     * Creates a plain object from a CreateGeneratorRequest message. Also converts values to other types if specified.
                     * @param message CreateGeneratorRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.CreateGeneratorRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CreateGeneratorRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CreateGeneratorRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetGeneratorRequest. */
                interface IGetGeneratorRequest {

                    /** GetGeneratorRequest name */
                    name?: (string|null);
                }

                /** Represents a GetGeneratorRequest. */
                class GetGeneratorRequest implements IGetGeneratorRequest {

                    /**
                     * Constructs a new GetGeneratorRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IGetGeneratorRequest);

                    /** GetGeneratorRequest name. */
                    public name: string;

                    /**
                     * Creates a new GetGeneratorRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetGeneratorRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IGetGeneratorRequest): google.cloud.dialogflow.v2beta1.GetGeneratorRequest;

                    /**
                     * Encodes the specified GetGeneratorRequest message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.GetGeneratorRequest.verify|verify} messages.
                     * @param message GetGeneratorRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IGetGeneratorRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetGeneratorRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.GetGeneratorRequest.verify|verify} messages.
                     * @param message GetGeneratorRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IGetGeneratorRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetGeneratorRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetGeneratorRequest
                     * @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.cloud.dialogflow.v2beta1.GetGeneratorRequest;

                    /**
                     * Decodes a GetGeneratorRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetGeneratorRequest
                     * @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.cloud.dialogflow.v2beta1.GetGeneratorRequest;

                    /**
                     * Verifies a GetGeneratorRequest 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 GetGeneratorRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetGeneratorRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.GetGeneratorRequest;

                    /**
                     * Creates a plain object from a GetGeneratorRequest message. Also converts values to other types if specified.
                     * @param message GetGeneratorRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.GetGeneratorRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetGeneratorRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetGeneratorRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListGeneratorsRequest. */
                interface IListGeneratorsRequest {

                    /** ListGeneratorsRequest parent */
                    parent?: (string|null);

                    /** ListGeneratorsRequest pageSize */
                    pageSize?: (number|null);

                    /** ListGeneratorsRequest pageToken */
                    pageToken?: (string|null);
                }

                /** Represents a ListGeneratorsRequest. */
                class ListGeneratorsRequest implements IListGeneratorsRequest {

                    /**
                     * Constructs a new ListGeneratorsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IListGeneratorsRequest);

                    /** ListGeneratorsRequest parent. */
                    public parent: string;

                    /** ListGeneratorsRequest pageSize. */
                    public pageSize: number;

                    /** ListGeneratorsRequest pageToken. */
                    public pageToken: string;

                    /**
                     * Creates a new ListGeneratorsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListGeneratorsRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IListGeneratorsRequest): google.cloud.dialogflow.v2beta1.ListGeneratorsRequest;

                    /**
                     * Encodes the specified ListGeneratorsRequest message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.ListGeneratorsRequest.verify|verify} messages.
                     * @param message ListGeneratorsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IListGeneratorsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListGeneratorsRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.ListGeneratorsRequest.verify|verify} messages.
                     * @param message ListGeneratorsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IListGeneratorsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListGeneratorsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListGeneratorsRequest
                     * @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.cloud.dialogflow.v2beta1.ListGeneratorsRequest;

                    /**
                     * Decodes a ListGeneratorsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListGeneratorsRequest
                     * @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.cloud.dialogflow.v2beta1.ListGeneratorsRequest;

                    /**
                     * Verifies a ListGeneratorsRequest 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 ListGeneratorsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListGeneratorsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.ListGeneratorsRequest;

                    /**
                     * Creates a plain object from a ListGeneratorsRequest message. Also converts values to other types if specified.
                     * @param message ListGeneratorsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.ListGeneratorsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListGeneratorsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListGeneratorsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListGeneratorsResponse. */
                interface IListGeneratorsResponse {

                    /** ListGeneratorsResponse generators */
                    generators?: (google.cloud.dialogflow.v2beta1.IGenerator[]|null);

                    /** ListGeneratorsResponse nextPageToken */
                    nextPageToken?: (string|null);
                }

                /** Represents a ListGeneratorsResponse. */
                class ListGeneratorsResponse implements IListGeneratorsResponse {

                    /**
                     * Constructs a new ListGeneratorsResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IListGeneratorsResponse);

                    /** ListGeneratorsResponse generators. */
                    public generators: google.cloud.dialogflow.v2beta1.IGenerator[];

                    /** ListGeneratorsResponse nextPageToken. */
                    public nextPageToken: string;

                    /**
                     * Creates a new ListGeneratorsResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListGeneratorsResponse instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IListGeneratorsResponse): google.cloud.dialogflow.v2beta1.ListGeneratorsResponse;

                    /**
                     * Encodes the specified ListGeneratorsResponse message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.ListGeneratorsResponse.verify|verify} messages.
                     * @param message ListGeneratorsResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IListGeneratorsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListGeneratorsResponse message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.ListGeneratorsResponse.verify|verify} messages.
                     * @param message ListGeneratorsResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IListGeneratorsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListGeneratorsResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListGeneratorsResponse
                     * @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.cloud.dialogflow.v2beta1.ListGeneratorsResponse;

                    /**
                     * Decodes a ListGeneratorsResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListGeneratorsResponse
                     * @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.cloud.dialogflow.v2beta1.ListGeneratorsResponse;

                    /**
                     * Verifies a ListGeneratorsResponse 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 ListGeneratorsResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListGeneratorsResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.ListGeneratorsResponse;

                    /**
                     * Creates a plain object from a ListGeneratorsResponse message. Also converts values to other types if specified.
                     * @param message ListGeneratorsResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.ListGeneratorsResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListGeneratorsResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListGeneratorsResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteGeneratorRequest. */
                interface IDeleteGeneratorRequest {

                    /** DeleteGeneratorRequest name */
                    name?: (string|null);
                }

                /** Represents a DeleteGeneratorRequest. */
                class DeleteGeneratorRequest implements IDeleteGeneratorRequest {

                    /**
                     * Constructs a new DeleteGeneratorRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IDeleteGeneratorRequest);

                    /** DeleteGeneratorRequest name. */
                    public name: string;

                    /**
                     * Creates a new DeleteGeneratorRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteGeneratorRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IDeleteGeneratorRequest): google.cloud.dialogflow.v2beta1.DeleteGeneratorRequest;

                    /**
                     * Encodes the specified DeleteGeneratorRequest message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.DeleteGeneratorRequest.verify|verify} messages.
                     * @param message DeleteGeneratorRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IDeleteGeneratorRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteGeneratorRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.DeleteGeneratorRequest.verify|verify} messages.
                     * @param message DeleteGeneratorRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IDeleteGeneratorRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteGeneratorRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteGeneratorRequest
                     * @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.cloud.dialogflow.v2beta1.DeleteGeneratorRequest;

                    /**
                     * Decodes a DeleteGeneratorRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteGeneratorRequest
                     * @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.cloud.dialogflow.v2beta1.DeleteGeneratorRequest;

                    /**
                     * Verifies a DeleteGeneratorRequest 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 DeleteGeneratorRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteGeneratorRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.DeleteGeneratorRequest;

                    /**
                     * Creates a plain object from a DeleteGeneratorRequest message. Also converts values to other types if specified.
                     * @param message DeleteGeneratorRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.DeleteGeneratorRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteGeneratorRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteGeneratorRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an UpdateGeneratorRequest. */
                interface IUpdateGeneratorRequest {

                    /** UpdateGeneratorRequest generator */
                    generator?: (google.cloud.dialogflow.v2beta1.IGenerator|null);

                    /** UpdateGeneratorRequest updateMask */
                    updateMask?: (google.protobuf.IFieldMask|null);
                }

                /** Represents an UpdateGeneratorRequest. */
                class UpdateGeneratorRequest implements IUpdateGeneratorRequest {

                    /**
                     * Constructs a new UpdateGeneratorRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IUpdateGeneratorRequest);

                    /** UpdateGeneratorRequest generator. */
                    public generator?: (google.cloud.dialogflow.v2beta1.IGenerator|null);

                    /** UpdateGeneratorRequest updateMask. */
                    public updateMask?: (google.protobuf.IFieldMask|null);

                    /**
                     * Creates a new UpdateGeneratorRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UpdateGeneratorRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IUpdateGeneratorRequest): google.cloud.dialogflow.v2beta1.UpdateGeneratorRequest;

                    /**
                     * Encodes the specified UpdateGeneratorRequest message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.UpdateGeneratorRequest.verify|verify} messages.
                     * @param message UpdateGeneratorRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IUpdateGeneratorRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified UpdateGeneratorRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.UpdateGeneratorRequest.verify|verify} messages.
                     * @param message UpdateGeneratorRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IUpdateGeneratorRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an UpdateGeneratorRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns UpdateGeneratorRequest
                     * @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.cloud.dialogflow.v2beta1.UpdateGeneratorRequest;

                    /**
                     * Decodes an UpdateGeneratorRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns UpdateGeneratorRequest
                     * @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.cloud.dialogflow.v2beta1.UpdateGeneratorRequest;

                    /**
                     * Verifies an UpdateGeneratorRequest 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 UpdateGeneratorRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UpdateGeneratorRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.UpdateGeneratorRequest;

                    /**
                     * Creates a plain object from an UpdateGeneratorRequest message. Also converts values to other types if specified.
                     * @param message UpdateGeneratorRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.UpdateGeneratorRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this UpdateGeneratorRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for UpdateGeneratorRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a MessageEntry. */
                interface IMessageEntry {

                    /** MessageEntry role */
                    role?: (google.cloud.dialogflow.v2beta1.MessageEntry.Role|keyof typeof google.cloud.dialogflow.v2beta1.MessageEntry.Role|null);

                    /** MessageEntry text */
                    text?: (string|null);

                    /** MessageEntry languageCode */
                    languageCode?: (string|null);

                    /** MessageEntry createTime */
                    createTime?: (google.protobuf.ITimestamp|null);
                }

                /** Represents a MessageEntry. */
                class MessageEntry implements IMessageEntry {

                    /**
                     * Constructs a new MessageEntry.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IMessageEntry);

                    /** MessageEntry role. */
                    public role: (google.cloud.dialogflow.v2beta1.MessageEntry.Role|keyof typeof google.cloud.dialogflow.v2beta1.MessageEntry.Role);

                    /** MessageEntry text. */
                    public text: string;

                    /** MessageEntry languageCode. */
                    public languageCode: string;

                    /** MessageEntry createTime. */
                    public createTime?: (google.protobuf.ITimestamp|null);

                    /**
                     * Creates a new MessageEntry instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns MessageEntry instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IMessageEntry): google.cloud.dialogflow.v2beta1.MessageEntry;

                    /**
                     * Encodes the specified MessageEntry message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.MessageEntry.verify|verify} messages.
                     * @param message MessageEntry message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IMessageEntry, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified MessageEntry message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.MessageEntry.verify|verify} messages.
                     * @param message MessageEntry message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IMessageEntry, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a MessageEntry message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns MessageEntry
                     * @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.cloud.dialogflow.v2beta1.MessageEntry;

                    /**
                     * Decodes a MessageEntry message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns MessageEntry
                     * @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.cloud.dialogflow.v2beta1.MessageEntry;

                    /**
                     * Verifies a MessageEntry 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 MessageEntry message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns MessageEntry
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.MessageEntry;

                    /**
                     * Creates a plain object from a MessageEntry message. Also converts values to other types if specified.
                     * @param message MessageEntry
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.MessageEntry, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this MessageEntry to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for MessageEntry
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace MessageEntry {

                    /** Role enum. */
                    enum Role {
                        ROLE_UNSPECIFIED = 0,
                        HUMAN_AGENT = 1,
                        AUTOMATED_AGENT = 2,
                        END_USER = 3
                    }
                }

                /** Properties of a ConversationContext. */
                interface IConversationContext {

                    /** ConversationContext messageEntries */
                    messageEntries?: (google.cloud.dialogflow.v2beta1.IMessageEntry[]|null);
                }

                /** Represents a ConversationContext. */
                class ConversationContext implements IConversationContext {

                    /**
                     * Constructs a new ConversationContext.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IConversationContext);

                    /** ConversationContext messageEntries. */
                    public messageEntries: google.cloud.dialogflow.v2beta1.IMessageEntry[];

                    /**
                     * Creates a new ConversationContext instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ConversationContext instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IConversationContext): google.cloud.dialogflow.v2beta1.ConversationContext;

                    /**
                     * Encodes the specified ConversationContext message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.ConversationContext.verify|verify} messages.
                     * @param message ConversationContext message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IConversationContext, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ConversationContext message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.ConversationContext.verify|verify} messages.
                     * @param message ConversationContext message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IConversationContext, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ConversationContext message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ConversationContext
                     * @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.cloud.dialogflow.v2beta1.ConversationContext;

                    /**
                     * Decodes a ConversationContext message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ConversationContext
                     * @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.cloud.dialogflow.v2beta1.ConversationContext;

                    /**
                     * Verifies a ConversationContext 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 ConversationContext message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ConversationContext
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.ConversationContext;

                    /**
                     * Creates a plain object from a ConversationContext message. Also converts values to other types if specified.
                     * @param message ConversationContext
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.ConversationContext, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ConversationContext to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ConversationContext
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SummarizationSectionList. */
                interface ISummarizationSectionList {

                    /** SummarizationSectionList summarizationSections */
                    summarizationSections?: (google.cloud.dialogflow.v2beta1.ISummarizationSection[]|null);
                }

                /** Represents a SummarizationSectionList. */
                class SummarizationSectionList implements ISummarizationSectionList {

                    /**
                     * Constructs a new SummarizationSectionList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.ISummarizationSectionList);

                    /** SummarizationSectionList summarizationSections. */
                    public summarizationSections: google.cloud.dialogflow.v2beta1.ISummarizationSection[];

                    /**
                     * Creates a new SummarizationSectionList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SummarizationSectionList instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.ISummarizationSectionList): google.cloud.dialogflow.v2beta1.SummarizationSectionList;

                    /**
                     * Encodes the specified SummarizationSectionList message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.SummarizationSectionList.verify|verify} messages.
                     * @param message SummarizationSectionList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.ISummarizationSectionList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SummarizationSectionList message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.SummarizationSectionList.verify|verify} messages.
                     * @param message SummarizationSectionList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.ISummarizationSectionList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SummarizationSectionList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SummarizationSectionList
                     * @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.cloud.dialogflow.v2beta1.SummarizationSectionList;

                    /**
                     * Decodes a SummarizationSectionList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SummarizationSectionList
                     * @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.cloud.dialogflow.v2beta1.SummarizationSectionList;

                    /**
                     * Verifies a SummarizationSectionList 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 SummarizationSectionList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SummarizationSectionList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.SummarizationSectionList;

                    /**
                     * Creates a plain object from a SummarizationSectionList message. Also converts values to other types if specified.
                     * @param message SummarizationSectionList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.SummarizationSectionList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SummarizationSectionList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SummarizationSectionList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a FewShotExample. */
                interface IFewShotExample {

                    /** FewShotExample conversationContext */
                    conversationContext?: (google.cloud.dialogflow.v2beta1.IConversationContext|null);

                    /** FewShotExample extraInfo */
                    extraInfo?: ({ [k: string]: string }|null);

                    /** FewShotExample summarizationSectionList */
                    summarizationSectionList?: (google.cloud.dialogflow.v2beta1.ISummarizationSectionList|null);

                    /** FewShotExample output */
                    output?: (google.cloud.dialogflow.v2beta1.IGeneratorSuggestion|null);
                }

                /** Represents a FewShotExample. */
                class FewShotExample implements IFewShotExample {

                    /**
                     * Constructs a new FewShotExample.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IFewShotExample);

                    /** FewShotExample conversationContext. */
                    public conversationContext?: (google.cloud.dialogflow.v2beta1.IConversationContext|null);

                    /** FewShotExample extraInfo. */
                    public extraInfo: { [k: string]: string };

                    /** FewShotExample summarizationSectionList. */
                    public summarizationSectionList?: (google.cloud.dialogflow.v2beta1.ISummarizationSectionList|null);

                    /** FewShotExample output. */
                    public output?: (google.cloud.dialogflow.v2beta1.IGeneratorSuggestion|null);

                    /** FewShotExample instructionList. */
                    public instructionList?: "summarizationSectionList";

                    /**
                     * Creates a new FewShotExample instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns FewShotExample instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IFewShotExample): google.cloud.dialogflow.v2beta1.FewShotExample;

                    /**
                     * Encodes the specified FewShotExample message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.FewShotExample.verify|verify} messages.
                     * @param message FewShotExample message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IFewShotExample, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified FewShotExample message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.FewShotExample.verify|verify} messages.
                     * @param message FewShotExample message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IFewShotExample, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a FewShotExample message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns FewShotExample
                     * @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.cloud.dialogflow.v2beta1.FewShotExample;

                    /**
                     * Decodes a FewShotExample message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns FewShotExample
                     * @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.cloud.dialogflow.v2beta1.FewShotExample;

                    /**
                     * Verifies a FewShotExample 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 FewShotExample message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns FewShotExample
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.FewShotExample;

                    /**
                     * Creates a plain object from a FewShotExample message. Also converts values to other types if specified.
                     * @param message FewShotExample
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.FewShotExample, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this FewShotExample to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for FewShotExample
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InferenceParameter. */
                interface IInferenceParameter {

                    /** InferenceParameter maxOutputTokens */
                    maxOutputTokens?: (number|null);

                    /** InferenceParameter temperature */
                    temperature?: (number|null);

                    /** InferenceParameter topK */
                    topK?: (number|null);

                    /** InferenceParameter topP */
                    topP?: (number|null);
                }

                /** Represents an InferenceParameter. */
                class InferenceParameter implements IInferenceParameter {

                    /**
                     * Constructs a new InferenceParameter.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IInferenceParameter);

                    /** InferenceParameter maxOutputTokens. */
                    public maxOutputTokens?: (number|null);

                    /** InferenceParameter temperature. */
                    public temperature?: (number|null);

                    /** InferenceParameter topK. */
                    public topK?: (number|null);

                    /** InferenceParameter topP. */
                    public topP?: (number|null);

                    /**
                     * Creates a new InferenceParameter instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InferenceParameter instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IInferenceParameter): google.cloud.dialogflow.v2beta1.InferenceParameter;

                    /**
                     * Encodes the specified InferenceParameter message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.InferenceParameter.verify|verify} messages.
                     * @param message InferenceParameter message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IInferenceParameter, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InferenceParameter message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.InferenceParameter.verify|verify} messages.
                     * @param message InferenceParameter message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IInferenceParameter, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InferenceParameter message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InferenceParameter
                     * @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.cloud.dialogflow.v2beta1.InferenceParameter;

                    /**
                     * Decodes an InferenceParameter message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InferenceParameter
                     * @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.cloud.dialogflow.v2beta1.InferenceParameter;

                    /**
                     * Verifies an InferenceParameter 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 InferenceParameter message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InferenceParameter
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.InferenceParameter;

                    /**
                     * Creates a plain object from an InferenceParameter message. Also converts values to other types if specified.
                     * @param message InferenceParameter
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.InferenceParameter, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InferenceParameter to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InferenceParameter
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AgentCoachingContext. */
                interface IAgentCoachingContext {

                    /** AgentCoachingContext overarchingGuidance */
                    overarchingGuidance?: (string|null);

                    /** AgentCoachingContext instructions */
                    instructions?: (google.cloud.dialogflow.v2beta1.IAgentCoachingInstruction[]|null);

                    /** AgentCoachingContext version */
                    version?: (string|null);

                    /** AgentCoachingContext outputLanguageCode */
                    outputLanguageCode?: (string|null);
                }

                /** Represents an AgentCoachingContext. */
                class AgentCoachingContext implements IAgentCoachingContext {

                    /**
                     * Constructs a new AgentCoachingContext.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IAgentCoachingContext);

                    /** AgentCoachingContext overarchingGuidance. */
                    public overarchingGuidance: string;

                    /** AgentCoachingContext instructions. */
                    public instructions: google.cloud.dialogflow.v2beta1.IAgentCoachingInstruction[];

                    /** AgentCoachingContext version. */
                    public version: string;

                    /** AgentCoachingContext outputLanguageCode. */
                    public outputLanguageCode: string;

                    /**
                     * Creates a new AgentCoachingContext instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AgentCoachingContext instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IAgentCoachingContext): google.cloud.dialogflow.v2beta1.AgentCoachingContext;

                    /**
                     * Encodes the specified AgentCoachingContext message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.AgentCoachingContext.verify|verify} messages.
                     * @param message AgentCoachingContext message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IAgentCoachingContext, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AgentCoachingContext message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.AgentCoachingContext.verify|verify} messages.
                     * @param message AgentCoachingContext message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IAgentCoachingContext, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AgentCoachingContext message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AgentCoachingContext
                     * @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.cloud.dialogflow.v2beta1.AgentCoachingContext;

                    /**
                     * Decodes an AgentCoachingContext message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AgentCoachingContext
                     * @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.cloud.dialogflow.v2beta1.AgentCoachingContext;

                    /**
                     * Verifies an AgentCoachingContext 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 AgentCoachingContext message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AgentCoachingContext
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.AgentCoachingContext;

                    /**
                     * Creates a plain object from an AgentCoachingContext message. Also converts values to other types if specified.
                     * @param message AgentCoachingContext
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.AgentCoachingContext, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AgentCoachingContext to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AgentCoachingContext
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SummarizationSection. */
                interface ISummarizationSection {

                    /** SummarizationSection key */
                    key?: (string|null);

                    /** SummarizationSection definition */
                    definition?: (string|null);

                    /** SummarizationSection type */
                    type?: (google.cloud.dialogflow.v2beta1.SummarizationSection.Type|keyof typeof google.cloud.dialogflow.v2beta1.SummarizationSection.Type|null);
                }

                /** Represents a SummarizationSection. */
                class SummarizationSection implements ISummarizationSection {

                    /**
                     * Constructs a new SummarizationSection.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.ISummarizationSection);

                    /** SummarizationSection key. */
                    public key: string;

                    /** SummarizationSection definition. */
                    public definition: string;

                    /** SummarizationSection type. */
                    public type: (google.cloud.dialogflow.v2beta1.SummarizationSection.Type|keyof typeof google.cloud.dialogflow.v2beta1.SummarizationSection.Type);

                    /**
                     * Creates a new SummarizationSection instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SummarizationSection instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.ISummarizationSection): google.cloud.dialogflow.v2beta1.SummarizationSection;

                    /**
                     * Encodes the specified SummarizationSection message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.SummarizationSection.verify|verify} messages.
                     * @param message SummarizationSection message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.ISummarizationSection, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SummarizationSection message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.SummarizationSection.verify|verify} messages.
                     * @param message SummarizationSection message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.ISummarizationSection, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SummarizationSection message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SummarizationSection
                     * @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.cloud.dialogflow.v2beta1.SummarizationSection;

                    /**
                     * Decodes a SummarizationSection message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SummarizationSection
                     * @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.cloud.dialogflow.v2beta1.SummarizationSection;

                    /**
                     * Verifies a SummarizationSection 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 SummarizationSection message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SummarizationSection
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.SummarizationSection;

                    /**
                     * Creates a plain object from a SummarizationSection message. Also converts values to other types if specified.
                     * @param message SummarizationSection
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.SummarizationSection, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SummarizationSection to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SummarizationSection
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace SummarizationSection {

                    /** Type enum. */
                    enum Type {
                        TYPE_UNSPECIFIED = 0,
                        SITUATION = 1,
                        ACTION = 2,
                        RESOLUTION = 3,
                        REASON_FOR_CANCELLATION = 4,
                        CUSTOMER_SATISFACTION = 5,
                        ENTITIES = 6,
                        CUSTOMER_DEFINED = 7,
                        SITUATION_CONCISE = 9,
                        ACTION_CONCISE = 10
                    }
                }

                /** Properties of a SummarizationContext. */
                interface ISummarizationContext {

                    /** SummarizationContext summarizationSections */
                    summarizationSections?: (google.cloud.dialogflow.v2beta1.ISummarizationSection[]|null);

                    /** SummarizationContext fewShotExamples */
                    fewShotExamples?: (google.cloud.dialogflow.v2beta1.IFewShotExample[]|null);

                    /** SummarizationContext version */
                    version?: (string|null);

                    /** SummarizationContext outputLanguageCode */
                    outputLanguageCode?: (string|null);
                }

                /** Represents a SummarizationContext. */
                class SummarizationContext implements ISummarizationContext {

                    /**
                     * Constructs a new SummarizationContext.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.ISummarizationContext);

                    /** SummarizationContext summarizationSections. */
                    public summarizationSections: google.cloud.dialogflow.v2beta1.ISummarizationSection[];

                    /** SummarizationContext fewShotExamples. */
                    public fewShotExamples: google.cloud.dialogflow.v2beta1.IFewShotExample[];

                    /** SummarizationContext version. */
                    public version: string;

                    /** SummarizationContext outputLanguageCode. */
                    public outputLanguageCode: string;

                    /**
                     * Creates a new SummarizationContext instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SummarizationContext instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.ISummarizationContext): google.cloud.dialogflow.v2beta1.SummarizationContext;

                    /**
                     * Encodes the specified SummarizationContext message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.SummarizationContext.verify|verify} messages.
                     * @param message SummarizationContext message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.ISummarizationContext, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SummarizationContext message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.SummarizationContext.verify|verify} messages.
                     * @param message SummarizationContext message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.ISummarizationContext, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SummarizationContext message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SummarizationContext
                     * @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.cloud.dialogflow.v2beta1.SummarizationContext;

                    /**
                     * Decodes a SummarizationContext message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SummarizationContext
                     * @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.cloud.dialogflow.v2beta1.SummarizationContext;

                    /**
                     * Verifies a SummarizationContext 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 SummarizationContext message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SummarizationContext
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.SummarizationContext;

                    /**
                     * Creates a plain object from a SummarizationContext message. Also converts values to other types if specified.
                     * @param message SummarizationContext
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.SummarizationContext, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SummarizationContext to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SummarizationContext
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a FreeFormContext. */
                interface IFreeFormContext {

                    /** FreeFormContext text */
                    text?: (string|null);
                }

                /** Represents a FreeFormContext. */
                class FreeFormContext implements IFreeFormContext {

                    /**
                     * Constructs a new FreeFormContext.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IFreeFormContext);

                    /** FreeFormContext text. */
                    public text: string;

                    /**
                     * Creates a new FreeFormContext instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns FreeFormContext instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IFreeFormContext): google.cloud.dialogflow.v2beta1.FreeFormContext;

                    /**
                     * Encodes the specified FreeFormContext message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.FreeFormContext.verify|verify} messages.
                     * @param message FreeFormContext message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IFreeFormContext, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified FreeFormContext message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.FreeFormContext.verify|verify} messages.
                     * @param message FreeFormContext message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IFreeFormContext, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a FreeFormContext message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns FreeFormContext
                     * @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.cloud.dialogflow.v2beta1.FreeFormContext;

                    /**
                     * Decodes a FreeFormContext message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns FreeFormContext
                     * @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.cloud.dialogflow.v2beta1.FreeFormContext;

                    /**
                     * Verifies a FreeFormContext 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 FreeFormContext message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns FreeFormContext
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.FreeFormContext;

                    /**
                     * Creates a plain object from a FreeFormContext message. Also converts values to other types if specified.
                     * @param message FreeFormContext
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.FreeFormContext, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this FreeFormContext to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for FreeFormContext
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a Generator. */
                interface IGenerator {

                    /** Generator name */
                    name?: (string|null);

                    /** Generator description */
                    description?: (string|null);

                    /** Generator freeFormContext */
                    freeFormContext?: (google.cloud.dialogflow.v2beta1.IFreeFormContext|null);

                    /** Generator agentCoachingContext */
                    agentCoachingContext?: (google.cloud.dialogflow.v2beta1.IAgentCoachingContext|null);

                    /** Generator summarizationContext */
                    summarizationContext?: (google.cloud.dialogflow.v2beta1.ISummarizationContext|null);

                    /** Generator inferenceParameter */
                    inferenceParameter?: (google.cloud.dialogflow.v2beta1.IInferenceParameter|null);

                    /** Generator triggerEvent */
                    triggerEvent?: (google.cloud.dialogflow.v2beta1.TriggerEvent|keyof typeof google.cloud.dialogflow.v2beta1.TriggerEvent|null);

                    /** Generator publishedModel */
                    publishedModel?: (string|null);

                    /** Generator createTime */
                    createTime?: (google.protobuf.ITimestamp|null);

                    /** Generator updateTime */
                    updateTime?: (google.protobuf.ITimestamp|null);

                    /** Generator tools */
                    tools?: (string[]|null);

                    /** Generator suggestionDedupingConfig */
                    suggestionDedupingConfig?: (google.cloud.dialogflow.v2beta1.ISuggestionDedupingConfig|null);

                    /** Generator toolsetTools */
                    toolsetTools?: (google.cloud.dialogflow.v2beta1.IToolsetTool[]|null);

                    /** Generator cesToolSpecs */
                    cesToolSpecs?: (google.cloud.dialogflow.v2beta1.ICesToolSpec[]|null);

                    /** Generator cesAppSpecs */
                    cesAppSpecs?: (google.cloud.dialogflow.v2beta1.ICesAppSpec[]|null);
                }

                /** Represents a Generator. */
                class Generator implements IGenerator {

                    /**
                     * Constructs a new Generator.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IGenerator);

                    /** Generator name. */
                    public name: string;

                    /** Generator description. */
                    public description: string;

                    /** Generator freeFormContext. */
                    public freeFormContext?: (google.cloud.dialogflow.v2beta1.IFreeFormContext|null);

                    /** Generator agentCoachingContext. */
                    public agentCoachingContext?: (google.cloud.dialogflow.v2beta1.IAgentCoachingContext|null);

                    /** Generator summarizationContext. */
                    public summarizationContext?: (google.cloud.dialogflow.v2beta1.ISummarizationContext|null);

                    /** Generator inferenceParameter. */
                    public inferenceParameter?: (google.cloud.dialogflow.v2beta1.IInferenceParameter|null);

                    /** Generator triggerEvent. */
                    public triggerEvent: (google.cloud.dialogflow.v2beta1.TriggerEvent|keyof typeof google.cloud.dialogflow.v2beta1.TriggerEvent);

                    /** Generator publishedModel. */
                    public publishedModel?: (string|null);

                    /** Generator createTime. */
                    public createTime?: (google.protobuf.ITimestamp|null);

                    /** Generator updateTime. */
                    public updateTime?: (google.protobuf.ITimestamp|null);

                    /** Generator tools. */
                    public tools: string[];

                    /** Generator suggestionDedupingConfig. */
                    public suggestionDedupingConfig?: (google.cloud.dialogflow.v2beta1.ISuggestionDedupingConfig|null);

                    /** Generator toolsetTools. */
                    public toolsetTools: google.cloud.dialogflow.v2beta1.IToolsetTool[];

                    /** Generator cesToolSpecs. */
                    public cesToolSpecs: google.cloud.dialogflow.v2beta1.ICesToolSpec[];

                    /** Generator cesAppSpecs. */
                    public cesAppSpecs: google.cloud.dialogflow.v2beta1.ICesAppSpec[];

                    /** Generator context. */
                    public context?: ("freeFormContext"|"agentCoachingContext"|"summarizationContext");

                    /** Generator foundationModel. */
                    public foundationModel?: "publishedModel";

                    /**
                     * Creates a new Generator instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Generator instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IGenerator): google.cloud.dialogflow.v2beta1.Generator;

                    /**
                     * Encodes the specified Generator message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Generator.verify|verify} messages.
                     * @param message Generator message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IGenerator, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Generator message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Generator.verify|verify} messages.
                     * @param message Generator message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IGenerator, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a Generator message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Generator
                     * @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.cloud.dialogflow.v2beta1.Generator;

                    /**
                     * Decodes a Generator message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Generator
                     * @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.cloud.dialogflow.v2beta1.Generator;

                    /**
                     * Verifies a Generator 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 Generator message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Generator
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.Generator;

                    /**
                     * Creates a plain object from a Generator message. Also converts values to other types if specified.
                     * @param message Generator
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.Generator, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Generator to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Generator
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a FreeFormSuggestion. */
                interface IFreeFormSuggestion {

                    /** FreeFormSuggestion response */
                    response?: (string|null);
                }

                /** Represents a FreeFormSuggestion. */
                class FreeFormSuggestion implements IFreeFormSuggestion {

                    /**
                     * Constructs a new FreeFormSuggestion.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IFreeFormSuggestion);

                    /** FreeFormSuggestion response. */
                    public response: string;

                    /**
                     * Creates a new FreeFormSuggestion instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns FreeFormSuggestion instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IFreeFormSuggestion): google.cloud.dialogflow.v2beta1.FreeFormSuggestion;

                    /**
                     * Encodes the specified FreeFormSuggestion message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.FreeFormSuggestion.verify|verify} messages.
                     * @param message FreeFormSuggestion message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IFreeFormSuggestion, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified FreeFormSuggestion message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.FreeFormSuggestion.verify|verify} messages.
                     * @param message FreeFormSuggestion message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IFreeFormSuggestion, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a FreeFormSuggestion message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns FreeFormSuggestion
                     * @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.cloud.dialogflow.v2beta1.FreeFormSuggestion;

                    /**
                     * Decodes a FreeFormSuggestion message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns FreeFormSuggestion
                     * @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.cloud.dialogflow.v2beta1.FreeFormSuggestion;

                    /**
                     * Verifies a FreeFormSuggestion 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 FreeFormSuggestion message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns FreeFormSuggestion
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.FreeFormSuggestion;

                    /**
                     * Creates a plain object from a FreeFormSuggestion message. Also converts values to other types if specified.
                     * @param message FreeFormSuggestion
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.FreeFormSuggestion, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this FreeFormSuggestion to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for FreeFormSuggestion
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SummarySuggestion. */
                interface ISummarySuggestion {

                    /** SummarySuggestion summarySections */
                    summarySections?: (google.cloud.dialogflow.v2beta1.SummarySuggestion.ISummarySection[]|null);
                }

                /** Represents a SummarySuggestion. */
                class SummarySuggestion implements ISummarySuggestion {

                    /**
                     * Constructs a new SummarySuggestion.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.ISummarySuggestion);

                    /** SummarySuggestion summarySections. */
                    public summarySections: google.cloud.dialogflow.v2beta1.SummarySuggestion.ISummarySection[];

                    /**
                     * Creates a new SummarySuggestion instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SummarySuggestion instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.ISummarySuggestion): google.cloud.dialogflow.v2beta1.SummarySuggestion;

                    /**
                     * Encodes the specified SummarySuggestion message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.SummarySuggestion.verify|verify} messages.
                     * @param message SummarySuggestion message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.ISummarySuggestion, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SummarySuggestion message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.SummarySuggestion.verify|verify} messages.
                     * @param message SummarySuggestion message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.ISummarySuggestion, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SummarySuggestion message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SummarySuggestion
                     * @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.cloud.dialogflow.v2beta1.SummarySuggestion;

                    /**
                     * Decodes a SummarySuggestion message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SummarySuggestion
                     * @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.cloud.dialogflow.v2beta1.SummarySuggestion;

                    /**
                     * Verifies a SummarySuggestion 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 SummarySuggestion message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SummarySuggestion
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.SummarySuggestion;

                    /**
                     * Creates a plain object from a SummarySuggestion message. Also converts values to other types if specified.
                     * @param message SummarySuggestion
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.SummarySuggestion, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SummarySuggestion to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SummarySuggestion
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace SummarySuggestion {

                    /** Properties of a SummarySection. */
                    interface ISummarySection {

                        /** SummarySection section */
                        section?: (string|null);

                        /** SummarySection summary */
                        summary?: (string|null);
                    }

                    /** Represents a SummarySection. */
                    class SummarySection implements ISummarySection {

                        /**
                         * Constructs a new SummarySection.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2beta1.SummarySuggestion.ISummarySection);

                        /** SummarySection section. */
                        public section: string;

                        /** SummarySection summary. */
                        public summary: string;

                        /**
                         * Creates a new SummarySection instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns SummarySection instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2beta1.SummarySuggestion.ISummarySection): google.cloud.dialogflow.v2beta1.SummarySuggestion.SummarySection;

                        /**
                         * Encodes the specified SummarySection message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.SummarySuggestion.SummarySection.verify|verify} messages.
                         * @param message SummarySection message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2beta1.SummarySuggestion.ISummarySection, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified SummarySection message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.SummarySuggestion.SummarySection.verify|verify} messages.
                         * @param message SummarySection message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.SummarySuggestion.ISummarySection, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a SummarySection message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns SummarySection
                         * @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.cloud.dialogflow.v2beta1.SummarySuggestion.SummarySection;

                        /**
                         * Decodes a SummarySection message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns SummarySection
                         * @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.cloud.dialogflow.v2beta1.SummarySuggestion.SummarySection;

                        /**
                         * Verifies a SummarySection 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 SummarySection message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns SummarySection
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.SummarySuggestion.SummarySection;

                        /**
                         * Creates a plain object from a SummarySection message. Also converts values to other types if specified.
                         * @param message SummarySection
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.dialogflow.v2beta1.SummarySuggestion.SummarySection, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this SummarySection to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for SummarySection
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }
                }

                /** Properties of an AgentCoachingSuggestion. */
                interface IAgentCoachingSuggestion {

                    /** AgentCoachingSuggestion applicableInstructions */
                    applicableInstructions?: (google.cloud.dialogflow.v2beta1.IAgentCoachingInstruction[]|null);

                    /** AgentCoachingSuggestion agentActionSuggestions */
                    agentActionSuggestions?: (google.cloud.dialogflow.v2beta1.AgentCoachingSuggestion.IAgentActionSuggestion[]|null);

                    /** AgentCoachingSuggestion sampleResponses */
                    sampleResponses?: (google.cloud.dialogflow.v2beta1.AgentCoachingSuggestion.ISampleResponse[]|null);
                }

                /** Represents an AgentCoachingSuggestion. */
                class AgentCoachingSuggestion implements IAgentCoachingSuggestion {

                    /**
                     * Constructs a new AgentCoachingSuggestion.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IAgentCoachingSuggestion);

                    /** AgentCoachingSuggestion applicableInstructions. */
                    public applicableInstructions: google.cloud.dialogflow.v2beta1.IAgentCoachingInstruction[];

                    /** AgentCoachingSuggestion agentActionSuggestions. */
                    public agentActionSuggestions: google.cloud.dialogflow.v2beta1.AgentCoachingSuggestion.IAgentActionSuggestion[];

                    /** AgentCoachingSuggestion sampleResponses. */
                    public sampleResponses: google.cloud.dialogflow.v2beta1.AgentCoachingSuggestion.ISampleResponse[];

                    /**
                     * Creates a new AgentCoachingSuggestion instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AgentCoachingSuggestion instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IAgentCoachingSuggestion): google.cloud.dialogflow.v2beta1.AgentCoachingSuggestion;

                    /**
                     * Encodes the specified AgentCoachingSuggestion message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.AgentCoachingSuggestion.verify|verify} messages.
                     * @param message AgentCoachingSuggestion message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IAgentCoachingSuggestion, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AgentCoachingSuggestion message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.AgentCoachingSuggestion.verify|verify} messages.
                     * @param message AgentCoachingSuggestion message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IAgentCoachingSuggestion, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AgentCoachingSuggestion message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AgentCoachingSuggestion
                     * @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.cloud.dialogflow.v2beta1.AgentCoachingSuggestion;

                    /**
                     * Decodes an AgentCoachingSuggestion message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AgentCoachingSuggestion
                     * @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.cloud.dialogflow.v2beta1.AgentCoachingSuggestion;

                    /**
                     * Verifies an AgentCoachingSuggestion 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 AgentCoachingSuggestion message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AgentCoachingSuggestion
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.AgentCoachingSuggestion;

                    /**
                     * Creates a plain object from an AgentCoachingSuggestion message. Also converts values to other types if specified.
                     * @param message AgentCoachingSuggestion
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.AgentCoachingSuggestion, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AgentCoachingSuggestion to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AgentCoachingSuggestion
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace AgentCoachingSuggestion {

                    /** Properties of a Sources. */
                    interface ISources {

                        /** Sources instructionIndexes */
                        instructionIndexes?: (number[]|null);
                    }

                    /** Represents a Sources. */
                    class Sources implements ISources {

                        /**
                         * Constructs a new Sources.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2beta1.AgentCoachingSuggestion.ISources);

                        /** Sources instructionIndexes. */
                        public instructionIndexes: number[];

                        /**
                         * Creates a new Sources instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns Sources instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2beta1.AgentCoachingSuggestion.ISources): google.cloud.dialogflow.v2beta1.AgentCoachingSuggestion.Sources;

                        /**
                         * Encodes the specified Sources message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.AgentCoachingSuggestion.Sources.verify|verify} messages.
                         * @param message Sources message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2beta1.AgentCoachingSuggestion.ISources, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified Sources message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.AgentCoachingSuggestion.Sources.verify|verify} messages.
                         * @param message Sources message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.AgentCoachingSuggestion.ISources, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a Sources message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns Sources
                         * @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.cloud.dialogflow.v2beta1.AgentCoachingSuggestion.Sources;

                        /**
                         * Decodes a Sources message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns Sources
                         * @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.cloud.dialogflow.v2beta1.AgentCoachingSuggestion.Sources;

                        /**
                         * Verifies a Sources 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 Sources message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns Sources
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.AgentCoachingSuggestion.Sources;

                        /**
                         * Creates a plain object from a Sources message. Also converts values to other types if specified.
                         * @param message Sources
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.dialogflow.v2beta1.AgentCoachingSuggestion.Sources, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this Sources to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for Sources
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    /** Properties of a DuplicateCheckResult. */
                    interface IDuplicateCheckResult {

                        /** DuplicateCheckResult duplicateSuggestions */
                        duplicateSuggestions?: (google.cloud.dialogflow.v2beta1.AgentCoachingSuggestion.DuplicateCheckResult.IDuplicateSuggestion[]|null);
                    }

                    /** Represents a DuplicateCheckResult. */
                    class DuplicateCheckResult implements IDuplicateCheckResult {

                        /**
                         * Constructs a new DuplicateCheckResult.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2beta1.AgentCoachingSuggestion.IDuplicateCheckResult);

                        /** DuplicateCheckResult duplicateSuggestions. */
                        public duplicateSuggestions: google.cloud.dialogflow.v2beta1.AgentCoachingSuggestion.DuplicateCheckResult.IDuplicateSuggestion[];

                        /**
                         * Creates a new DuplicateCheckResult instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns DuplicateCheckResult instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2beta1.AgentCoachingSuggestion.IDuplicateCheckResult): google.cloud.dialogflow.v2beta1.AgentCoachingSuggestion.DuplicateCheckResult;

                        /**
                         * Encodes the specified DuplicateCheckResult message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.AgentCoachingSuggestion.DuplicateCheckResult.verify|verify} messages.
                         * @param message DuplicateCheckResult message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2beta1.AgentCoachingSuggestion.IDuplicateCheckResult, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified DuplicateCheckResult message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.AgentCoachingSuggestion.DuplicateCheckResult.verify|verify} messages.
                         * @param message DuplicateCheckResult message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.AgentCoachingSuggestion.IDuplicateCheckResult, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a DuplicateCheckResult message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns DuplicateCheckResult
                         * @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.cloud.dialogflow.v2beta1.AgentCoachingSuggestion.DuplicateCheckResult;

                        /**
                         * Decodes a DuplicateCheckResult message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns DuplicateCheckResult
                         * @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.cloud.dialogflow.v2beta1.AgentCoachingSuggestion.DuplicateCheckResult;

                        /**
                         * Verifies a DuplicateCheckResult 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 DuplicateCheckResult message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns DuplicateCheckResult
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.AgentCoachingSuggestion.DuplicateCheckResult;

                        /**
                         * Creates a plain object from a DuplicateCheckResult message. Also converts values to other types if specified.
                         * @param message DuplicateCheckResult
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.dialogflow.v2beta1.AgentCoachingSuggestion.DuplicateCheckResult, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this DuplicateCheckResult to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for DuplicateCheckResult
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    namespace DuplicateCheckResult {

                        /** Properties of a DuplicateSuggestion. */
                        interface IDuplicateSuggestion {

                            /** DuplicateSuggestion answerRecord */
                            answerRecord?: (string|null);

                            /** DuplicateSuggestion sources */
                            sources?: (google.cloud.dialogflow.v2beta1.AgentCoachingSuggestion.ISources|null);

                            /** DuplicateSuggestion suggestionIndex */
                            suggestionIndex?: (number|null);

                            /** DuplicateSuggestion similarityScore */
                            similarityScore?: (number|null);
                        }

                        /** Represents a DuplicateSuggestion. */
                        class DuplicateSuggestion implements IDuplicateSuggestion {

                            /**
                             * Constructs a new DuplicateSuggestion.
                             * @param [properties] Properties to set
                             */
                            constructor(properties?: google.cloud.dialogflow.v2beta1.AgentCoachingSuggestion.DuplicateCheckResult.IDuplicateSuggestion);

                            /** DuplicateSuggestion answerRecord. */
                            public answerRecord: string;

                            /** DuplicateSuggestion sources. */
                            public sources?: (google.cloud.dialogflow.v2beta1.AgentCoachingSuggestion.ISources|null);

                            /** DuplicateSuggestion suggestionIndex. */
                            public suggestionIndex: number;

                            /** DuplicateSuggestion similarityScore. */
                            public similarityScore: number;

                            /**
                             * Creates a new DuplicateSuggestion instance using the specified properties.
                             * @param [properties] Properties to set
                             * @returns DuplicateSuggestion instance
                             */
                            public static create(properties?: google.cloud.dialogflow.v2beta1.AgentCoachingSuggestion.DuplicateCheckResult.IDuplicateSuggestion): google.cloud.dialogflow.v2beta1.AgentCoachingSuggestion.DuplicateCheckResult.DuplicateSuggestion;

                            /**
                             * Encodes the specified DuplicateSuggestion message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.AgentCoachingSuggestion.DuplicateCheckResult.DuplicateSuggestion.verify|verify} messages.
                             * @param message DuplicateSuggestion message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encode(message: google.cloud.dialogflow.v2beta1.AgentCoachingSuggestion.DuplicateCheckResult.IDuplicateSuggestion, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Encodes the specified DuplicateSuggestion message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.AgentCoachingSuggestion.DuplicateCheckResult.DuplicateSuggestion.verify|verify} messages.
                             * @param message DuplicateSuggestion message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.AgentCoachingSuggestion.DuplicateCheckResult.IDuplicateSuggestion, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Decodes a DuplicateSuggestion message from the specified reader or buffer.
                             * @param reader Reader or buffer to decode from
                             * @param [length] Message length if known beforehand
                             * @returns DuplicateSuggestion
                             * @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.cloud.dialogflow.v2beta1.AgentCoachingSuggestion.DuplicateCheckResult.DuplicateSuggestion;

                            /**
                             * Decodes a DuplicateSuggestion message from the specified reader or buffer, length delimited.
                             * @param reader Reader or buffer to decode from
                             * @returns DuplicateSuggestion
                             * @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.cloud.dialogflow.v2beta1.AgentCoachingSuggestion.DuplicateCheckResult.DuplicateSuggestion;

                            /**
                             * Verifies a DuplicateSuggestion 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 DuplicateSuggestion message from a plain object. Also converts values to their respective internal types.
                             * @param object Plain object
                             * @returns DuplicateSuggestion
                             */
                            public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.AgentCoachingSuggestion.DuplicateCheckResult.DuplicateSuggestion;

                            /**
                             * Creates a plain object from a DuplicateSuggestion message. Also converts values to other types if specified.
                             * @param message DuplicateSuggestion
                             * @param [options] Conversion options
                             * @returns Plain object
                             */
                            public static toObject(message: google.cloud.dialogflow.v2beta1.AgentCoachingSuggestion.DuplicateCheckResult.DuplicateSuggestion, options?: $protobuf.IConversionOptions): { [k: string]: any };

                            /**
                             * Converts this DuplicateSuggestion to JSON.
                             * @returns JSON object
                             */
                            public toJSON(): { [k: string]: any };

                            /**
                             * Gets the default type url for DuplicateSuggestion
                             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                             * @returns The default type url
                             */
                            public static getTypeUrl(typeUrlPrefix?: string): string;
                        }
                    }

                    /** Properties of an AgentActionSuggestion. */
                    interface IAgentActionSuggestion {

                        /** AgentActionSuggestion agentAction */
                        agentAction?: (string|null);

                        /** AgentActionSuggestion sources */
                        sources?: (google.cloud.dialogflow.v2beta1.AgentCoachingSuggestion.ISources|null);

                        /** AgentActionSuggestion duplicateCheckResult */
                        duplicateCheckResult?: (google.cloud.dialogflow.v2beta1.AgentCoachingSuggestion.IDuplicateCheckResult|null);
                    }

                    /** Represents an AgentActionSuggestion. */
                    class AgentActionSuggestion implements IAgentActionSuggestion {

                        /**
                         * Constructs a new AgentActionSuggestion.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2beta1.AgentCoachingSuggestion.IAgentActionSuggestion);

                        /** AgentActionSuggestion agentAction. */
                        public agentAction: string;

                        /** AgentActionSuggestion sources. */
                        public sources?: (google.cloud.dialogflow.v2beta1.AgentCoachingSuggestion.ISources|null);

                        /** AgentActionSuggestion duplicateCheckResult. */
                        public duplicateCheckResult?: (google.cloud.dialogflow.v2beta1.AgentCoachingSuggestion.IDuplicateCheckResult|null);

                        /**
                         * Creates a new AgentActionSuggestion instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns AgentActionSuggestion instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2beta1.AgentCoachingSuggestion.IAgentActionSuggestion): google.cloud.dialogflow.v2beta1.AgentCoachingSuggestion.AgentActionSuggestion;

                        /**
                         * Encodes the specified AgentActionSuggestion message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.AgentCoachingSuggestion.AgentActionSuggestion.verify|verify} messages.
                         * @param message AgentActionSuggestion message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2beta1.AgentCoachingSuggestion.IAgentActionSuggestion, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified AgentActionSuggestion message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.AgentCoachingSuggestion.AgentActionSuggestion.verify|verify} messages.
                         * @param message AgentActionSuggestion message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.AgentCoachingSuggestion.IAgentActionSuggestion, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes an AgentActionSuggestion message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns AgentActionSuggestion
                         * @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.cloud.dialogflow.v2beta1.AgentCoachingSuggestion.AgentActionSuggestion;

                        /**
                         * Decodes an AgentActionSuggestion message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns AgentActionSuggestion
                         * @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.cloud.dialogflow.v2beta1.AgentCoachingSuggestion.AgentActionSuggestion;

                        /**
                         * Verifies an AgentActionSuggestion 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 AgentActionSuggestion message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns AgentActionSuggestion
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.AgentCoachingSuggestion.AgentActionSuggestion;

                        /**
                         * Creates a plain object from an AgentActionSuggestion message. Also converts values to other types if specified.
                         * @param message AgentActionSuggestion
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.dialogflow.v2beta1.AgentCoachingSuggestion.AgentActionSuggestion, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this AgentActionSuggestion to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for AgentActionSuggestion
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    /** Properties of a SampleResponse. */
                    interface ISampleResponse {

                        /** SampleResponse responseText */
                        responseText?: (string|null);

                        /** SampleResponse sources */
                        sources?: (google.cloud.dialogflow.v2beta1.AgentCoachingSuggestion.ISources|null);

                        /** SampleResponse duplicateCheckResult */
                        duplicateCheckResult?: (google.cloud.dialogflow.v2beta1.AgentCoachingSuggestion.IDuplicateCheckResult|null);
                    }

                    /** Represents a SampleResponse. */
                    class SampleResponse implements ISampleResponse {

                        /**
                         * Constructs a new SampleResponse.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2beta1.AgentCoachingSuggestion.ISampleResponse);

                        /** SampleResponse responseText. */
                        public responseText: string;

                        /** SampleResponse sources. */
                        public sources?: (google.cloud.dialogflow.v2beta1.AgentCoachingSuggestion.ISources|null);

                        /** SampleResponse duplicateCheckResult. */
                        public duplicateCheckResult?: (google.cloud.dialogflow.v2beta1.AgentCoachingSuggestion.IDuplicateCheckResult|null);

                        /**
                         * Creates a new SampleResponse instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns SampleResponse instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2beta1.AgentCoachingSuggestion.ISampleResponse): google.cloud.dialogflow.v2beta1.AgentCoachingSuggestion.SampleResponse;

                        /**
                         * Encodes the specified SampleResponse message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.AgentCoachingSuggestion.SampleResponse.verify|verify} messages.
                         * @param message SampleResponse message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2beta1.AgentCoachingSuggestion.ISampleResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified SampleResponse message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.AgentCoachingSuggestion.SampleResponse.verify|verify} messages.
                         * @param message SampleResponse message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.AgentCoachingSuggestion.ISampleResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a SampleResponse message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns SampleResponse
                         * @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.cloud.dialogflow.v2beta1.AgentCoachingSuggestion.SampleResponse;

                        /**
                         * Decodes a SampleResponse message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns SampleResponse
                         * @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.cloud.dialogflow.v2beta1.AgentCoachingSuggestion.SampleResponse;

                        /**
                         * Verifies a SampleResponse 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 SampleResponse message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns SampleResponse
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.AgentCoachingSuggestion.SampleResponse;

                        /**
                         * Creates a plain object from a SampleResponse message. Also converts values to other types if specified.
                         * @param message SampleResponse
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.dialogflow.v2beta1.AgentCoachingSuggestion.SampleResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this SampleResponse to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for SampleResponse
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }
                }

                /** Properties of a GeneratorSuggestion. */
                interface IGeneratorSuggestion {

                    /** GeneratorSuggestion freeFormSuggestion */
                    freeFormSuggestion?: (google.cloud.dialogflow.v2beta1.IFreeFormSuggestion|null);

                    /** GeneratorSuggestion summarySuggestion */
                    summarySuggestion?: (google.cloud.dialogflow.v2beta1.ISummarySuggestion|null);

                    /** GeneratorSuggestion agentCoachingSuggestion */
                    agentCoachingSuggestion?: (google.cloud.dialogflow.v2beta1.IAgentCoachingSuggestion|null);

                    /** GeneratorSuggestion toolCallInfo */
                    toolCallInfo?: (google.cloud.dialogflow.v2beta1.GeneratorSuggestion.IToolCallInfo[]|null);
                }

                /** Represents a GeneratorSuggestion. */
                class GeneratorSuggestion implements IGeneratorSuggestion {

                    /**
                     * Constructs a new GeneratorSuggestion.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IGeneratorSuggestion);

                    /** GeneratorSuggestion freeFormSuggestion. */
                    public freeFormSuggestion?: (google.cloud.dialogflow.v2beta1.IFreeFormSuggestion|null);

                    /** GeneratorSuggestion summarySuggestion. */
                    public summarySuggestion?: (google.cloud.dialogflow.v2beta1.ISummarySuggestion|null);

                    /** GeneratorSuggestion agentCoachingSuggestion. */
                    public agentCoachingSuggestion?: (google.cloud.dialogflow.v2beta1.IAgentCoachingSuggestion|null);

                    /** GeneratorSuggestion toolCallInfo. */
                    public toolCallInfo: google.cloud.dialogflow.v2beta1.GeneratorSuggestion.IToolCallInfo[];

                    /** GeneratorSuggestion suggestion. */
                    public suggestion?: ("freeFormSuggestion"|"summarySuggestion"|"agentCoachingSuggestion");

                    /**
                     * Creates a new GeneratorSuggestion instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GeneratorSuggestion instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IGeneratorSuggestion): google.cloud.dialogflow.v2beta1.GeneratorSuggestion;

                    /**
                     * Encodes the specified GeneratorSuggestion message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.GeneratorSuggestion.verify|verify} messages.
                     * @param message GeneratorSuggestion message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IGeneratorSuggestion, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GeneratorSuggestion message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.GeneratorSuggestion.verify|verify} messages.
                     * @param message GeneratorSuggestion message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IGeneratorSuggestion, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GeneratorSuggestion message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GeneratorSuggestion
                     * @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.cloud.dialogflow.v2beta1.GeneratorSuggestion;

                    /**
                     * Decodes a GeneratorSuggestion message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GeneratorSuggestion
                     * @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.cloud.dialogflow.v2beta1.GeneratorSuggestion;

                    /**
                     * Verifies a GeneratorSuggestion 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 GeneratorSuggestion message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GeneratorSuggestion
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.GeneratorSuggestion;

                    /**
                     * Creates a plain object from a GeneratorSuggestion message. Also converts values to other types if specified.
                     * @param message GeneratorSuggestion
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.GeneratorSuggestion, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GeneratorSuggestion to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GeneratorSuggestion
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace GeneratorSuggestion {

                    /** Properties of a ToolCallInfo. */
                    interface IToolCallInfo {

                        /** ToolCallInfo toolCall */
                        toolCall?: (google.cloud.dialogflow.v2beta1.IToolCall|null);

                        /** ToolCallInfo toolCallResult */
                        toolCallResult?: (google.cloud.dialogflow.v2beta1.IToolCallResult|null);
                    }

                    /** Represents a ToolCallInfo. */
                    class ToolCallInfo implements IToolCallInfo {

                        /**
                         * Constructs a new ToolCallInfo.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2beta1.GeneratorSuggestion.IToolCallInfo);

                        /** ToolCallInfo toolCall. */
                        public toolCall?: (google.cloud.dialogflow.v2beta1.IToolCall|null);

                        /** ToolCallInfo toolCallResult. */
                        public toolCallResult?: (google.cloud.dialogflow.v2beta1.IToolCallResult|null);

                        /**
                         * Creates a new ToolCallInfo instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns ToolCallInfo instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2beta1.GeneratorSuggestion.IToolCallInfo): google.cloud.dialogflow.v2beta1.GeneratorSuggestion.ToolCallInfo;

                        /**
                         * Encodes the specified ToolCallInfo message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.GeneratorSuggestion.ToolCallInfo.verify|verify} messages.
                         * @param message ToolCallInfo message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2beta1.GeneratorSuggestion.IToolCallInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified ToolCallInfo message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.GeneratorSuggestion.ToolCallInfo.verify|verify} messages.
                         * @param message ToolCallInfo message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.GeneratorSuggestion.IToolCallInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a ToolCallInfo message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns ToolCallInfo
                         * @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.cloud.dialogflow.v2beta1.GeneratorSuggestion.ToolCallInfo;

                        /**
                         * Decodes a ToolCallInfo message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns ToolCallInfo
                         * @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.cloud.dialogflow.v2beta1.GeneratorSuggestion.ToolCallInfo;

                        /**
                         * Verifies a ToolCallInfo 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 ToolCallInfo message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns ToolCallInfo
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.GeneratorSuggestion.ToolCallInfo;

                        /**
                         * Creates a plain object from a ToolCallInfo message. Also converts values to other types if specified.
                         * @param message ToolCallInfo
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.dialogflow.v2beta1.GeneratorSuggestion.ToolCallInfo, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this ToolCallInfo to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for ToolCallInfo
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }
                }

                /** Properties of a SuggestionDedupingConfig. */
                interface ISuggestionDedupingConfig {

                    /** SuggestionDedupingConfig enableDeduping */
                    enableDeduping?: (boolean|null);

                    /** SuggestionDedupingConfig similarityThreshold */
                    similarityThreshold?: (number|null);
                }

                /** Represents a SuggestionDedupingConfig. */
                class SuggestionDedupingConfig implements ISuggestionDedupingConfig {

                    /**
                     * Constructs a new SuggestionDedupingConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.ISuggestionDedupingConfig);

                    /** SuggestionDedupingConfig enableDeduping. */
                    public enableDeduping: boolean;

                    /** SuggestionDedupingConfig similarityThreshold. */
                    public similarityThreshold: number;

                    /**
                     * Creates a new SuggestionDedupingConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SuggestionDedupingConfig instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.ISuggestionDedupingConfig): google.cloud.dialogflow.v2beta1.SuggestionDedupingConfig;

                    /**
                     * Encodes the specified SuggestionDedupingConfig message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.SuggestionDedupingConfig.verify|verify} messages.
                     * @param message SuggestionDedupingConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.ISuggestionDedupingConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SuggestionDedupingConfig message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.SuggestionDedupingConfig.verify|verify} messages.
                     * @param message SuggestionDedupingConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.ISuggestionDedupingConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SuggestionDedupingConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SuggestionDedupingConfig
                     * @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.cloud.dialogflow.v2beta1.SuggestionDedupingConfig;

                    /**
                     * Decodes a SuggestionDedupingConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SuggestionDedupingConfig
                     * @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.cloud.dialogflow.v2beta1.SuggestionDedupingConfig;

                    /**
                     * Verifies a SuggestionDedupingConfig 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 SuggestionDedupingConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SuggestionDedupingConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.SuggestionDedupingConfig;

                    /**
                     * Creates a plain object from a SuggestionDedupingConfig message. Also converts values to other types if specified.
                     * @param message SuggestionDedupingConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.SuggestionDedupingConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SuggestionDedupingConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SuggestionDedupingConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RaiSettings. */
                interface IRaiSettings {

                    /** RaiSettings raiCategoryConfigs */
                    raiCategoryConfigs?: (google.cloud.dialogflow.v2beta1.RaiSettings.IRaiCategoryConfig[]|null);
                }

                /** Represents a RaiSettings. */
                class RaiSettings implements IRaiSettings {

                    /**
                     * Constructs a new RaiSettings.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IRaiSettings);

                    /** RaiSettings raiCategoryConfigs. */
                    public raiCategoryConfigs: google.cloud.dialogflow.v2beta1.RaiSettings.IRaiCategoryConfig[];

                    /**
                     * Creates a new RaiSettings instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RaiSettings instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IRaiSettings): google.cloud.dialogflow.v2beta1.RaiSettings;

                    /**
                     * Encodes the specified RaiSettings message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.RaiSettings.verify|verify} messages.
                     * @param message RaiSettings message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IRaiSettings, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RaiSettings message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.RaiSettings.verify|verify} messages.
                     * @param message RaiSettings message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IRaiSettings, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RaiSettings message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RaiSettings
                     * @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.cloud.dialogflow.v2beta1.RaiSettings;

                    /**
                     * Decodes a RaiSettings message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RaiSettings
                     * @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.cloud.dialogflow.v2beta1.RaiSettings;

                    /**
                     * Verifies a RaiSettings 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 RaiSettings message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RaiSettings
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.RaiSettings;

                    /**
                     * Creates a plain object from a RaiSettings message. Also converts values to other types if specified.
                     * @param message RaiSettings
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.RaiSettings, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RaiSettings to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RaiSettings
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace RaiSettings {

                    /** Properties of a RaiCategoryConfig. */
                    interface IRaiCategoryConfig {

                        /** RaiCategoryConfig category */
                        category?: (google.cloud.dialogflow.v2beta1.RaiSettings.RaiCategoryConfig.RaiCategory|keyof typeof google.cloud.dialogflow.v2beta1.RaiSettings.RaiCategoryConfig.RaiCategory|null);

                        /** RaiCategoryConfig sensitivityLevel */
                        sensitivityLevel?: (google.cloud.dialogflow.v2beta1.RaiSettings.RaiCategoryConfig.SensitivityLevel|keyof typeof google.cloud.dialogflow.v2beta1.RaiSettings.RaiCategoryConfig.SensitivityLevel|null);
                    }

                    /** Represents a RaiCategoryConfig. */
                    class RaiCategoryConfig implements IRaiCategoryConfig {

                        /**
                         * Constructs a new RaiCategoryConfig.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2beta1.RaiSettings.IRaiCategoryConfig);

                        /** RaiCategoryConfig category. */
                        public category: (google.cloud.dialogflow.v2beta1.RaiSettings.RaiCategoryConfig.RaiCategory|keyof typeof google.cloud.dialogflow.v2beta1.RaiSettings.RaiCategoryConfig.RaiCategory);

                        /** RaiCategoryConfig sensitivityLevel. */
                        public sensitivityLevel: (google.cloud.dialogflow.v2beta1.RaiSettings.RaiCategoryConfig.SensitivityLevel|keyof typeof google.cloud.dialogflow.v2beta1.RaiSettings.RaiCategoryConfig.SensitivityLevel);

                        /**
                         * Creates a new RaiCategoryConfig instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns RaiCategoryConfig instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2beta1.RaiSettings.IRaiCategoryConfig): google.cloud.dialogflow.v2beta1.RaiSettings.RaiCategoryConfig;

                        /**
                         * Encodes the specified RaiCategoryConfig message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.RaiSettings.RaiCategoryConfig.verify|verify} messages.
                         * @param message RaiCategoryConfig message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2beta1.RaiSettings.IRaiCategoryConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified RaiCategoryConfig message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.RaiSettings.RaiCategoryConfig.verify|verify} messages.
                         * @param message RaiCategoryConfig message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.RaiSettings.IRaiCategoryConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a RaiCategoryConfig message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns RaiCategoryConfig
                         * @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.cloud.dialogflow.v2beta1.RaiSettings.RaiCategoryConfig;

                        /**
                         * Decodes a RaiCategoryConfig message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns RaiCategoryConfig
                         * @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.cloud.dialogflow.v2beta1.RaiSettings.RaiCategoryConfig;

                        /**
                         * Verifies a RaiCategoryConfig 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 RaiCategoryConfig message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns RaiCategoryConfig
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.RaiSettings.RaiCategoryConfig;

                        /**
                         * Creates a plain object from a RaiCategoryConfig message. Also converts values to other types if specified.
                         * @param message RaiCategoryConfig
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.dialogflow.v2beta1.RaiSettings.RaiCategoryConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this RaiCategoryConfig to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for RaiCategoryConfig
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    namespace RaiCategoryConfig {

                        /** RaiCategory enum. */
                        enum RaiCategory {
                            RAI_CATEGORY_UNSPECIFIED = 0,
                            DANGEROUS_CONTENT = 1,
                            SEXUALLY_EXPLICIT = 2,
                            HARASSMENT = 3,
                            HATE_SPEECH = 4
                        }

                        /** SensitivityLevel enum. */
                        enum SensitivityLevel {
                            SENSITIVITY_LEVEL_UNSPECIFIED = 0,
                            BLOCK_MOST = 1,
                            BLOCK_SOME = 2,
                            BLOCK_FEW = 3,
                            BLOCK_NONE = 4
                        }
                    }
                }

                /** TriggerEvent enum. */
                enum TriggerEvent {
                    TRIGGER_EVENT_UNSPECIFIED = 0,
                    END_OF_UTTERANCE = 1,
                    MANUAL_CALL = 2,
                    CUSTOMER_MESSAGE = 3,
                    AGENT_MESSAGE = 4
                }

                /** Properties of a CesAppSpec. */
                interface ICesAppSpec {

                    /** CesAppSpec cesApp */
                    cesApp?: (string|null);

                    /** CesAppSpec confirmationRequirement */
                    confirmationRequirement?: (google.cloud.dialogflow.v2beta1.Tool.ConfirmationRequirement|keyof typeof google.cloud.dialogflow.v2beta1.Tool.ConfirmationRequirement|null);
                }

                /** Represents a CesAppSpec. */
                class CesAppSpec implements ICesAppSpec {

                    /**
                     * Constructs a new CesAppSpec.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.ICesAppSpec);

                    /** CesAppSpec cesApp. */
                    public cesApp: string;

                    /** CesAppSpec confirmationRequirement. */
                    public confirmationRequirement: (google.cloud.dialogflow.v2beta1.Tool.ConfirmationRequirement|keyof typeof google.cloud.dialogflow.v2beta1.Tool.ConfirmationRequirement);

                    /**
                     * Creates a new CesAppSpec instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CesAppSpec instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.ICesAppSpec): google.cloud.dialogflow.v2beta1.CesAppSpec;

                    /**
                     * Encodes the specified CesAppSpec message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.CesAppSpec.verify|verify} messages.
                     * @param message CesAppSpec message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.ICesAppSpec, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CesAppSpec message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.CesAppSpec.verify|verify} messages.
                     * @param message CesAppSpec message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.ICesAppSpec, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CesAppSpec message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CesAppSpec
                     * @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.cloud.dialogflow.v2beta1.CesAppSpec;

                    /**
                     * Decodes a CesAppSpec message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CesAppSpec
                     * @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.cloud.dialogflow.v2beta1.CesAppSpec;

                    /**
                     * Verifies a CesAppSpec 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 CesAppSpec message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CesAppSpec
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.CesAppSpec;

                    /**
                     * Creates a plain object from a CesAppSpec message. Also converts values to other types if specified.
                     * @param message CesAppSpec
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.CesAppSpec, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CesAppSpec to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CesAppSpec
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Represents a Tools */
                class Tools extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new Tools 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 Tools 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): Tools;

                    /**
                     * Calls CreateTool.
                     * @param request CreateToolRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Tool
                     */
                    public createTool(request: google.cloud.dialogflow.v2beta1.ICreateToolRequest, callback: google.cloud.dialogflow.v2beta1.Tools.CreateToolCallback): void;

                    /**
                     * Calls CreateTool.
                     * @param request CreateToolRequest message or plain object
                     * @returns Promise
                     */
                    public createTool(request: google.cloud.dialogflow.v2beta1.ICreateToolRequest): Promise<google.cloud.dialogflow.v2beta1.Tool>;

                    /**
                     * Calls GetTool.
                     * @param request GetToolRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Tool
                     */
                    public getTool(request: google.cloud.dialogflow.v2beta1.IGetToolRequest, callback: google.cloud.dialogflow.v2beta1.Tools.GetToolCallback): void;

                    /**
                     * Calls GetTool.
                     * @param request GetToolRequest message or plain object
                     * @returns Promise
                     */
                    public getTool(request: google.cloud.dialogflow.v2beta1.IGetToolRequest): Promise<google.cloud.dialogflow.v2beta1.Tool>;

                    /**
                     * Calls ListTools.
                     * @param request ListToolsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ListToolsResponse
                     */
                    public listTools(request: google.cloud.dialogflow.v2beta1.IListToolsRequest, callback: google.cloud.dialogflow.v2beta1.Tools.ListToolsCallback): void;

                    /**
                     * Calls ListTools.
                     * @param request ListToolsRequest message or plain object
                     * @returns Promise
                     */
                    public listTools(request: google.cloud.dialogflow.v2beta1.IListToolsRequest): Promise<google.cloud.dialogflow.v2beta1.ListToolsResponse>;

                    /**
                     * Calls DeleteTool.
                     * @param request DeleteToolRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Empty
                     */
                    public deleteTool(request: google.cloud.dialogflow.v2beta1.IDeleteToolRequest, callback: google.cloud.dialogflow.v2beta1.Tools.DeleteToolCallback): void;

                    /**
                     * Calls DeleteTool.
                     * @param request DeleteToolRequest message or plain object
                     * @returns Promise
                     */
                    public deleteTool(request: google.cloud.dialogflow.v2beta1.IDeleteToolRequest): Promise<google.protobuf.Empty>;

                    /**
                     * Calls UpdateTool.
                     * @param request UpdateToolRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Tool
                     */
                    public updateTool(request: google.cloud.dialogflow.v2beta1.IUpdateToolRequest, callback: google.cloud.dialogflow.v2beta1.Tools.UpdateToolCallback): void;

                    /**
                     * Calls UpdateTool.
                     * @param request UpdateToolRequest message or plain object
                     * @returns Promise
                     */
                    public updateTool(request: google.cloud.dialogflow.v2beta1.IUpdateToolRequest): Promise<google.cloud.dialogflow.v2beta1.Tool>;
                }

                namespace Tools {

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2beta1.Tools|createTool}.
                     * @param error Error, if any
                     * @param [response] Tool
                     */
                    type CreateToolCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2beta1.Tool) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2beta1.Tools|getTool}.
                     * @param error Error, if any
                     * @param [response] Tool
                     */
                    type GetToolCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2beta1.Tool) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2beta1.Tools|listTools}.
                     * @param error Error, if any
                     * @param [response] ListToolsResponse
                     */
                    type ListToolsCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2beta1.ListToolsResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2beta1.Tools|deleteTool}.
                     * @param error Error, if any
                     * @param [response] Empty
                     */
                    type DeleteToolCallback = (error: (Error|null), response?: google.protobuf.Empty) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2beta1.Tools|updateTool}.
                     * @param error Error, if any
                     * @param [response] Tool
                     */
                    type UpdateToolCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2beta1.Tool) => void;
                }

                /** Properties of a CreateToolRequest. */
                interface ICreateToolRequest {

                    /** CreateToolRequest parent */
                    parent?: (string|null);

                    /** CreateToolRequest tool */
                    tool?: (google.cloud.dialogflow.v2beta1.ITool|null);

                    /** CreateToolRequest toolId */
                    toolId?: (string|null);
                }

                /** Represents a CreateToolRequest. */
                class CreateToolRequest implements ICreateToolRequest {

                    /**
                     * Constructs a new CreateToolRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.ICreateToolRequest);

                    /** CreateToolRequest parent. */
                    public parent: string;

                    /** CreateToolRequest tool. */
                    public tool?: (google.cloud.dialogflow.v2beta1.ITool|null);

                    /** CreateToolRequest toolId. */
                    public toolId: string;

                    /**
                     * Creates a new CreateToolRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CreateToolRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.ICreateToolRequest): google.cloud.dialogflow.v2beta1.CreateToolRequest;

                    /**
                     * Encodes the specified CreateToolRequest message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.CreateToolRequest.verify|verify} messages.
                     * @param message CreateToolRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.ICreateToolRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CreateToolRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.CreateToolRequest.verify|verify} messages.
                     * @param message CreateToolRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.ICreateToolRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CreateToolRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CreateToolRequest
                     * @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.cloud.dialogflow.v2beta1.CreateToolRequest;

                    /**
                     * Decodes a CreateToolRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CreateToolRequest
                     * @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.cloud.dialogflow.v2beta1.CreateToolRequest;

                    /**
                     * Verifies a CreateToolRequest 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 CreateToolRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CreateToolRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.CreateToolRequest;

                    /**
                     * Creates a plain object from a CreateToolRequest message. Also converts values to other types if specified.
                     * @param message CreateToolRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.CreateToolRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CreateToolRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CreateToolRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetToolRequest. */
                interface IGetToolRequest {

                    /** GetToolRequest name */
                    name?: (string|null);
                }

                /** Represents a GetToolRequest. */
                class GetToolRequest implements IGetToolRequest {

                    /**
                     * Constructs a new GetToolRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IGetToolRequest);

                    /** GetToolRequest name. */
                    public name: string;

                    /**
                     * Creates a new GetToolRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetToolRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IGetToolRequest): google.cloud.dialogflow.v2beta1.GetToolRequest;

                    /**
                     * Encodes the specified GetToolRequest message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.GetToolRequest.verify|verify} messages.
                     * @param message GetToolRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IGetToolRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetToolRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.GetToolRequest.verify|verify} messages.
                     * @param message GetToolRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IGetToolRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetToolRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetToolRequest
                     * @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.cloud.dialogflow.v2beta1.GetToolRequest;

                    /**
                     * Decodes a GetToolRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetToolRequest
                     * @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.cloud.dialogflow.v2beta1.GetToolRequest;

                    /**
                     * Verifies a GetToolRequest 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 GetToolRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetToolRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.GetToolRequest;

                    /**
                     * Creates a plain object from a GetToolRequest message. Also converts values to other types if specified.
                     * @param message GetToolRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.GetToolRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetToolRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetToolRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListToolsRequest. */
                interface IListToolsRequest {

                    /** ListToolsRequest parent */
                    parent?: (string|null);

                    /** ListToolsRequest pageSize */
                    pageSize?: (number|null);

                    /** ListToolsRequest pageToken */
                    pageToken?: (string|null);
                }

                /** Represents a ListToolsRequest. */
                class ListToolsRequest implements IListToolsRequest {

                    /**
                     * Constructs a new ListToolsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IListToolsRequest);

                    /** ListToolsRequest parent. */
                    public parent: string;

                    /** ListToolsRequest pageSize. */
                    public pageSize: number;

                    /** ListToolsRequest pageToken. */
                    public pageToken: string;

                    /**
                     * Creates a new ListToolsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListToolsRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IListToolsRequest): google.cloud.dialogflow.v2beta1.ListToolsRequest;

                    /**
                     * Encodes the specified ListToolsRequest message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.ListToolsRequest.verify|verify} messages.
                     * @param message ListToolsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IListToolsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListToolsRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.ListToolsRequest.verify|verify} messages.
                     * @param message ListToolsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IListToolsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListToolsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListToolsRequest
                     * @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.cloud.dialogflow.v2beta1.ListToolsRequest;

                    /**
                     * Decodes a ListToolsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListToolsRequest
                     * @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.cloud.dialogflow.v2beta1.ListToolsRequest;

                    /**
                     * Verifies a ListToolsRequest 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 ListToolsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListToolsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.ListToolsRequest;

                    /**
                     * Creates a plain object from a ListToolsRequest message. Also converts values to other types if specified.
                     * @param message ListToolsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.ListToolsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListToolsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListToolsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListToolsResponse. */
                interface IListToolsResponse {

                    /** ListToolsResponse tools */
                    tools?: (google.cloud.dialogflow.v2beta1.ITool[]|null);

                    /** ListToolsResponse nextPageToken */
                    nextPageToken?: (string|null);
                }

                /** Represents a ListToolsResponse. */
                class ListToolsResponse implements IListToolsResponse {

                    /**
                     * Constructs a new ListToolsResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IListToolsResponse);

                    /** ListToolsResponse tools. */
                    public tools: google.cloud.dialogflow.v2beta1.ITool[];

                    /** ListToolsResponse nextPageToken. */
                    public nextPageToken: string;

                    /**
                     * Creates a new ListToolsResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListToolsResponse instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IListToolsResponse): google.cloud.dialogflow.v2beta1.ListToolsResponse;

                    /**
                     * Encodes the specified ListToolsResponse message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.ListToolsResponse.verify|verify} messages.
                     * @param message ListToolsResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IListToolsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListToolsResponse message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.ListToolsResponse.verify|verify} messages.
                     * @param message ListToolsResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IListToolsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListToolsResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListToolsResponse
                     * @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.cloud.dialogflow.v2beta1.ListToolsResponse;

                    /**
                     * Decodes a ListToolsResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListToolsResponse
                     * @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.cloud.dialogflow.v2beta1.ListToolsResponse;

                    /**
                     * Verifies a ListToolsResponse 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 ListToolsResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListToolsResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.ListToolsResponse;

                    /**
                     * Creates a plain object from a ListToolsResponse message. Also converts values to other types if specified.
                     * @param message ListToolsResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.ListToolsResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListToolsResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListToolsResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteToolRequest. */
                interface IDeleteToolRequest {

                    /** DeleteToolRequest name */
                    name?: (string|null);
                }

                /** Represents a DeleteToolRequest. */
                class DeleteToolRequest implements IDeleteToolRequest {

                    /**
                     * Constructs a new DeleteToolRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IDeleteToolRequest);

                    /** DeleteToolRequest name. */
                    public name: string;

                    /**
                     * Creates a new DeleteToolRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteToolRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IDeleteToolRequest): google.cloud.dialogflow.v2beta1.DeleteToolRequest;

                    /**
                     * Encodes the specified DeleteToolRequest message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.DeleteToolRequest.verify|verify} messages.
                     * @param message DeleteToolRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IDeleteToolRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteToolRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.DeleteToolRequest.verify|verify} messages.
                     * @param message DeleteToolRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IDeleteToolRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteToolRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteToolRequest
                     * @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.cloud.dialogflow.v2beta1.DeleteToolRequest;

                    /**
                     * Decodes a DeleteToolRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteToolRequest
                     * @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.cloud.dialogflow.v2beta1.DeleteToolRequest;

                    /**
                     * Verifies a DeleteToolRequest 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 DeleteToolRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteToolRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.DeleteToolRequest;

                    /**
                     * Creates a plain object from a DeleteToolRequest message. Also converts values to other types if specified.
                     * @param message DeleteToolRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.DeleteToolRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteToolRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteToolRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an UpdateToolRequest. */
                interface IUpdateToolRequest {

                    /** UpdateToolRequest tool */
                    tool?: (google.cloud.dialogflow.v2beta1.ITool|null);

                    /** UpdateToolRequest updateMask */
                    updateMask?: (google.protobuf.IFieldMask|null);
                }

                /** Represents an UpdateToolRequest. */
                class UpdateToolRequest implements IUpdateToolRequest {

                    /**
                     * Constructs a new UpdateToolRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IUpdateToolRequest);

                    /** UpdateToolRequest tool. */
                    public tool?: (google.cloud.dialogflow.v2beta1.ITool|null);

                    /** UpdateToolRequest updateMask. */
                    public updateMask?: (google.protobuf.IFieldMask|null);

                    /**
                     * Creates a new UpdateToolRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UpdateToolRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IUpdateToolRequest): google.cloud.dialogflow.v2beta1.UpdateToolRequest;

                    /**
                     * Encodes the specified UpdateToolRequest message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.UpdateToolRequest.verify|verify} messages.
                     * @param message UpdateToolRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IUpdateToolRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified UpdateToolRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.UpdateToolRequest.verify|verify} messages.
                     * @param message UpdateToolRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IUpdateToolRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an UpdateToolRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns UpdateToolRequest
                     * @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.cloud.dialogflow.v2beta1.UpdateToolRequest;

                    /**
                     * Decodes an UpdateToolRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns UpdateToolRequest
                     * @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.cloud.dialogflow.v2beta1.UpdateToolRequest;

                    /**
                     * Verifies an UpdateToolRequest 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 UpdateToolRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UpdateToolRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.UpdateToolRequest;

                    /**
                     * Creates a plain object from an UpdateToolRequest message. Also converts values to other types if specified.
                     * @param message UpdateToolRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.UpdateToolRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this UpdateToolRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for UpdateToolRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a Tool. */
                interface ITool {

                    /** Tool name */
                    name?: (string|null);

                    /** Tool toolKey */
                    toolKey?: (string|null);

                    /** Tool displayName */
                    displayName?: (string|null);

                    /** Tool description */
                    description?: (string|null);

                    /** Tool actionConfirmationRequirement */
                    actionConfirmationRequirement?: ({ [k: string]: google.cloud.dialogflow.v2beta1.Tool.ConfirmationRequirement }|null);

                    /** Tool extensionSpec */
                    extensionSpec?: (google.cloud.dialogflow.v2beta1.Tool.IExtensionTool|null);

                    /** Tool functionSpec */
                    functionSpec?: (google.cloud.dialogflow.v2beta1.Tool.IFunctionTool|null);

                    /** Tool connectorSpec */
                    connectorSpec?: (google.cloud.dialogflow.v2beta1.Tool.IConnectorTool|null);

                    /** Tool openApiSpec */
                    openApiSpec?: (google.cloud.dialogflow.v2beta1.Tool.IOpenApiTool|null);

                    /** Tool createTime */
                    createTime?: (google.protobuf.ITimestamp|null);

                    /** Tool updateTime */
                    updateTime?: (google.protobuf.ITimestamp|null);

                    /** Tool satisfiesPzs */
                    satisfiesPzs?: (boolean|null);

                    /** Tool satisfiesPzi */
                    satisfiesPzi?: (boolean|null);
                }

                /** Represents a Tool. */
                class Tool implements ITool {

                    /**
                     * Constructs a new Tool.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.ITool);

                    /** Tool name. */
                    public name: string;

                    /** Tool toolKey. */
                    public toolKey: string;

                    /** Tool displayName. */
                    public displayName: string;

                    /** Tool description. */
                    public description: string;

                    /** Tool actionConfirmationRequirement. */
                    public actionConfirmationRequirement: { [k: string]: google.cloud.dialogflow.v2beta1.Tool.ConfirmationRequirement };

                    /** Tool extensionSpec. */
                    public extensionSpec?: (google.cloud.dialogflow.v2beta1.Tool.IExtensionTool|null);

                    /** Tool functionSpec. */
                    public functionSpec?: (google.cloud.dialogflow.v2beta1.Tool.IFunctionTool|null);

                    /** Tool connectorSpec. */
                    public connectorSpec?: (google.cloud.dialogflow.v2beta1.Tool.IConnectorTool|null);

                    /** Tool openApiSpec. */
                    public openApiSpec?: (google.cloud.dialogflow.v2beta1.Tool.IOpenApiTool|null);

                    /** Tool createTime. */
                    public createTime?: (google.protobuf.ITimestamp|null);

                    /** Tool updateTime. */
                    public updateTime?: (google.protobuf.ITimestamp|null);

                    /** Tool satisfiesPzs. */
                    public satisfiesPzs?: (boolean|null);

                    /** Tool satisfiesPzi. */
                    public satisfiesPzi?: (boolean|null);

                    /** Tool specification. */
                    public specification?: ("extensionSpec"|"functionSpec"|"connectorSpec"|"openApiSpec");

                    /**
                     * Creates a new Tool instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Tool instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.ITool): google.cloud.dialogflow.v2beta1.Tool;

                    /**
                     * Encodes the specified Tool message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Tool.verify|verify} messages.
                     * @param message Tool message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.ITool, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Tool message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Tool.verify|verify} messages.
                     * @param message Tool message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.ITool, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a Tool message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Tool
                     * @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.cloud.dialogflow.v2beta1.Tool;

                    /**
                     * Decodes a Tool message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Tool
                     * @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.cloud.dialogflow.v2beta1.Tool;

                    /**
                     * Verifies a Tool 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 Tool message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Tool
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.Tool;

                    /**
                     * Creates a plain object from a Tool message. Also converts values to other types if specified.
                     * @param message Tool
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.Tool, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Tool to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Tool
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace Tool {

                    /** ConfirmationRequirement enum. */
                    enum ConfirmationRequirement {
                        CONFIRMATION_REQUIREMENT_UNSPECIFIED = 0,
                        REQUIRED = 1,
                        NOT_REQUIRED = 2
                    }

                    /** MethodType enum. */
                    enum MethodType {
                        METHOD_TYPE_UNSPECIFIED = 0,
                        GET = 1,
                        POST = 2,
                        PUT = 3,
                        DELETE = 4,
                        PATCH = 5
                    }

                    /** Properties of an ExtensionTool. */
                    interface IExtensionTool {

                        /** ExtensionTool name */
                        name?: (string|null);
                    }

                    /** Represents an ExtensionTool. */
                    class ExtensionTool implements IExtensionTool {

                        /**
                         * Constructs a new ExtensionTool.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2beta1.Tool.IExtensionTool);

                        /** ExtensionTool name. */
                        public name: string;

                        /**
                         * Creates a new ExtensionTool instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns ExtensionTool instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2beta1.Tool.IExtensionTool): google.cloud.dialogflow.v2beta1.Tool.ExtensionTool;

                        /**
                         * Encodes the specified ExtensionTool message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Tool.ExtensionTool.verify|verify} messages.
                         * @param message ExtensionTool message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2beta1.Tool.IExtensionTool, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified ExtensionTool message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Tool.ExtensionTool.verify|verify} messages.
                         * @param message ExtensionTool message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.Tool.IExtensionTool, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes an ExtensionTool message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns ExtensionTool
                         * @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.cloud.dialogflow.v2beta1.Tool.ExtensionTool;

                        /**
                         * Decodes an ExtensionTool message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns ExtensionTool
                         * @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.cloud.dialogflow.v2beta1.Tool.ExtensionTool;

                        /**
                         * Verifies an ExtensionTool 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 ExtensionTool message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns ExtensionTool
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.Tool.ExtensionTool;

                        /**
                         * Creates a plain object from an ExtensionTool message. Also converts values to other types if specified.
                         * @param message ExtensionTool
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.dialogflow.v2beta1.Tool.ExtensionTool, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this ExtensionTool to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for ExtensionTool
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    /** Properties of a FunctionTool. */
                    interface IFunctionTool {

                        /** FunctionTool inputSchema */
                        inputSchema?: (google.protobuf.IStruct|null);

                        /** FunctionTool outputSchema */
                        outputSchema?: (google.protobuf.IStruct|null);

                        /** FunctionTool methodType */
                        methodType?: (google.cloud.dialogflow.v2beta1.Tool.MethodType|keyof typeof google.cloud.dialogflow.v2beta1.Tool.MethodType|null);
                    }

                    /** Represents a FunctionTool. */
                    class FunctionTool implements IFunctionTool {

                        /**
                         * Constructs a new FunctionTool.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2beta1.Tool.IFunctionTool);

                        /** FunctionTool inputSchema. */
                        public inputSchema?: (google.protobuf.IStruct|null);

                        /** FunctionTool outputSchema. */
                        public outputSchema?: (google.protobuf.IStruct|null);

                        /** FunctionTool methodType. */
                        public methodType: (google.cloud.dialogflow.v2beta1.Tool.MethodType|keyof typeof google.cloud.dialogflow.v2beta1.Tool.MethodType);

                        /**
                         * Creates a new FunctionTool instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns FunctionTool instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2beta1.Tool.IFunctionTool): google.cloud.dialogflow.v2beta1.Tool.FunctionTool;

                        /**
                         * Encodes the specified FunctionTool message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Tool.FunctionTool.verify|verify} messages.
                         * @param message FunctionTool message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2beta1.Tool.IFunctionTool, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified FunctionTool message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Tool.FunctionTool.verify|verify} messages.
                         * @param message FunctionTool message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.Tool.IFunctionTool, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a FunctionTool message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns FunctionTool
                         * @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.cloud.dialogflow.v2beta1.Tool.FunctionTool;

                        /**
                         * Decodes a FunctionTool message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns FunctionTool
                         * @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.cloud.dialogflow.v2beta1.Tool.FunctionTool;

                        /**
                         * Verifies a FunctionTool 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 FunctionTool message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns FunctionTool
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.Tool.FunctionTool;

                        /**
                         * Creates a plain object from a FunctionTool message. Also converts values to other types if specified.
                         * @param message FunctionTool
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.dialogflow.v2beta1.Tool.FunctionTool, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this FunctionTool to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for FunctionTool
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    /** Properties of an OpenApiTool. */
                    interface IOpenApiTool {

                        /** OpenApiTool textSchema */
                        textSchema?: (string|null);

                        /** OpenApiTool authentication */
                        authentication?: (google.cloud.dialogflow.v2beta1.Tool.IAuthentication|null);

                        /** OpenApiTool tlsConfig */
                        tlsConfig?: (google.cloud.dialogflow.v2beta1.Tool.ITLSConfig|null);

                        /** OpenApiTool serviceDirectoryConfig */
                        serviceDirectoryConfig?: (google.cloud.dialogflow.v2beta1.Tool.IServiceDirectoryConfig|null);
                    }

                    /** Represents an OpenApiTool. */
                    class OpenApiTool implements IOpenApiTool {

                        /**
                         * Constructs a new OpenApiTool.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2beta1.Tool.IOpenApiTool);

                        /** OpenApiTool textSchema. */
                        public textSchema?: (string|null);

                        /** OpenApiTool authentication. */
                        public authentication?: (google.cloud.dialogflow.v2beta1.Tool.IAuthentication|null);

                        /** OpenApiTool tlsConfig. */
                        public tlsConfig?: (google.cloud.dialogflow.v2beta1.Tool.ITLSConfig|null);

                        /** OpenApiTool serviceDirectoryConfig. */
                        public serviceDirectoryConfig?: (google.cloud.dialogflow.v2beta1.Tool.IServiceDirectoryConfig|null);

                        /** OpenApiTool schema. */
                        public schema?: "textSchema";

                        /**
                         * Creates a new OpenApiTool instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns OpenApiTool instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2beta1.Tool.IOpenApiTool): google.cloud.dialogflow.v2beta1.Tool.OpenApiTool;

                        /**
                         * Encodes the specified OpenApiTool message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Tool.OpenApiTool.verify|verify} messages.
                         * @param message OpenApiTool message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2beta1.Tool.IOpenApiTool, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified OpenApiTool message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Tool.OpenApiTool.verify|verify} messages.
                         * @param message OpenApiTool message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.Tool.IOpenApiTool, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes an OpenApiTool message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns OpenApiTool
                         * @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.cloud.dialogflow.v2beta1.Tool.OpenApiTool;

                        /**
                         * Decodes an OpenApiTool message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns OpenApiTool
                         * @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.cloud.dialogflow.v2beta1.Tool.OpenApiTool;

                        /**
                         * Verifies an OpenApiTool 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 OpenApiTool message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns OpenApiTool
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.Tool.OpenApiTool;

                        /**
                         * Creates a plain object from an OpenApiTool message. Also converts values to other types if specified.
                         * @param message OpenApiTool
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.dialogflow.v2beta1.Tool.OpenApiTool, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this OpenApiTool to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for OpenApiTool
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    /** Properties of a ConnectorTool. */
                    interface IConnectorTool {

                        /** ConnectorTool name */
                        name?: (string|null);

                        /** ConnectorTool actions */
                        actions?: (google.cloud.dialogflow.v2beta1.Tool.ConnectorTool.IAction[]|null);
                    }

                    /** Represents a ConnectorTool. */
                    class ConnectorTool implements IConnectorTool {

                        /**
                         * Constructs a new ConnectorTool.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2beta1.Tool.IConnectorTool);

                        /** ConnectorTool name. */
                        public name: string;

                        /** ConnectorTool actions. */
                        public actions: google.cloud.dialogflow.v2beta1.Tool.ConnectorTool.IAction[];

                        /**
                         * Creates a new ConnectorTool instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns ConnectorTool instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2beta1.Tool.IConnectorTool): google.cloud.dialogflow.v2beta1.Tool.ConnectorTool;

                        /**
                         * Encodes the specified ConnectorTool message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Tool.ConnectorTool.verify|verify} messages.
                         * @param message ConnectorTool message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2beta1.Tool.IConnectorTool, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified ConnectorTool message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Tool.ConnectorTool.verify|verify} messages.
                         * @param message ConnectorTool message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.Tool.IConnectorTool, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a ConnectorTool message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns ConnectorTool
                         * @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.cloud.dialogflow.v2beta1.Tool.ConnectorTool;

                        /**
                         * Decodes a ConnectorTool message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns ConnectorTool
                         * @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.cloud.dialogflow.v2beta1.Tool.ConnectorTool;

                        /**
                         * Verifies a ConnectorTool 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 ConnectorTool message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns ConnectorTool
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.Tool.ConnectorTool;

                        /**
                         * Creates a plain object from a ConnectorTool message. Also converts values to other types if specified.
                         * @param message ConnectorTool
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.dialogflow.v2beta1.Tool.ConnectorTool, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this ConnectorTool to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for ConnectorTool
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    namespace ConnectorTool {

                        /** Properties of an Action. */
                        interface IAction {

                            /** Action connectionActionId */
                            connectionActionId?: (string|null);

                            /** Action entityOperation */
                            entityOperation?: (google.cloud.dialogflow.v2beta1.Tool.ConnectorTool.Action.IEntityOperation|null);

                            /** Action inputFields */
                            inputFields?: (string[]|null);

                            /** Action outputFields */
                            outputFields?: (string[]|null);
                        }

                        /** Represents an Action. */
                        class Action implements IAction {

                            /**
                             * Constructs a new Action.
                             * @param [properties] Properties to set
                             */
                            constructor(properties?: google.cloud.dialogflow.v2beta1.Tool.ConnectorTool.IAction);

                            /** Action connectionActionId. */
                            public connectionActionId?: (string|null);

                            /** Action entityOperation. */
                            public entityOperation?: (google.cloud.dialogflow.v2beta1.Tool.ConnectorTool.Action.IEntityOperation|null);

                            /** Action inputFields. */
                            public inputFields: string[];

                            /** Action outputFields. */
                            public outputFields: string[];

                            /** Action actionSpec. */
                            public actionSpec?: ("connectionActionId"|"entityOperation");

                            /**
                             * Creates a new Action instance using the specified properties.
                             * @param [properties] Properties to set
                             * @returns Action instance
                             */
                            public static create(properties?: google.cloud.dialogflow.v2beta1.Tool.ConnectorTool.IAction): google.cloud.dialogflow.v2beta1.Tool.ConnectorTool.Action;

                            /**
                             * Encodes the specified Action message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Tool.ConnectorTool.Action.verify|verify} messages.
                             * @param message Action message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encode(message: google.cloud.dialogflow.v2beta1.Tool.ConnectorTool.IAction, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Encodes the specified Action message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Tool.ConnectorTool.Action.verify|verify} messages.
                             * @param message Action message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.Tool.ConnectorTool.IAction, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Decodes an Action message from the specified reader or buffer.
                             * @param reader Reader or buffer to decode from
                             * @param [length] Message length if known beforehand
                             * @returns Action
                             * @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.cloud.dialogflow.v2beta1.Tool.ConnectorTool.Action;

                            /**
                             * Decodes an Action message from the specified reader or buffer, length delimited.
                             * @param reader Reader or buffer to decode from
                             * @returns Action
                             * @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.cloud.dialogflow.v2beta1.Tool.ConnectorTool.Action;

                            /**
                             * Verifies an Action 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 Action message from a plain object. Also converts values to their respective internal types.
                             * @param object Plain object
                             * @returns Action
                             */
                            public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.Tool.ConnectorTool.Action;

                            /**
                             * Creates a plain object from an Action message. Also converts values to other types if specified.
                             * @param message Action
                             * @param [options] Conversion options
                             * @returns Plain object
                             */
                            public static toObject(message: google.cloud.dialogflow.v2beta1.Tool.ConnectorTool.Action, options?: $protobuf.IConversionOptions): { [k: string]: any };

                            /**
                             * Converts this Action to JSON.
                             * @returns JSON object
                             */
                            public toJSON(): { [k: string]: any };

                            /**
                             * Gets the default type url for Action
                             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                             * @returns The default type url
                             */
                            public static getTypeUrl(typeUrlPrefix?: string): string;
                        }

                        namespace Action {

                            /** Properties of an EntityOperation. */
                            interface IEntityOperation {

                                /** EntityOperation entityId */
                                entityId?: (string|null);

                                /** EntityOperation operation */
                                operation?: (google.cloud.dialogflow.v2beta1.Tool.ConnectorTool.Action.EntityOperation.OperationType|keyof typeof google.cloud.dialogflow.v2beta1.Tool.ConnectorTool.Action.EntityOperation.OperationType|null);
                            }

                            /** Represents an EntityOperation. */
                            class EntityOperation implements IEntityOperation {

                                /**
                                 * Constructs a new EntityOperation.
                                 * @param [properties] Properties to set
                                 */
                                constructor(properties?: google.cloud.dialogflow.v2beta1.Tool.ConnectorTool.Action.IEntityOperation);

                                /** EntityOperation entityId. */
                                public entityId: string;

                                /** EntityOperation operation. */
                                public operation: (google.cloud.dialogflow.v2beta1.Tool.ConnectorTool.Action.EntityOperation.OperationType|keyof typeof google.cloud.dialogflow.v2beta1.Tool.ConnectorTool.Action.EntityOperation.OperationType);

                                /**
                                 * Creates a new EntityOperation instance using the specified properties.
                                 * @param [properties] Properties to set
                                 * @returns EntityOperation instance
                                 */
                                public static create(properties?: google.cloud.dialogflow.v2beta1.Tool.ConnectorTool.Action.IEntityOperation): google.cloud.dialogflow.v2beta1.Tool.ConnectorTool.Action.EntityOperation;

                                /**
                                 * Encodes the specified EntityOperation message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Tool.ConnectorTool.Action.EntityOperation.verify|verify} messages.
                                 * @param message EntityOperation message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encode(message: google.cloud.dialogflow.v2beta1.Tool.ConnectorTool.Action.IEntityOperation, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Encodes the specified EntityOperation message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Tool.ConnectorTool.Action.EntityOperation.verify|verify} messages.
                                 * @param message EntityOperation message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.Tool.ConnectorTool.Action.IEntityOperation, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Decodes an EntityOperation message from the specified reader or buffer.
                                 * @param reader Reader or buffer to decode from
                                 * @param [length] Message length if known beforehand
                                 * @returns EntityOperation
                                 * @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.cloud.dialogflow.v2beta1.Tool.ConnectorTool.Action.EntityOperation;

                                /**
                                 * Decodes an EntityOperation message from the specified reader or buffer, length delimited.
                                 * @param reader Reader or buffer to decode from
                                 * @returns EntityOperation
                                 * @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.cloud.dialogflow.v2beta1.Tool.ConnectorTool.Action.EntityOperation;

                                /**
                                 * Verifies an EntityOperation 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 EntityOperation message from a plain object. Also converts values to their respective internal types.
                                 * @param object Plain object
                                 * @returns EntityOperation
                                 */
                                public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.Tool.ConnectorTool.Action.EntityOperation;

                                /**
                                 * Creates a plain object from an EntityOperation message. Also converts values to other types if specified.
                                 * @param message EntityOperation
                                 * @param [options] Conversion options
                                 * @returns Plain object
                                 */
                                public static toObject(message: google.cloud.dialogflow.v2beta1.Tool.ConnectorTool.Action.EntityOperation, options?: $protobuf.IConversionOptions): { [k: string]: any };

                                /**
                                 * Converts this EntityOperation to JSON.
                                 * @returns JSON object
                                 */
                                public toJSON(): { [k: string]: any };

                                /**
                                 * Gets the default type url for EntityOperation
                                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                                 * @returns The default type url
                                 */
                                public static getTypeUrl(typeUrlPrefix?: string): string;
                            }

                            namespace EntityOperation {

                                /** OperationType enum. */
                                enum OperationType {
                                    OPERATION_TYPE_UNSPECIFIED = 0,
                                    LIST = 1,
                                    GET = 2,
                                    CREATE = 3,
                                    UPDATE = 4,
                                    DELETE = 5
                                }
                            }
                        }
                    }

                    /** Properties of an Authentication. */
                    interface IAuthentication {

                        /** Authentication apiKeyConfig */
                        apiKeyConfig?: (google.cloud.dialogflow.v2beta1.Tool.Authentication.IApiKeyConfig|null);

                        /** Authentication oauthConfig */
                        oauthConfig?: (google.cloud.dialogflow.v2beta1.Tool.Authentication.IOAuthConfig|null);

                        /** Authentication serviceAgentAuthConfig */
                        serviceAgentAuthConfig?: (google.cloud.dialogflow.v2beta1.Tool.Authentication.IServiceAgentAuthConfig|null);

                        /** Authentication bearerTokenConfig */
                        bearerTokenConfig?: (google.cloud.dialogflow.v2beta1.Tool.Authentication.IBearerTokenConfig|null);
                    }

                    /** Represents an Authentication. */
                    class Authentication implements IAuthentication {

                        /**
                         * Constructs a new Authentication.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2beta1.Tool.IAuthentication);

                        /** Authentication apiKeyConfig. */
                        public apiKeyConfig?: (google.cloud.dialogflow.v2beta1.Tool.Authentication.IApiKeyConfig|null);

                        /** Authentication oauthConfig. */
                        public oauthConfig?: (google.cloud.dialogflow.v2beta1.Tool.Authentication.IOAuthConfig|null);

                        /** Authentication serviceAgentAuthConfig. */
                        public serviceAgentAuthConfig?: (google.cloud.dialogflow.v2beta1.Tool.Authentication.IServiceAgentAuthConfig|null);

                        /** Authentication bearerTokenConfig. */
                        public bearerTokenConfig?: (google.cloud.dialogflow.v2beta1.Tool.Authentication.IBearerTokenConfig|null);

                        /** Authentication authConfig. */
                        public authConfig?: ("apiKeyConfig"|"oauthConfig"|"serviceAgentAuthConfig"|"bearerTokenConfig");

                        /**
                         * Creates a new Authentication instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns Authentication instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2beta1.Tool.IAuthentication): google.cloud.dialogflow.v2beta1.Tool.Authentication;

                        /**
                         * Encodes the specified Authentication message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Tool.Authentication.verify|verify} messages.
                         * @param message Authentication message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2beta1.Tool.IAuthentication, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified Authentication message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Tool.Authentication.verify|verify} messages.
                         * @param message Authentication message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.Tool.IAuthentication, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes an Authentication message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns Authentication
                         * @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.cloud.dialogflow.v2beta1.Tool.Authentication;

                        /**
                         * Decodes an Authentication message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns Authentication
                         * @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.cloud.dialogflow.v2beta1.Tool.Authentication;

                        /**
                         * Verifies an Authentication 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 Authentication message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns Authentication
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.Tool.Authentication;

                        /**
                         * Creates a plain object from an Authentication message. Also converts values to other types if specified.
                         * @param message Authentication
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.dialogflow.v2beta1.Tool.Authentication, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this Authentication to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for Authentication
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    namespace Authentication {

                        /** Properties of an ApiKeyConfig. */
                        interface IApiKeyConfig {

                            /** ApiKeyConfig keyName */
                            keyName?: (string|null);

                            /** ApiKeyConfig apiKey */
                            apiKey?: (string|null);

                            /** ApiKeyConfig secretVersionForApiKey */
                            secretVersionForApiKey?: (string|null);

                            /** ApiKeyConfig requestLocation */
                            requestLocation?: (google.cloud.dialogflow.v2beta1.Tool.Authentication.RequestLocation|keyof typeof google.cloud.dialogflow.v2beta1.Tool.Authentication.RequestLocation|null);
                        }

                        /** Represents an ApiKeyConfig. */
                        class ApiKeyConfig implements IApiKeyConfig {

                            /**
                             * Constructs a new ApiKeyConfig.
                             * @param [properties] Properties to set
                             */
                            constructor(properties?: google.cloud.dialogflow.v2beta1.Tool.Authentication.IApiKeyConfig);

                            /** ApiKeyConfig keyName. */
                            public keyName: string;

                            /** ApiKeyConfig apiKey. */
                            public apiKey: string;

                            /** ApiKeyConfig secretVersionForApiKey. */
                            public secretVersionForApiKey: string;

                            /** ApiKeyConfig requestLocation. */
                            public requestLocation: (google.cloud.dialogflow.v2beta1.Tool.Authentication.RequestLocation|keyof typeof google.cloud.dialogflow.v2beta1.Tool.Authentication.RequestLocation);

                            /**
                             * Creates a new ApiKeyConfig instance using the specified properties.
                             * @param [properties] Properties to set
                             * @returns ApiKeyConfig instance
                             */
                            public static create(properties?: google.cloud.dialogflow.v2beta1.Tool.Authentication.IApiKeyConfig): google.cloud.dialogflow.v2beta1.Tool.Authentication.ApiKeyConfig;

                            /**
                             * Encodes the specified ApiKeyConfig message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Tool.Authentication.ApiKeyConfig.verify|verify} messages.
                             * @param message ApiKeyConfig message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encode(message: google.cloud.dialogflow.v2beta1.Tool.Authentication.IApiKeyConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Encodes the specified ApiKeyConfig message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Tool.Authentication.ApiKeyConfig.verify|verify} messages.
                             * @param message ApiKeyConfig message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.Tool.Authentication.IApiKeyConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Decodes an ApiKeyConfig message from the specified reader or buffer.
                             * @param reader Reader or buffer to decode from
                             * @param [length] Message length if known beforehand
                             * @returns ApiKeyConfig
                             * @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.cloud.dialogflow.v2beta1.Tool.Authentication.ApiKeyConfig;

                            /**
                             * Decodes an ApiKeyConfig message from the specified reader or buffer, length delimited.
                             * @param reader Reader or buffer to decode from
                             * @returns ApiKeyConfig
                             * @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.cloud.dialogflow.v2beta1.Tool.Authentication.ApiKeyConfig;

                            /**
                             * Verifies an ApiKeyConfig 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 ApiKeyConfig message from a plain object. Also converts values to their respective internal types.
                             * @param object Plain object
                             * @returns ApiKeyConfig
                             */
                            public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.Tool.Authentication.ApiKeyConfig;

                            /**
                             * Creates a plain object from an ApiKeyConfig message. Also converts values to other types if specified.
                             * @param message ApiKeyConfig
                             * @param [options] Conversion options
                             * @returns Plain object
                             */
                            public static toObject(message: google.cloud.dialogflow.v2beta1.Tool.Authentication.ApiKeyConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                            /**
                             * Converts this ApiKeyConfig to JSON.
                             * @returns JSON object
                             */
                            public toJSON(): { [k: string]: any };

                            /**
                             * Gets the default type url for ApiKeyConfig
                             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                             * @returns The default type url
                             */
                            public static getTypeUrl(typeUrlPrefix?: string): string;
                        }

                        /** RequestLocation enum. */
                        enum RequestLocation {
                            REQUEST_LOCATION_UNSPECIFIED = 0,
                            HEADER = 1,
                            QUERY_STRING = 2
                        }

                        /** Properties of a OAuthConfig. */
                        interface IOAuthConfig {

                            /** OAuthConfig oauthGrantType */
                            oauthGrantType?: (google.cloud.dialogflow.v2beta1.Tool.Authentication.OAuthConfig.OauthGrantType|keyof typeof google.cloud.dialogflow.v2beta1.Tool.Authentication.OAuthConfig.OauthGrantType|null);

                            /** OAuthConfig clientId */
                            clientId?: (string|null);

                            /** OAuthConfig clientSecret */
                            clientSecret?: (string|null);

                            /** OAuthConfig secretVersionForClientSecret */
                            secretVersionForClientSecret?: (string|null);

                            /** OAuthConfig tokenEndpoint */
                            tokenEndpoint?: (string|null);

                            /** OAuthConfig scopes */
                            scopes?: (string[]|null);
                        }

                        /** Represents a OAuthConfig. */
                        class OAuthConfig implements IOAuthConfig {

                            /**
                             * Constructs a new OAuthConfig.
                             * @param [properties] Properties to set
                             */
                            constructor(properties?: google.cloud.dialogflow.v2beta1.Tool.Authentication.IOAuthConfig);

                            /** OAuthConfig oauthGrantType. */
                            public oauthGrantType: (google.cloud.dialogflow.v2beta1.Tool.Authentication.OAuthConfig.OauthGrantType|keyof typeof google.cloud.dialogflow.v2beta1.Tool.Authentication.OAuthConfig.OauthGrantType);

                            /** OAuthConfig clientId. */
                            public clientId: string;

                            /** OAuthConfig clientSecret. */
                            public clientSecret: string;

                            /** OAuthConfig secretVersionForClientSecret. */
                            public secretVersionForClientSecret: string;

                            /** OAuthConfig tokenEndpoint. */
                            public tokenEndpoint: string;

                            /** OAuthConfig scopes. */
                            public scopes: string[];

                            /**
                             * Creates a new OAuthConfig instance using the specified properties.
                             * @param [properties] Properties to set
                             * @returns OAuthConfig instance
                             */
                            public static create(properties?: google.cloud.dialogflow.v2beta1.Tool.Authentication.IOAuthConfig): google.cloud.dialogflow.v2beta1.Tool.Authentication.OAuthConfig;

                            /**
                             * Encodes the specified OAuthConfig message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Tool.Authentication.OAuthConfig.verify|verify} messages.
                             * @param message OAuthConfig message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encode(message: google.cloud.dialogflow.v2beta1.Tool.Authentication.IOAuthConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Encodes the specified OAuthConfig message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Tool.Authentication.OAuthConfig.verify|verify} messages.
                             * @param message OAuthConfig message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.Tool.Authentication.IOAuthConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Decodes a OAuthConfig message from the specified reader or buffer.
                             * @param reader Reader or buffer to decode from
                             * @param [length] Message length if known beforehand
                             * @returns OAuthConfig
                             * @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.cloud.dialogflow.v2beta1.Tool.Authentication.OAuthConfig;

                            /**
                             * Decodes a OAuthConfig message from the specified reader or buffer, length delimited.
                             * @param reader Reader or buffer to decode from
                             * @returns OAuthConfig
                             * @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.cloud.dialogflow.v2beta1.Tool.Authentication.OAuthConfig;

                            /**
                             * Verifies a OAuthConfig 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 OAuthConfig message from a plain object. Also converts values to their respective internal types.
                             * @param object Plain object
                             * @returns OAuthConfig
                             */
                            public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.Tool.Authentication.OAuthConfig;

                            /**
                             * Creates a plain object from a OAuthConfig message. Also converts values to other types if specified.
                             * @param message OAuthConfig
                             * @param [options] Conversion options
                             * @returns Plain object
                             */
                            public static toObject(message: google.cloud.dialogflow.v2beta1.Tool.Authentication.OAuthConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                            /**
                             * Converts this OAuthConfig to JSON.
                             * @returns JSON object
                             */
                            public toJSON(): { [k: string]: any };

                            /**
                             * Gets the default type url for OAuthConfig
                             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                             * @returns The default type url
                             */
                            public static getTypeUrl(typeUrlPrefix?: string): string;
                        }

                        namespace OAuthConfig {

                            /** OauthGrantType enum. */
                            enum OauthGrantType {
                                OAUTH_GRANT_TYPE_UNSPECIFIED = 0,
                                CLIENT_CREDENTIAL = 1
                            }
                        }

                        /** Properties of a ServiceAgentAuthConfig. */
                        interface IServiceAgentAuthConfig {

                            /** ServiceAgentAuthConfig serviceAgentAuth */
                            serviceAgentAuth?: (google.cloud.dialogflow.v2beta1.Tool.Authentication.ServiceAgentAuthConfig.ServiceAgentAuth|keyof typeof google.cloud.dialogflow.v2beta1.Tool.Authentication.ServiceAgentAuthConfig.ServiceAgentAuth|null);
                        }

                        /** Represents a ServiceAgentAuthConfig. */
                        class ServiceAgentAuthConfig implements IServiceAgentAuthConfig {

                            /**
                             * Constructs a new ServiceAgentAuthConfig.
                             * @param [properties] Properties to set
                             */
                            constructor(properties?: google.cloud.dialogflow.v2beta1.Tool.Authentication.IServiceAgentAuthConfig);

                            /** ServiceAgentAuthConfig serviceAgentAuth. */
                            public serviceAgentAuth: (google.cloud.dialogflow.v2beta1.Tool.Authentication.ServiceAgentAuthConfig.ServiceAgentAuth|keyof typeof google.cloud.dialogflow.v2beta1.Tool.Authentication.ServiceAgentAuthConfig.ServiceAgentAuth);

                            /**
                             * Creates a new ServiceAgentAuthConfig instance using the specified properties.
                             * @param [properties] Properties to set
                             * @returns ServiceAgentAuthConfig instance
                             */
                            public static create(properties?: google.cloud.dialogflow.v2beta1.Tool.Authentication.IServiceAgentAuthConfig): google.cloud.dialogflow.v2beta1.Tool.Authentication.ServiceAgentAuthConfig;

                            /**
                             * Encodes the specified ServiceAgentAuthConfig message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Tool.Authentication.ServiceAgentAuthConfig.verify|verify} messages.
                             * @param message ServiceAgentAuthConfig message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encode(message: google.cloud.dialogflow.v2beta1.Tool.Authentication.IServiceAgentAuthConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Encodes the specified ServiceAgentAuthConfig message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Tool.Authentication.ServiceAgentAuthConfig.verify|verify} messages.
                             * @param message ServiceAgentAuthConfig message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.Tool.Authentication.IServiceAgentAuthConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Decodes a ServiceAgentAuthConfig message from the specified reader or buffer.
                             * @param reader Reader or buffer to decode from
                             * @param [length] Message length if known beforehand
                             * @returns ServiceAgentAuthConfig
                             * @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.cloud.dialogflow.v2beta1.Tool.Authentication.ServiceAgentAuthConfig;

                            /**
                             * Decodes a ServiceAgentAuthConfig message from the specified reader or buffer, length delimited.
                             * @param reader Reader or buffer to decode from
                             * @returns ServiceAgentAuthConfig
                             * @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.cloud.dialogflow.v2beta1.Tool.Authentication.ServiceAgentAuthConfig;

                            /**
                             * Verifies a ServiceAgentAuthConfig 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 ServiceAgentAuthConfig message from a plain object. Also converts values to their respective internal types.
                             * @param object Plain object
                             * @returns ServiceAgentAuthConfig
                             */
                            public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.Tool.Authentication.ServiceAgentAuthConfig;

                            /**
                             * Creates a plain object from a ServiceAgentAuthConfig message. Also converts values to other types if specified.
                             * @param message ServiceAgentAuthConfig
                             * @param [options] Conversion options
                             * @returns Plain object
                             */
                            public static toObject(message: google.cloud.dialogflow.v2beta1.Tool.Authentication.ServiceAgentAuthConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                            /**
                             * Converts this ServiceAgentAuthConfig to JSON.
                             * @returns JSON object
                             */
                            public toJSON(): { [k: string]: any };

                            /**
                             * Gets the default type url for ServiceAgentAuthConfig
                             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                             * @returns The default type url
                             */
                            public static getTypeUrl(typeUrlPrefix?: string): string;
                        }

                        namespace ServiceAgentAuthConfig {

                            /** ServiceAgentAuth enum. */
                            enum ServiceAgentAuth {
                                SERVICE_AGENT_AUTH_UNSPECIFIED = 0,
                                ID_TOKEN = 1,
                                ACCESS_TOKEN = 2
                            }
                        }

                        /** Properties of a BearerTokenConfig. */
                        interface IBearerTokenConfig {

                            /** BearerTokenConfig token */
                            token?: (string|null);

                            /** BearerTokenConfig secretVersionForToken */
                            secretVersionForToken?: (string|null);
                        }

                        /** Represents a BearerTokenConfig. */
                        class BearerTokenConfig implements IBearerTokenConfig {

                            /**
                             * Constructs a new BearerTokenConfig.
                             * @param [properties] Properties to set
                             */
                            constructor(properties?: google.cloud.dialogflow.v2beta1.Tool.Authentication.IBearerTokenConfig);

                            /** BearerTokenConfig token. */
                            public token: string;

                            /** BearerTokenConfig secretVersionForToken. */
                            public secretVersionForToken: string;

                            /**
                             * Creates a new BearerTokenConfig instance using the specified properties.
                             * @param [properties] Properties to set
                             * @returns BearerTokenConfig instance
                             */
                            public static create(properties?: google.cloud.dialogflow.v2beta1.Tool.Authentication.IBearerTokenConfig): google.cloud.dialogflow.v2beta1.Tool.Authentication.BearerTokenConfig;

                            /**
                             * Encodes the specified BearerTokenConfig message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Tool.Authentication.BearerTokenConfig.verify|verify} messages.
                             * @param message BearerTokenConfig message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encode(message: google.cloud.dialogflow.v2beta1.Tool.Authentication.IBearerTokenConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Encodes the specified BearerTokenConfig message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Tool.Authentication.BearerTokenConfig.verify|verify} messages.
                             * @param message BearerTokenConfig message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.Tool.Authentication.IBearerTokenConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Decodes a BearerTokenConfig message from the specified reader or buffer.
                             * @param reader Reader or buffer to decode from
                             * @param [length] Message length if known beforehand
                             * @returns BearerTokenConfig
                             * @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.cloud.dialogflow.v2beta1.Tool.Authentication.BearerTokenConfig;

                            /**
                             * Decodes a BearerTokenConfig message from the specified reader or buffer, length delimited.
                             * @param reader Reader or buffer to decode from
                             * @returns BearerTokenConfig
                             * @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.cloud.dialogflow.v2beta1.Tool.Authentication.BearerTokenConfig;

                            /**
                             * Verifies a BearerTokenConfig 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 BearerTokenConfig message from a plain object. Also converts values to their respective internal types.
                             * @param object Plain object
                             * @returns BearerTokenConfig
                             */
                            public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.Tool.Authentication.BearerTokenConfig;

                            /**
                             * Creates a plain object from a BearerTokenConfig message. Also converts values to other types if specified.
                             * @param message BearerTokenConfig
                             * @param [options] Conversion options
                             * @returns Plain object
                             */
                            public static toObject(message: google.cloud.dialogflow.v2beta1.Tool.Authentication.BearerTokenConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                            /**
                             * Converts this BearerTokenConfig to JSON.
                             * @returns JSON object
                             */
                            public toJSON(): { [k: string]: any };

                            /**
                             * Gets the default type url for BearerTokenConfig
                             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                             * @returns The default type url
                             */
                            public static getTypeUrl(typeUrlPrefix?: string): string;
                        }
                    }

                    /** Properties of a TLSConfig. */
                    interface ITLSConfig {

                        /** TLSConfig caCerts */
                        caCerts?: (google.cloud.dialogflow.v2beta1.Tool.TLSConfig.ICACert[]|null);
                    }

                    /** Represents a TLSConfig. */
                    class TLSConfig implements ITLSConfig {

                        /**
                         * Constructs a new TLSConfig.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2beta1.Tool.ITLSConfig);

                        /** TLSConfig caCerts. */
                        public caCerts: google.cloud.dialogflow.v2beta1.Tool.TLSConfig.ICACert[];

                        /**
                         * Creates a new TLSConfig instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns TLSConfig instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2beta1.Tool.ITLSConfig): google.cloud.dialogflow.v2beta1.Tool.TLSConfig;

                        /**
                         * Encodes the specified TLSConfig message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Tool.TLSConfig.verify|verify} messages.
                         * @param message TLSConfig message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2beta1.Tool.ITLSConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified TLSConfig message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Tool.TLSConfig.verify|verify} messages.
                         * @param message TLSConfig message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.Tool.ITLSConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a TLSConfig message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns TLSConfig
                         * @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.cloud.dialogflow.v2beta1.Tool.TLSConfig;

                        /**
                         * Decodes a TLSConfig message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns TLSConfig
                         * @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.cloud.dialogflow.v2beta1.Tool.TLSConfig;

                        /**
                         * Verifies a TLSConfig 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 TLSConfig message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns TLSConfig
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.Tool.TLSConfig;

                        /**
                         * Creates a plain object from a TLSConfig message. Also converts values to other types if specified.
                         * @param message TLSConfig
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.dialogflow.v2beta1.Tool.TLSConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this TLSConfig to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for TLSConfig
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    namespace TLSConfig {

                        /** Properties of a CACert. */
                        interface ICACert {

                            /** CACert displayName */
                            displayName?: (string|null);

                            /** CACert cert */
                            cert?: (Uint8Array|Buffer|string|null);
                        }

                        /** Represents a CACert. */
                        class CACert implements ICACert {

                            /**
                             * Constructs a new CACert.
                             * @param [properties] Properties to set
                             */
                            constructor(properties?: google.cloud.dialogflow.v2beta1.Tool.TLSConfig.ICACert);

                            /** CACert displayName. */
                            public displayName: string;

                            /** CACert cert. */
                            public cert: (Uint8Array|Buffer|string);

                            /**
                             * Creates a new CACert instance using the specified properties.
                             * @param [properties] Properties to set
                             * @returns CACert instance
                             */
                            public static create(properties?: google.cloud.dialogflow.v2beta1.Tool.TLSConfig.ICACert): google.cloud.dialogflow.v2beta1.Tool.TLSConfig.CACert;

                            /**
                             * Encodes the specified CACert message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Tool.TLSConfig.CACert.verify|verify} messages.
                             * @param message CACert message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encode(message: google.cloud.dialogflow.v2beta1.Tool.TLSConfig.ICACert, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Encodes the specified CACert message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Tool.TLSConfig.CACert.verify|verify} messages.
                             * @param message CACert message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.Tool.TLSConfig.ICACert, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Decodes a CACert message from the specified reader or buffer.
                             * @param reader Reader or buffer to decode from
                             * @param [length] Message length if known beforehand
                             * @returns CACert
                             * @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.cloud.dialogflow.v2beta1.Tool.TLSConfig.CACert;

                            /**
                             * Decodes a CACert message from the specified reader or buffer, length delimited.
                             * @param reader Reader or buffer to decode from
                             * @returns CACert
                             * @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.cloud.dialogflow.v2beta1.Tool.TLSConfig.CACert;

                            /**
                             * Verifies a CACert 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 CACert message from a plain object. Also converts values to their respective internal types.
                             * @param object Plain object
                             * @returns CACert
                             */
                            public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.Tool.TLSConfig.CACert;

                            /**
                             * Creates a plain object from a CACert message. Also converts values to other types if specified.
                             * @param message CACert
                             * @param [options] Conversion options
                             * @returns Plain object
                             */
                            public static toObject(message: google.cloud.dialogflow.v2beta1.Tool.TLSConfig.CACert, options?: $protobuf.IConversionOptions): { [k: string]: any };

                            /**
                             * Converts this CACert to JSON.
                             * @returns JSON object
                             */
                            public toJSON(): { [k: string]: any };

                            /**
                             * Gets the default type url for CACert
                             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                             * @returns The default type url
                             */
                            public static getTypeUrl(typeUrlPrefix?: string): string;
                        }
                    }

                    /** Properties of a ServiceDirectoryConfig. */
                    interface IServiceDirectoryConfig {

                        /** ServiceDirectoryConfig service */
                        service?: (string|null);
                    }

                    /** Represents a ServiceDirectoryConfig. */
                    class ServiceDirectoryConfig implements IServiceDirectoryConfig {

                        /**
                         * Constructs a new ServiceDirectoryConfig.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2beta1.Tool.IServiceDirectoryConfig);

                        /** ServiceDirectoryConfig service. */
                        public service: string;

                        /**
                         * Creates a new ServiceDirectoryConfig instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns ServiceDirectoryConfig instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2beta1.Tool.IServiceDirectoryConfig): google.cloud.dialogflow.v2beta1.Tool.ServiceDirectoryConfig;

                        /**
                         * Encodes the specified ServiceDirectoryConfig message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Tool.ServiceDirectoryConfig.verify|verify} messages.
                         * @param message ServiceDirectoryConfig message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2beta1.Tool.IServiceDirectoryConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified ServiceDirectoryConfig message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Tool.ServiceDirectoryConfig.verify|verify} messages.
                         * @param message ServiceDirectoryConfig message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.Tool.IServiceDirectoryConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a ServiceDirectoryConfig message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns ServiceDirectoryConfig
                         * @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.cloud.dialogflow.v2beta1.Tool.ServiceDirectoryConfig;

                        /**
                         * Decodes a ServiceDirectoryConfig message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns ServiceDirectoryConfig
                         * @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.cloud.dialogflow.v2beta1.Tool.ServiceDirectoryConfig;

                        /**
                         * Verifies a ServiceDirectoryConfig 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 ServiceDirectoryConfig message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns ServiceDirectoryConfig
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.Tool.ServiceDirectoryConfig;

                        /**
                         * Creates a plain object from a ServiceDirectoryConfig message. Also converts values to other types if specified.
                         * @param message ServiceDirectoryConfig
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.dialogflow.v2beta1.Tool.ServiceDirectoryConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this ServiceDirectoryConfig to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for ServiceDirectoryConfig
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }
                }

                /** Properties of a CesToolSpec. */
                interface ICesToolSpec {

                    /** CesToolSpec cesTool */
                    cesTool?: (string|null);

                    /** CesToolSpec confirmationRequirement */
                    confirmationRequirement?: (google.cloud.dialogflow.v2beta1.Tool.ConfirmationRequirement|keyof typeof google.cloud.dialogflow.v2beta1.Tool.ConfirmationRequirement|null);
                }

                /** Represents a CesToolSpec. */
                class CesToolSpec implements ICesToolSpec {

                    /**
                     * Constructs a new CesToolSpec.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.ICesToolSpec);

                    /** CesToolSpec cesTool. */
                    public cesTool: string;

                    /** CesToolSpec confirmationRequirement. */
                    public confirmationRequirement: (google.cloud.dialogflow.v2beta1.Tool.ConfirmationRequirement|keyof typeof google.cloud.dialogflow.v2beta1.Tool.ConfirmationRequirement);

                    /**
                     * Creates a new CesToolSpec instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CesToolSpec instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.ICesToolSpec): google.cloud.dialogflow.v2beta1.CesToolSpec;

                    /**
                     * Encodes the specified CesToolSpec message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.CesToolSpec.verify|verify} messages.
                     * @param message CesToolSpec message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.ICesToolSpec, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CesToolSpec message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.CesToolSpec.verify|verify} messages.
                     * @param message CesToolSpec message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.ICesToolSpec, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CesToolSpec message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CesToolSpec
                     * @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.cloud.dialogflow.v2beta1.CesToolSpec;

                    /**
                     * Decodes a CesToolSpec message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CesToolSpec
                     * @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.cloud.dialogflow.v2beta1.CesToolSpec;

                    /**
                     * Verifies a CesToolSpec 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 CesToolSpec message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CesToolSpec
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.CesToolSpec;

                    /**
                     * Creates a plain object from a CesToolSpec message. Also converts values to other types if specified.
                     * @param message CesToolSpec
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.CesToolSpec, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CesToolSpec to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CesToolSpec
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ToolCall. */
                interface IToolCall {

                    /** ToolCall tool */
                    tool?: (string|null);

                    /** ToolCall cesTool */
                    cesTool?: (string|null);

                    /** ToolCall cesToolset */
                    cesToolset?: (string|null);

                    /** ToolCall cesApp */
                    cesApp?: (string|null);

                    /** ToolCall toolDisplayName */
                    toolDisplayName?: (string|null);

                    /** ToolCall toolDisplayDetails */
                    toolDisplayDetails?: (string|null);

                    /** ToolCall action */
                    action?: (string|null);

                    /** ToolCall inputParameters */
                    inputParameters?: (google.protobuf.IStruct|null);

                    /** ToolCall createTime */
                    createTime?: (google.protobuf.ITimestamp|null);

                    /** ToolCall answerRecord */
                    answerRecord?: (string|null);

                    /** ToolCall state */
                    state?: (google.cloud.dialogflow.v2beta1.ToolCall.State|keyof typeof google.cloud.dialogflow.v2beta1.ToolCall.State|null);
                }

                /** Represents a ToolCall. */
                class ToolCall implements IToolCall {

                    /**
                     * Constructs a new ToolCall.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IToolCall);

                    /** ToolCall tool. */
                    public tool?: (string|null);

                    /** ToolCall cesTool. */
                    public cesTool?: (string|null);

                    /** ToolCall cesToolset. */
                    public cesToolset?: (string|null);

                    /** ToolCall cesApp. */
                    public cesApp?: (string|null);

                    /** ToolCall toolDisplayName. */
                    public toolDisplayName: string;

                    /** ToolCall toolDisplayDetails. */
                    public toolDisplayDetails: string;

                    /** ToolCall action. */
                    public action: string;

                    /** ToolCall inputParameters. */
                    public inputParameters?: (google.protobuf.IStruct|null);

                    /** ToolCall createTime. */
                    public createTime?: (google.protobuf.ITimestamp|null);

                    /** ToolCall answerRecord. */
                    public answerRecord: string;

                    /** ToolCall state. */
                    public state: (google.cloud.dialogflow.v2beta1.ToolCall.State|keyof typeof google.cloud.dialogflow.v2beta1.ToolCall.State);

                    /** ToolCall source. */
                    public source?: ("tool"|"cesTool"|"cesToolset"|"cesApp");

                    /**
                     * Creates a new ToolCall instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ToolCall instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IToolCall): google.cloud.dialogflow.v2beta1.ToolCall;

                    /**
                     * Encodes the specified ToolCall message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.ToolCall.verify|verify} messages.
                     * @param message ToolCall message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IToolCall, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ToolCall message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.ToolCall.verify|verify} messages.
                     * @param message ToolCall message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IToolCall, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ToolCall message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ToolCall
                     * @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.cloud.dialogflow.v2beta1.ToolCall;

                    /**
                     * Decodes a ToolCall message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ToolCall
                     * @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.cloud.dialogflow.v2beta1.ToolCall;

                    /**
                     * Verifies a ToolCall 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 ToolCall message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ToolCall
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.ToolCall;

                    /**
                     * Creates a plain object from a ToolCall message. Also converts values to other types if specified.
                     * @param message ToolCall
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.ToolCall, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ToolCall to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ToolCall
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace ToolCall {

                    /** State enum. */
                    enum State {
                        STATE_UNSPECIFIED = 0,
                        TRIGGERED = 1,
                        NEEDS_CONFIRMATION = 2
                    }
                }

                /** Properties of a ToolCallResult. */
                interface IToolCallResult {

                    /** ToolCallResult tool */
                    tool?: (string|null);

                    /** ToolCallResult cesTool */
                    cesTool?: (string|null);

                    /** ToolCallResult cesToolset */
                    cesToolset?: (string|null);

                    /** ToolCallResult cesApp */
                    cesApp?: (string|null);

                    /** ToolCallResult action */
                    action?: (string|null);

                    /** ToolCallResult error */
                    error?: (google.cloud.dialogflow.v2beta1.ToolCallResult.IError|null);

                    /** ToolCallResult rawContent */
                    rawContent?: (Uint8Array|Buffer|string|null);

                    /** ToolCallResult content */
                    content?: (string|null);

                    /** ToolCallResult createTime */
                    createTime?: (google.protobuf.ITimestamp|null);

                    /** ToolCallResult answerRecord */
                    answerRecord?: (string|null);
                }

                /** Represents a ToolCallResult. */
                class ToolCallResult implements IToolCallResult {

                    /**
                     * Constructs a new ToolCallResult.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IToolCallResult);

                    /** ToolCallResult tool. */
                    public tool?: (string|null);

                    /** ToolCallResult cesTool. */
                    public cesTool?: (string|null);

                    /** ToolCallResult cesToolset. */
                    public cesToolset?: (string|null);

                    /** ToolCallResult cesApp. */
                    public cesApp?: (string|null);

                    /** ToolCallResult action. */
                    public action: string;

                    /** ToolCallResult error. */
                    public error?: (google.cloud.dialogflow.v2beta1.ToolCallResult.IError|null);

                    /** ToolCallResult rawContent. */
                    public rawContent?: (Uint8Array|Buffer|string|null);

                    /** ToolCallResult content. */
                    public content?: (string|null);

                    /** ToolCallResult createTime. */
                    public createTime?: (google.protobuf.ITimestamp|null);

                    /** ToolCallResult answerRecord. */
                    public answerRecord: string;

                    /** ToolCallResult source. */
                    public source?: ("tool"|"cesTool"|"cesToolset"|"cesApp");

                    /** ToolCallResult result. */
                    public result?: ("error"|"rawContent"|"content");

                    /**
                     * Creates a new ToolCallResult instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ToolCallResult instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IToolCallResult): google.cloud.dialogflow.v2beta1.ToolCallResult;

                    /**
                     * Encodes the specified ToolCallResult message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.ToolCallResult.verify|verify} messages.
                     * @param message ToolCallResult message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IToolCallResult, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ToolCallResult message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.ToolCallResult.verify|verify} messages.
                     * @param message ToolCallResult message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IToolCallResult, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ToolCallResult message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ToolCallResult
                     * @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.cloud.dialogflow.v2beta1.ToolCallResult;

                    /**
                     * Decodes a ToolCallResult message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ToolCallResult
                     * @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.cloud.dialogflow.v2beta1.ToolCallResult;

                    /**
                     * Verifies a ToolCallResult 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 ToolCallResult message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ToolCallResult
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.ToolCallResult;

                    /**
                     * Creates a plain object from a ToolCallResult message. Also converts values to other types if specified.
                     * @param message ToolCallResult
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.ToolCallResult, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ToolCallResult to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ToolCallResult
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace ToolCallResult {

                    /** Properties of an Error. */
                    interface IError {

                        /** Error message */
                        message?: (string|null);
                    }

                    /** Represents an Error. */
                    class Error implements IError {

                        /**
                         * Constructs a new Error.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2beta1.ToolCallResult.IError);

                        /** Error message. */
                        public message: string;

                        /**
                         * Creates a new Error instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns Error instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2beta1.ToolCallResult.IError): google.cloud.dialogflow.v2beta1.ToolCallResult.Error;

                        /**
                         * Encodes the specified Error message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.ToolCallResult.Error.verify|verify} messages.
                         * @param message Error message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2beta1.ToolCallResult.IError, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified Error message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.ToolCallResult.Error.verify|verify} messages.
                         * @param message Error message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.ToolCallResult.IError, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes an Error message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns Error
                         * @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.cloud.dialogflow.v2beta1.ToolCallResult.Error;

                        /**
                         * Decodes an Error message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns Error
                         * @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.cloud.dialogflow.v2beta1.ToolCallResult.Error;

                        /**
                         * Verifies an Error 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 Error message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns Error
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.ToolCallResult.Error;

                        /**
                         * Creates a plain object from an Error message. Also converts values to other types if specified.
                         * @param message Error
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.dialogflow.v2beta1.ToolCallResult.Error, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this Error to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for Error
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }
                }

                /** Properties of a ToolsetTool. */
                interface IToolsetTool {

                    /** ToolsetTool toolset */
                    toolset?: (string|null);

                    /** ToolsetTool operationId */
                    operationId?: (string|null);

                    /** ToolsetTool confirmationRequirement */
                    confirmationRequirement?: (google.cloud.dialogflow.v2beta1.Tool.ConfirmationRequirement|keyof typeof google.cloud.dialogflow.v2beta1.Tool.ConfirmationRequirement|null);
                }

                /** Represents a ToolsetTool. */
                class ToolsetTool implements IToolsetTool {

                    /**
                     * Constructs a new ToolsetTool.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IToolsetTool);

                    /** ToolsetTool toolset. */
                    public toolset: string;

                    /** ToolsetTool operationId. */
                    public operationId: string;

                    /** ToolsetTool confirmationRequirement. */
                    public confirmationRequirement: (google.cloud.dialogflow.v2beta1.Tool.ConfirmationRequirement|keyof typeof google.cloud.dialogflow.v2beta1.Tool.ConfirmationRequirement);

                    /**
                     * Creates a new ToolsetTool instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ToolsetTool instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IToolsetTool): google.cloud.dialogflow.v2beta1.ToolsetTool;

                    /**
                     * Encodes the specified ToolsetTool message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.ToolsetTool.verify|verify} messages.
                     * @param message ToolsetTool message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IToolsetTool, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ToolsetTool message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.ToolsetTool.verify|verify} messages.
                     * @param message ToolsetTool message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IToolsetTool, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ToolsetTool message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ToolsetTool
                     * @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.cloud.dialogflow.v2beta1.ToolsetTool;

                    /**
                     * Decodes a ToolsetTool message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ToolsetTool
                     * @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.cloud.dialogflow.v2beta1.ToolsetTool;

                    /**
                     * Verifies a ToolsetTool 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 ToolsetTool message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ToolsetTool
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.ToolsetTool;

                    /**
                     * Creates a plain object from a ToolsetTool message. Also converts values to other types if specified.
                     * @param message ToolsetTool
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.ToolsetTool, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ToolsetTool to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ToolsetTool
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Represents a Participants */
                class Participants extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new Participants 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 Participants 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): Participants;

                    /**
                     * Calls CreateParticipant.
                     * @param request CreateParticipantRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Participant
                     */
                    public createParticipant(request: google.cloud.dialogflow.v2beta1.ICreateParticipantRequest, callback: google.cloud.dialogflow.v2beta1.Participants.CreateParticipantCallback): void;

                    /**
                     * Calls CreateParticipant.
                     * @param request CreateParticipantRequest message or plain object
                     * @returns Promise
                     */
                    public createParticipant(request: google.cloud.dialogflow.v2beta1.ICreateParticipantRequest): Promise<google.cloud.dialogflow.v2beta1.Participant>;

                    /**
                     * Calls GetParticipant.
                     * @param request GetParticipantRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Participant
                     */
                    public getParticipant(request: google.cloud.dialogflow.v2beta1.IGetParticipantRequest, callback: google.cloud.dialogflow.v2beta1.Participants.GetParticipantCallback): void;

                    /**
                     * Calls GetParticipant.
                     * @param request GetParticipantRequest message or plain object
                     * @returns Promise
                     */
                    public getParticipant(request: google.cloud.dialogflow.v2beta1.IGetParticipantRequest): Promise<google.cloud.dialogflow.v2beta1.Participant>;

                    /**
                     * Calls ListParticipants.
                     * @param request ListParticipantsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ListParticipantsResponse
                     */
                    public listParticipants(request: google.cloud.dialogflow.v2beta1.IListParticipantsRequest, callback: google.cloud.dialogflow.v2beta1.Participants.ListParticipantsCallback): void;

                    /**
                     * Calls ListParticipants.
                     * @param request ListParticipantsRequest message or plain object
                     * @returns Promise
                     */
                    public listParticipants(request: google.cloud.dialogflow.v2beta1.IListParticipantsRequest): Promise<google.cloud.dialogflow.v2beta1.ListParticipantsResponse>;

                    /**
                     * Calls UpdateParticipant.
                     * @param request UpdateParticipantRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Participant
                     */
                    public updateParticipant(request: google.cloud.dialogflow.v2beta1.IUpdateParticipantRequest, callback: google.cloud.dialogflow.v2beta1.Participants.UpdateParticipantCallback): void;

                    /**
                     * Calls UpdateParticipant.
                     * @param request UpdateParticipantRequest message or plain object
                     * @returns Promise
                     */
                    public updateParticipant(request: google.cloud.dialogflow.v2beta1.IUpdateParticipantRequest): Promise<google.cloud.dialogflow.v2beta1.Participant>;

                    /**
                     * Calls AnalyzeContent.
                     * @param request AnalyzeContentRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and AnalyzeContentResponse
                     */
                    public analyzeContent(request: google.cloud.dialogflow.v2beta1.IAnalyzeContentRequest, callback: google.cloud.dialogflow.v2beta1.Participants.AnalyzeContentCallback): void;

                    /**
                     * Calls AnalyzeContent.
                     * @param request AnalyzeContentRequest message or plain object
                     * @returns Promise
                     */
                    public analyzeContent(request: google.cloud.dialogflow.v2beta1.IAnalyzeContentRequest): Promise<google.cloud.dialogflow.v2beta1.AnalyzeContentResponse>;

                    /**
                     * Calls StreamingAnalyzeContent.
                     * @param request StreamingAnalyzeContentRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and StreamingAnalyzeContentResponse
                     */
                    public streamingAnalyzeContent(request: google.cloud.dialogflow.v2beta1.IStreamingAnalyzeContentRequest, callback: google.cloud.dialogflow.v2beta1.Participants.StreamingAnalyzeContentCallback): void;

                    /**
                     * Calls StreamingAnalyzeContent.
                     * @param request StreamingAnalyzeContentRequest message or plain object
                     * @returns Promise
                     */
                    public streamingAnalyzeContent(request: google.cloud.dialogflow.v2beta1.IStreamingAnalyzeContentRequest): Promise<google.cloud.dialogflow.v2beta1.StreamingAnalyzeContentResponse>;

                    /**
                     * Calls BidiStreamingAnalyzeContent.
                     * @param request BidiStreamingAnalyzeContentRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and BidiStreamingAnalyzeContentResponse
                     */
                    public bidiStreamingAnalyzeContent(request: google.cloud.dialogflow.v2beta1.IBidiStreamingAnalyzeContentRequest, callback: google.cloud.dialogflow.v2beta1.Participants.BidiStreamingAnalyzeContentCallback): void;

                    /**
                     * Calls BidiStreamingAnalyzeContent.
                     * @param request BidiStreamingAnalyzeContentRequest message or plain object
                     * @returns Promise
                     */
                    public bidiStreamingAnalyzeContent(request: google.cloud.dialogflow.v2beta1.IBidiStreamingAnalyzeContentRequest): Promise<google.cloud.dialogflow.v2beta1.BidiStreamingAnalyzeContentResponse>;

                    /**
                     * Calls SuggestArticles.
                     * @param request SuggestArticlesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and SuggestArticlesResponse
                     */
                    public suggestArticles(request: google.cloud.dialogflow.v2beta1.ISuggestArticlesRequest, callback: google.cloud.dialogflow.v2beta1.Participants.SuggestArticlesCallback): void;

                    /**
                     * Calls SuggestArticles.
                     * @param request SuggestArticlesRequest message or plain object
                     * @returns Promise
                     */
                    public suggestArticles(request: google.cloud.dialogflow.v2beta1.ISuggestArticlesRequest): Promise<google.cloud.dialogflow.v2beta1.SuggestArticlesResponse>;

                    /**
                     * Calls SuggestFaqAnswers.
                     * @param request SuggestFaqAnswersRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and SuggestFaqAnswersResponse
                     */
                    public suggestFaqAnswers(request: google.cloud.dialogflow.v2beta1.ISuggestFaqAnswersRequest, callback: google.cloud.dialogflow.v2beta1.Participants.SuggestFaqAnswersCallback): void;

                    /**
                     * Calls SuggestFaqAnswers.
                     * @param request SuggestFaqAnswersRequest message or plain object
                     * @returns Promise
                     */
                    public suggestFaqAnswers(request: google.cloud.dialogflow.v2beta1.ISuggestFaqAnswersRequest): Promise<google.cloud.dialogflow.v2beta1.SuggestFaqAnswersResponse>;

                    /**
                     * Calls SuggestSmartReplies.
                     * @param request SuggestSmartRepliesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and SuggestSmartRepliesResponse
                     */
                    public suggestSmartReplies(request: google.cloud.dialogflow.v2beta1.ISuggestSmartRepliesRequest, callback: google.cloud.dialogflow.v2beta1.Participants.SuggestSmartRepliesCallback): void;

                    /**
                     * Calls SuggestSmartReplies.
                     * @param request SuggestSmartRepliesRequest message or plain object
                     * @returns Promise
                     */
                    public suggestSmartReplies(request: google.cloud.dialogflow.v2beta1.ISuggestSmartRepliesRequest): Promise<google.cloud.dialogflow.v2beta1.SuggestSmartRepliesResponse>;

                    /**
                     * Calls SuggestKnowledgeAssist.
                     * @param request SuggestKnowledgeAssistRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and SuggestKnowledgeAssistResponse
                     */
                    public suggestKnowledgeAssist(request: google.cloud.dialogflow.v2beta1.ISuggestKnowledgeAssistRequest, callback: google.cloud.dialogflow.v2beta1.Participants.SuggestKnowledgeAssistCallback): void;

                    /**
                     * Calls SuggestKnowledgeAssist.
                     * @param request SuggestKnowledgeAssistRequest message or plain object
                     * @returns Promise
                     */
                    public suggestKnowledgeAssist(request: google.cloud.dialogflow.v2beta1.ISuggestKnowledgeAssistRequest): Promise<google.cloud.dialogflow.v2beta1.SuggestKnowledgeAssistResponse>;

                    /**
                     * Calls ListSuggestions.
                     * @param request ListSuggestionsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ListSuggestionsResponse
                     */
                    public listSuggestions(request: google.cloud.dialogflow.v2beta1.IListSuggestionsRequest, callback: google.cloud.dialogflow.v2beta1.Participants.ListSuggestionsCallback): void;

                    /**
                     * Calls ListSuggestions.
                     * @param request ListSuggestionsRequest message or plain object
                     * @returns Promise
                     */
                    public listSuggestions(request: google.cloud.dialogflow.v2beta1.IListSuggestionsRequest): Promise<google.cloud.dialogflow.v2beta1.ListSuggestionsResponse>;

                    /**
                     * Calls CompileSuggestion.
                     * @param request CompileSuggestionRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and CompileSuggestionResponse
                     */
                    public compileSuggestion(request: google.cloud.dialogflow.v2beta1.ICompileSuggestionRequest, callback: google.cloud.dialogflow.v2beta1.Participants.CompileSuggestionCallback): void;

                    /**
                     * Calls CompileSuggestion.
                     * @param request CompileSuggestionRequest message or plain object
                     * @returns Promise
                     */
                    public compileSuggestion(request: google.cloud.dialogflow.v2beta1.ICompileSuggestionRequest): Promise<google.cloud.dialogflow.v2beta1.CompileSuggestionResponse>;
                }

                namespace Participants {

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2beta1.Participants|createParticipant}.
                     * @param error Error, if any
                     * @param [response] Participant
                     */
                    type CreateParticipantCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2beta1.Participant) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2beta1.Participants|getParticipant}.
                     * @param error Error, if any
                     * @param [response] Participant
                     */
                    type GetParticipantCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2beta1.Participant) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2beta1.Participants|listParticipants}.
                     * @param error Error, if any
                     * @param [response] ListParticipantsResponse
                     */
                    type ListParticipantsCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2beta1.ListParticipantsResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2beta1.Participants|updateParticipant}.
                     * @param error Error, if any
                     * @param [response] Participant
                     */
                    type UpdateParticipantCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2beta1.Participant) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2beta1.Participants|analyzeContent}.
                     * @param error Error, if any
                     * @param [response] AnalyzeContentResponse
                     */
                    type AnalyzeContentCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2beta1.AnalyzeContentResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2beta1.Participants|streamingAnalyzeContent}.
                     * @param error Error, if any
                     * @param [response] StreamingAnalyzeContentResponse
                     */
                    type StreamingAnalyzeContentCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2beta1.StreamingAnalyzeContentResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2beta1.Participants|bidiStreamingAnalyzeContent}.
                     * @param error Error, if any
                     * @param [response] BidiStreamingAnalyzeContentResponse
                     */
                    type BidiStreamingAnalyzeContentCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2beta1.BidiStreamingAnalyzeContentResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2beta1.Participants|suggestArticles}.
                     * @param error Error, if any
                     * @param [response] SuggestArticlesResponse
                     */
                    type SuggestArticlesCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2beta1.SuggestArticlesResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2beta1.Participants|suggestFaqAnswers}.
                     * @param error Error, if any
                     * @param [response] SuggestFaqAnswersResponse
                     */
                    type SuggestFaqAnswersCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2beta1.SuggestFaqAnswersResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2beta1.Participants|suggestSmartReplies}.
                     * @param error Error, if any
                     * @param [response] SuggestSmartRepliesResponse
                     */
                    type SuggestSmartRepliesCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2beta1.SuggestSmartRepliesResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2beta1.Participants|suggestKnowledgeAssist}.
                     * @param error Error, if any
                     * @param [response] SuggestKnowledgeAssistResponse
                     */
                    type SuggestKnowledgeAssistCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2beta1.SuggestKnowledgeAssistResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2beta1.Participants|listSuggestions}.
                     * @param error Error, if any
                     * @param [response] ListSuggestionsResponse
                     */
                    type ListSuggestionsCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2beta1.ListSuggestionsResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2beta1.Participants|compileSuggestion}.
                     * @param error Error, if any
                     * @param [response] CompileSuggestionResponse
                     */
                    type CompileSuggestionCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2beta1.CompileSuggestionResponse) => void;
                }

                /** Properties of a Participant. */
                interface IParticipant {

                    /** Participant name */
                    name?: (string|null);

                    /** Participant role */
                    role?: (google.cloud.dialogflow.v2beta1.Participant.Role|keyof typeof google.cloud.dialogflow.v2beta1.Participant.Role|null);

                    /** Participant obfuscatedExternalUserId */
                    obfuscatedExternalUserId?: (string|null);

                    /** Participant documentsMetadataFilters */
                    documentsMetadataFilters?: ({ [k: string]: string }|null);

                    /** Participant agentDesktopSource */
                    agentDesktopSource?: (google.cloud.dialogflow.v2beta1.Participant.AgentDesktopSource|keyof typeof google.cloud.dialogflow.v2beta1.Participant.AgentDesktopSource|null);
                }

                /** Represents a Participant. */
                class Participant implements IParticipant {

                    /**
                     * Constructs a new Participant.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IParticipant);

                    /** Participant name. */
                    public name: string;

                    /** Participant role. */
                    public role: (google.cloud.dialogflow.v2beta1.Participant.Role|keyof typeof google.cloud.dialogflow.v2beta1.Participant.Role);

                    /** Participant obfuscatedExternalUserId. */
                    public obfuscatedExternalUserId: string;

                    /** Participant documentsMetadataFilters. */
                    public documentsMetadataFilters: { [k: string]: string };

                    /** Participant agentDesktopSource. */
                    public agentDesktopSource: (google.cloud.dialogflow.v2beta1.Participant.AgentDesktopSource|keyof typeof google.cloud.dialogflow.v2beta1.Participant.AgentDesktopSource);

                    /**
                     * Creates a new Participant instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Participant instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IParticipant): google.cloud.dialogflow.v2beta1.Participant;

                    /**
                     * Encodes the specified Participant message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Participant.verify|verify} messages.
                     * @param message Participant message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IParticipant, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Participant message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Participant.verify|verify} messages.
                     * @param message Participant message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IParticipant, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a Participant message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Participant
                     * @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.cloud.dialogflow.v2beta1.Participant;

                    /**
                     * Decodes a Participant message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Participant
                     * @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.cloud.dialogflow.v2beta1.Participant;

                    /**
                     * Verifies a Participant 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 Participant message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Participant
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.Participant;

                    /**
                     * Creates a plain object from a Participant message. Also converts values to other types if specified.
                     * @param message Participant
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.Participant, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Participant to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Participant
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace Participant {

                    /** Role enum. */
                    enum Role {
                        ROLE_UNSPECIFIED = 0,
                        HUMAN_AGENT = 1,
                        AUTOMATED_AGENT = 2,
                        END_USER = 3
                    }

                    /** AgentDesktopSource enum. */
                    enum AgentDesktopSource {
                        AGENT_DESKTOP_SOURCE_UNSPECIFIED = 0,
                        LIVE_PERSON = 1,
                        GENESYS_CLOUD = 2,
                        TWILIO = 3,
                        SALESFORCE = 4,
                        OTHER = 8
                    }
                }

                /** Properties of a Message. */
                interface IMessage {

                    /** Message name */
                    name?: (string|null);

                    /** Message content */
                    content?: (string|null);

                    /** Message responseMessages */
                    responseMessages?: (google.cloud.dialogflow.v2beta1.IResponseMessage[]|null);

                    /** Message languageCode */
                    languageCode?: (string|null);

                    /** Message participant */
                    participant?: (string|null);

                    /** Message participantRole */
                    participantRole?: (google.cloud.dialogflow.v2beta1.Participant.Role|keyof typeof google.cloud.dialogflow.v2beta1.Participant.Role|null);

                    /** Message createTime */
                    createTime?: (google.protobuf.ITimestamp|null);

                    /** Message sendTime */
                    sendTime?: (google.protobuf.ITimestamp|null);

                    /** Message messageAnnotation */
                    messageAnnotation?: (google.cloud.dialogflow.v2beta1.IMessageAnnotation|null);

                    /** Message sentimentAnalysis */
                    sentimentAnalysis?: (google.cloud.dialogflow.v2beta1.ISentimentAnalysisResult|null);
                }

                /** Represents a Message. */
                class Message implements IMessage {

                    /**
                     * Constructs a new Message.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IMessage);

                    /** Message name. */
                    public name: string;

                    /** Message content. */
                    public content: string;

                    /** Message responseMessages. */
                    public responseMessages: google.cloud.dialogflow.v2beta1.IResponseMessage[];

                    /** Message languageCode. */
                    public languageCode: string;

                    /** Message participant. */
                    public participant: string;

                    /** Message participantRole. */
                    public participantRole: (google.cloud.dialogflow.v2beta1.Participant.Role|keyof typeof google.cloud.dialogflow.v2beta1.Participant.Role);

                    /** Message createTime. */
                    public createTime?: (google.protobuf.ITimestamp|null);

                    /** Message sendTime. */
                    public sendTime?: (google.protobuf.ITimestamp|null);

                    /** Message messageAnnotation. */
                    public messageAnnotation?: (google.cloud.dialogflow.v2beta1.IMessageAnnotation|null);

                    /** Message sentimentAnalysis. */
                    public sentimentAnalysis?: (google.cloud.dialogflow.v2beta1.ISentimentAnalysisResult|null);

                    /**
                     * Creates a new Message instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Message instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IMessage): google.cloud.dialogflow.v2beta1.Message;

                    /**
                     * Encodes the specified Message message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Message.verify|verify} messages.
                     * @param message Message message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IMessage, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Message message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Message.verify|verify} messages.
                     * @param message Message message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IMessage, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a Message message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Message
                     * @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.cloud.dialogflow.v2beta1.Message;

                    /**
                     * Decodes a Message message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Message
                     * @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.cloud.dialogflow.v2beta1.Message;

                    /**
                     * Verifies a Message 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 Message message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Message
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.Message;

                    /**
                     * Creates a plain object from a Message message. Also converts values to other types if specified.
                     * @param message Message
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.Message, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Message to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Message
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a CreateParticipantRequest. */
                interface ICreateParticipantRequest {

                    /** CreateParticipantRequest parent */
                    parent?: (string|null);

                    /** CreateParticipantRequest participant */
                    participant?: (google.cloud.dialogflow.v2beta1.IParticipant|null);
                }

                /** Represents a CreateParticipantRequest. */
                class CreateParticipantRequest implements ICreateParticipantRequest {

                    /**
                     * Constructs a new CreateParticipantRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.ICreateParticipantRequest);

                    /** CreateParticipantRequest parent. */
                    public parent: string;

                    /** CreateParticipantRequest participant. */
                    public participant?: (google.cloud.dialogflow.v2beta1.IParticipant|null);

                    /**
                     * Creates a new CreateParticipantRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CreateParticipantRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.ICreateParticipantRequest): google.cloud.dialogflow.v2beta1.CreateParticipantRequest;

                    /**
                     * Encodes the specified CreateParticipantRequest message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.CreateParticipantRequest.verify|verify} messages.
                     * @param message CreateParticipantRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.ICreateParticipantRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CreateParticipantRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.CreateParticipantRequest.verify|verify} messages.
                     * @param message CreateParticipantRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.ICreateParticipantRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CreateParticipantRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CreateParticipantRequest
                     * @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.cloud.dialogflow.v2beta1.CreateParticipantRequest;

                    /**
                     * Decodes a CreateParticipantRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CreateParticipantRequest
                     * @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.cloud.dialogflow.v2beta1.CreateParticipantRequest;

                    /**
                     * Verifies a CreateParticipantRequest 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 CreateParticipantRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CreateParticipantRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.CreateParticipantRequest;

                    /**
                     * Creates a plain object from a CreateParticipantRequest message. Also converts values to other types if specified.
                     * @param message CreateParticipantRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.CreateParticipantRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CreateParticipantRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CreateParticipantRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetParticipantRequest. */
                interface IGetParticipantRequest {

                    /** GetParticipantRequest name */
                    name?: (string|null);
                }

                /** Represents a GetParticipantRequest. */
                class GetParticipantRequest implements IGetParticipantRequest {

                    /**
                     * Constructs a new GetParticipantRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IGetParticipantRequest);

                    /** GetParticipantRequest name. */
                    public name: string;

                    /**
                     * Creates a new GetParticipantRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetParticipantRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IGetParticipantRequest): google.cloud.dialogflow.v2beta1.GetParticipantRequest;

                    /**
                     * Encodes the specified GetParticipantRequest message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.GetParticipantRequest.verify|verify} messages.
                     * @param message GetParticipantRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IGetParticipantRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetParticipantRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.GetParticipantRequest.verify|verify} messages.
                     * @param message GetParticipantRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IGetParticipantRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetParticipantRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetParticipantRequest
                     * @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.cloud.dialogflow.v2beta1.GetParticipantRequest;

                    /**
                     * Decodes a GetParticipantRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetParticipantRequest
                     * @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.cloud.dialogflow.v2beta1.GetParticipantRequest;

                    /**
                     * Verifies a GetParticipantRequest 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 GetParticipantRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetParticipantRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.GetParticipantRequest;

                    /**
                     * Creates a plain object from a GetParticipantRequest message. Also converts values to other types if specified.
                     * @param message GetParticipantRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.GetParticipantRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetParticipantRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetParticipantRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListParticipantsRequest. */
                interface IListParticipantsRequest {

                    /** ListParticipantsRequest parent */
                    parent?: (string|null);

                    /** ListParticipantsRequest pageSize */
                    pageSize?: (number|null);

                    /** ListParticipantsRequest pageToken */
                    pageToken?: (string|null);
                }

                /** Represents a ListParticipantsRequest. */
                class ListParticipantsRequest implements IListParticipantsRequest {

                    /**
                     * Constructs a new ListParticipantsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IListParticipantsRequest);

                    /** ListParticipantsRequest parent. */
                    public parent: string;

                    /** ListParticipantsRequest pageSize. */
                    public pageSize: number;

                    /** ListParticipantsRequest pageToken. */
                    public pageToken: string;

                    /**
                     * Creates a new ListParticipantsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListParticipantsRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IListParticipantsRequest): google.cloud.dialogflow.v2beta1.ListParticipantsRequest;

                    /**
                     * Encodes the specified ListParticipantsRequest message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.ListParticipantsRequest.verify|verify} messages.
                     * @param message ListParticipantsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IListParticipantsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListParticipantsRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.ListParticipantsRequest.verify|verify} messages.
                     * @param message ListParticipantsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IListParticipantsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListParticipantsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListParticipantsRequest
                     * @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.cloud.dialogflow.v2beta1.ListParticipantsRequest;

                    /**
                     * Decodes a ListParticipantsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListParticipantsRequest
                     * @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.cloud.dialogflow.v2beta1.ListParticipantsRequest;

                    /**
                     * Verifies a ListParticipantsRequest 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 ListParticipantsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListParticipantsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.ListParticipantsRequest;

                    /**
                     * Creates a plain object from a ListParticipantsRequest message. Also converts values to other types if specified.
                     * @param message ListParticipantsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.ListParticipantsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListParticipantsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListParticipantsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListParticipantsResponse. */
                interface IListParticipantsResponse {

                    /** ListParticipantsResponse participants */
                    participants?: (google.cloud.dialogflow.v2beta1.IParticipant[]|null);

                    /** ListParticipantsResponse nextPageToken */
                    nextPageToken?: (string|null);
                }

                /** Represents a ListParticipantsResponse. */
                class ListParticipantsResponse implements IListParticipantsResponse {

                    /**
                     * Constructs a new ListParticipantsResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IListParticipantsResponse);

                    /** ListParticipantsResponse participants. */
                    public participants: google.cloud.dialogflow.v2beta1.IParticipant[];

                    /** ListParticipantsResponse nextPageToken. */
                    public nextPageToken: string;

                    /**
                     * Creates a new ListParticipantsResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListParticipantsResponse instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IListParticipantsResponse): google.cloud.dialogflow.v2beta1.ListParticipantsResponse;

                    /**
                     * Encodes the specified ListParticipantsResponse message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.ListParticipantsResponse.verify|verify} messages.
                     * @param message ListParticipantsResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IListParticipantsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListParticipantsResponse message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.ListParticipantsResponse.verify|verify} messages.
                     * @param message ListParticipantsResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IListParticipantsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListParticipantsResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListParticipantsResponse
                     * @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.cloud.dialogflow.v2beta1.ListParticipantsResponse;

                    /**
                     * Decodes a ListParticipantsResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListParticipantsResponse
                     * @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.cloud.dialogflow.v2beta1.ListParticipantsResponse;

                    /**
                     * Verifies a ListParticipantsResponse 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 ListParticipantsResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListParticipantsResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.ListParticipantsResponse;

                    /**
                     * Creates a plain object from a ListParticipantsResponse message. Also converts values to other types if specified.
                     * @param message ListParticipantsResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.ListParticipantsResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListParticipantsResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListParticipantsResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an UpdateParticipantRequest. */
                interface IUpdateParticipantRequest {

                    /** UpdateParticipantRequest participant */
                    participant?: (google.cloud.dialogflow.v2beta1.IParticipant|null);

                    /** UpdateParticipantRequest updateMask */
                    updateMask?: (google.protobuf.IFieldMask|null);
                }

                /** Represents an UpdateParticipantRequest. */
                class UpdateParticipantRequest implements IUpdateParticipantRequest {

                    /**
                     * Constructs a new UpdateParticipantRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IUpdateParticipantRequest);

                    /** UpdateParticipantRequest participant. */
                    public participant?: (google.cloud.dialogflow.v2beta1.IParticipant|null);

                    /** UpdateParticipantRequest updateMask. */
                    public updateMask?: (google.protobuf.IFieldMask|null);

                    /**
                     * Creates a new UpdateParticipantRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UpdateParticipantRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IUpdateParticipantRequest): google.cloud.dialogflow.v2beta1.UpdateParticipantRequest;

                    /**
                     * Encodes the specified UpdateParticipantRequest message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.UpdateParticipantRequest.verify|verify} messages.
                     * @param message UpdateParticipantRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IUpdateParticipantRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified UpdateParticipantRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.UpdateParticipantRequest.verify|verify} messages.
                     * @param message UpdateParticipantRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IUpdateParticipantRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an UpdateParticipantRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns UpdateParticipantRequest
                     * @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.cloud.dialogflow.v2beta1.UpdateParticipantRequest;

                    /**
                     * Decodes an UpdateParticipantRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns UpdateParticipantRequest
                     * @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.cloud.dialogflow.v2beta1.UpdateParticipantRequest;

                    /**
                     * Verifies an UpdateParticipantRequest 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 UpdateParticipantRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UpdateParticipantRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.UpdateParticipantRequest;

                    /**
                     * Creates a plain object from an UpdateParticipantRequest message. Also converts values to other types if specified.
                     * @param message UpdateParticipantRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.UpdateParticipantRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this UpdateParticipantRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for UpdateParticipantRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AudioInput. */
                interface IAudioInput {

                    /** AudioInput config */
                    config?: (google.cloud.dialogflow.v2beta1.IInputAudioConfig|null);

                    /** AudioInput audio */
                    audio?: (Uint8Array|Buffer|string|null);
                }

                /** Represents an AudioInput. */
                class AudioInput implements IAudioInput {

                    /**
                     * Constructs a new AudioInput.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IAudioInput);

                    /** AudioInput config. */
                    public config?: (google.cloud.dialogflow.v2beta1.IInputAudioConfig|null);

                    /** AudioInput audio. */
                    public audio: (Uint8Array|Buffer|string);

                    /**
                     * Creates a new AudioInput instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AudioInput instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IAudioInput): google.cloud.dialogflow.v2beta1.AudioInput;

                    /**
                     * Encodes the specified AudioInput message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.AudioInput.verify|verify} messages.
                     * @param message AudioInput message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IAudioInput, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AudioInput message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.AudioInput.verify|verify} messages.
                     * @param message AudioInput message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IAudioInput, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AudioInput message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AudioInput
                     * @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.cloud.dialogflow.v2beta1.AudioInput;

                    /**
                     * Decodes an AudioInput message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AudioInput
                     * @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.cloud.dialogflow.v2beta1.AudioInput;

                    /**
                     * Verifies an AudioInput 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 AudioInput message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AudioInput
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.AudioInput;

                    /**
                     * Creates a plain object from an AudioInput message. Also converts values to other types if specified.
                     * @param message AudioInput
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.AudioInput, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AudioInput to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AudioInput
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an OutputAudio. */
                interface IOutputAudio {

                    /** OutputAudio config */
                    config?: (google.cloud.dialogflow.v2beta1.IOutputAudioConfig|null);

                    /** OutputAudio audio */
                    audio?: (Uint8Array|Buffer|string|null);
                }

                /** Represents an OutputAudio. */
                class OutputAudio implements IOutputAudio {

                    /**
                     * Constructs a new OutputAudio.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IOutputAudio);

                    /** OutputAudio config. */
                    public config?: (google.cloud.dialogflow.v2beta1.IOutputAudioConfig|null);

                    /** OutputAudio audio. */
                    public audio: (Uint8Array|Buffer|string);

                    /**
                     * Creates a new OutputAudio instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns OutputAudio instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IOutputAudio): google.cloud.dialogflow.v2beta1.OutputAudio;

                    /**
                     * Encodes the specified OutputAudio message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.OutputAudio.verify|verify} messages.
                     * @param message OutputAudio message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IOutputAudio, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified OutputAudio message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.OutputAudio.verify|verify} messages.
                     * @param message OutputAudio message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IOutputAudio, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an OutputAudio message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns OutputAudio
                     * @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.cloud.dialogflow.v2beta1.OutputAudio;

                    /**
                     * Decodes an OutputAudio message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns OutputAudio
                     * @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.cloud.dialogflow.v2beta1.OutputAudio;

                    /**
                     * Verifies an OutputAudio 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 OutputAudio message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns OutputAudio
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.OutputAudio;

                    /**
                     * Creates a plain object from an OutputAudio message. Also converts values to other types if specified.
                     * @param message OutputAudio
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.OutputAudio, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this OutputAudio to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for OutputAudio
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AutomatedAgentReply. */
                interface IAutomatedAgentReply {

                    /** AutomatedAgentReply detectIntentResponse */
                    detectIntentResponse?: (google.cloud.dialogflow.v2beta1.IDetectIntentResponse|null);

                    /** AutomatedAgentReply responseMessages */
                    responseMessages?: (google.cloud.dialogflow.v2beta1.IResponseMessage[]|null);

                    /** AutomatedAgentReply intent */
                    intent?: (string|null);

                    /** AutomatedAgentReply event */
                    event?: (string|null);

                    /** AutomatedAgentReply matchConfidence */
                    matchConfidence?: (number|null);

                    /** AutomatedAgentReply parameters */
                    parameters?: (google.protobuf.IStruct|null);

                    /** AutomatedAgentReply cxSessionParameters */
                    cxSessionParameters?: (google.protobuf.IStruct|null);

                    /** AutomatedAgentReply automatedAgentReplyType */
                    automatedAgentReplyType?: (google.cloud.dialogflow.v2beta1.AutomatedAgentReply.AutomatedAgentReplyType|keyof typeof google.cloud.dialogflow.v2beta1.AutomatedAgentReply.AutomatedAgentReplyType|null);

                    /** AutomatedAgentReply allowCancellation */
                    allowCancellation?: (boolean|null);

                    /** AutomatedAgentReply cxCurrentPage */
                    cxCurrentPage?: (string|null);

                    /** AutomatedAgentReply callCompanionAuthCode */
                    callCompanionAuthCode?: (Uint8Array|Buffer|string|null);
                }

                /** Represents an AutomatedAgentReply. */
                class AutomatedAgentReply implements IAutomatedAgentReply {

                    /**
                     * Constructs a new AutomatedAgentReply.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IAutomatedAgentReply);

                    /** AutomatedAgentReply detectIntentResponse. */
                    public detectIntentResponse?: (google.cloud.dialogflow.v2beta1.IDetectIntentResponse|null);

                    /** AutomatedAgentReply responseMessages. */
                    public responseMessages: google.cloud.dialogflow.v2beta1.IResponseMessage[];

                    /** AutomatedAgentReply intent. */
                    public intent?: (string|null);

                    /** AutomatedAgentReply event. */
                    public event?: (string|null);

                    /** AutomatedAgentReply matchConfidence. */
                    public matchConfidence: number;

                    /** AutomatedAgentReply parameters. */
                    public parameters?: (google.protobuf.IStruct|null);

                    /** AutomatedAgentReply cxSessionParameters. */
                    public cxSessionParameters?: (google.protobuf.IStruct|null);

                    /** AutomatedAgentReply automatedAgentReplyType. */
                    public automatedAgentReplyType: (google.cloud.dialogflow.v2beta1.AutomatedAgentReply.AutomatedAgentReplyType|keyof typeof google.cloud.dialogflow.v2beta1.AutomatedAgentReply.AutomatedAgentReplyType);

                    /** AutomatedAgentReply allowCancellation. */
                    public allowCancellation: boolean;

                    /** AutomatedAgentReply cxCurrentPage. */
                    public cxCurrentPage: string;

                    /** AutomatedAgentReply callCompanionAuthCode. */
                    public callCompanionAuthCode: (Uint8Array|Buffer|string);

                    /** AutomatedAgentReply response. */
                    public response?: "detectIntentResponse";

                    /** AutomatedAgentReply match. */
                    public match?: ("intent"|"event");

                    /**
                     * Creates a new AutomatedAgentReply instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AutomatedAgentReply instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IAutomatedAgentReply): google.cloud.dialogflow.v2beta1.AutomatedAgentReply;

                    /**
                     * Encodes the specified AutomatedAgentReply message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.AutomatedAgentReply.verify|verify} messages.
                     * @param message AutomatedAgentReply message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IAutomatedAgentReply, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AutomatedAgentReply message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.AutomatedAgentReply.verify|verify} messages.
                     * @param message AutomatedAgentReply message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IAutomatedAgentReply, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AutomatedAgentReply message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AutomatedAgentReply
                     * @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.cloud.dialogflow.v2beta1.AutomatedAgentReply;

                    /**
                     * Decodes an AutomatedAgentReply message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AutomatedAgentReply
                     * @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.cloud.dialogflow.v2beta1.AutomatedAgentReply;

                    /**
                     * Verifies an AutomatedAgentReply 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 AutomatedAgentReply message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AutomatedAgentReply
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.AutomatedAgentReply;

                    /**
                     * Creates a plain object from an AutomatedAgentReply message. Also converts values to other types if specified.
                     * @param message AutomatedAgentReply
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.AutomatedAgentReply, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AutomatedAgentReply to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AutomatedAgentReply
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace AutomatedAgentReply {

                    /** AutomatedAgentReplyType enum. */
                    enum AutomatedAgentReplyType {
                        AUTOMATED_AGENT_REPLY_TYPE_UNSPECIFIED = 0,
                        PARTIAL = 1,
                        FINAL = 2
                    }
                }

                /** Properties of a SuggestionInput. */
                interface ISuggestionInput {

                    /** SuggestionInput answerRecord */
                    answerRecord?: (string|null);

                    /** SuggestionInput textOverride */
                    textOverride?: (google.cloud.dialogflow.v2beta1.ITextInput|null);

                    /** SuggestionInput parameters */
                    parameters?: (google.protobuf.IStruct|null);

                    /** SuggestionInput action */
                    action?: (google.cloud.dialogflow.v2beta1.SuggestionInput.Action|keyof typeof google.cloud.dialogflow.v2beta1.SuggestionInput.Action|null);

                    /** SuggestionInput intentInput */
                    intentInput?: (google.cloud.dialogflow.v2beta1.IIntentInput|null);

                    /** SuggestionInput sendTime */
                    sendTime?: (google.protobuf.ITimestamp|null);
                }

                /** Represents a SuggestionInput. */
                class SuggestionInput implements ISuggestionInput {

                    /**
                     * Constructs a new SuggestionInput.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.ISuggestionInput);

                    /** SuggestionInput answerRecord. */
                    public answerRecord: string;

                    /** SuggestionInput textOverride. */
                    public textOverride?: (google.cloud.dialogflow.v2beta1.ITextInput|null);

                    /** SuggestionInput parameters. */
                    public parameters?: (google.protobuf.IStruct|null);

                    /** SuggestionInput action. */
                    public action: (google.cloud.dialogflow.v2beta1.SuggestionInput.Action|keyof typeof google.cloud.dialogflow.v2beta1.SuggestionInput.Action);

                    /** SuggestionInput intentInput. */
                    public intentInput?: (google.cloud.dialogflow.v2beta1.IIntentInput|null);

                    /** SuggestionInput sendTime. */
                    public sendTime?: (google.protobuf.ITimestamp|null);

                    /**
                     * Creates a new SuggestionInput instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SuggestionInput instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.ISuggestionInput): google.cloud.dialogflow.v2beta1.SuggestionInput;

                    /**
                     * Encodes the specified SuggestionInput message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.SuggestionInput.verify|verify} messages.
                     * @param message SuggestionInput message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.ISuggestionInput, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SuggestionInput message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.SuggestionInput.verify|verify} messages.
                     * @param message SuggestionInput message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.ISuggestionInput, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SuggestionInput message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SuggestionInput
                     * @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.cloud.dialogflow.v2beta1.SuggestionInput;

                    /**
                     * Decodes a SuggestionInput message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SuggestionInput
                     * @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.cloud.dialogflow.v2beta1.SuggestionInput;

                    /**
                     * Verifies a SuggestionInput 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 SuggestionInput message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SuggestionInput
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.SuggestionInput;

                    /**
                     * Creates a plain object from a SuggestionInput message. Also converts values to other types if specified.
                     * @param message SuggestionInput
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.SuggestionInput, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SuggestionInput to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SuggestionInput
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace SuggestionInput {

                    /** Action enum. */
                    enum Action {
                        ACTION_UNSPECIFIED = 0,
                        CANCEL = 1,
                        REVISE = 2,
                        CONFIRM = 3
                    }
                }

                /** Properties of an IntentInput. */
                interface IIntentInput {

                    /** IntentInput intent */
                    intent?: (string|null);

                    /** IntentInput languageCode */
                    languageCode?: (string|null);
                }

                /** Represents an IntentInput. */
                class IntentInput implements IIntentInput {

                    /**
                     * Constructs a new IntentInput.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IIntentInput);

                    /** IntentInput intent. */
                    public intent: string;

                    /** IntentInput languageCode. */
                    public languageCode: string;

                    /**
                     * Creates a new IntentInput instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns IntentInput instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IIntentInput): google.cloud.dialogflow.v2beta1.IntentInput;

                    /**
                     * Encodes the specified IntentInput message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.IntentInput.verify|verify} messages.
                     * @param message IntentInput message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IIntentInput, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified IntentInput message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.IntentInput.verify|verify} messages.
                     * @param message IntentInput message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IIntentInput, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an IntentInput message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns IntentInput
                     * @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.cloud.dialogflow.v2beta1.IntentInput;

                    /**
                     * Decodes an IntentInput message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns IntentInput
                     * @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.cloud.dialogflow.v2beta1.IntentInput;

                    /**
                     * Verifies an IntentInput 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 IntentInput message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns IntentInput
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.IntentInput;

                    /**
                     * Creates a plain object from an IntentInput message. Also converts values to other types if specified.
                     * @param message IntentInput
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.IntentInput, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this IntentInput to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for IntentInput
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SuggestionFeature. */
                interface ISuggestionFeature {

                    /** SuggestionFeature type */
                    type?: (google.cloud.dialogflow.v2beta1.SuggestionFeature.Type|keyof typeof google.cloud.dialogflow.v2beta1.SuggestionFeature.Type|null);
                }

                /** Represents a SuggestionFeature. */
                class SuggestionFeature implements ISuggestionFeature {

                    /**
                     * Constructs a new SuggestionFeature.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.ISuggestionFeature);

                    /** SuggestionFeature type. */
                    public type: (google.cloud.dialogflow.v2beta1.SuggestionFeature.Type|keyof typeof google.cloud.dialogflow.v2beta1.SuggestionFeature.Type);

                    /**
                     * Creates a new SuggestionFeature instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SuggestionFeature instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.ISuggestionFeature): google.cloud.dialogflow.v2beta1.SuggestionFeature;

                    /**
                     * Encodes the specified SuggestionFeature message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.SuggestionFeature.verify|verify} messages.
                     * @param message SuggestionFeature message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.ISuggestionFeature, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SuggestionFeature message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.SuggestionFeature.verify|verify} messages.
                     * @param message SuggestionFeature message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.ISuggestionFeature, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SuggestionFeature message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SuggestionFeature
                     * @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.cloud.dialogflow.v2beta1.SuggestionFeature;

                    /**
                     * Decodes a SuggestionFeature message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SuggestionFeature
                     * @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.cloud.dialogflow.v2beta1.SuggestionFeature;

                    /**
                     * Verifies a SuggestionFeature 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 SuggestionFeature message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SuggestionFeature
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.SuggestionFeature;

                    /**
                     * Creates a plain object from a SuggestionFeature message. Also converts values to other types if specified.
                     * @param message SuggestionFeature
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.SuggestionFeature, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SuggestionFeature to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SuggestionFeature
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace SuggestionFeature {

                    /** Type enum. */
                    enum Type {
                        TYPE_UNSPECIFIED = 0,
                        ARTICLE_SUGGESTION = 1,
                        FAQ = 2,
                        SMART_REPLY = 3,
                        DIALOGFLOW_ASSIST = 4,
                        CONVERSATION_SUMMARIZATION = 8,
                        KNOWLEDGE_SEARCH = 14,
                        KNOWLEDGE_ASSIST = 15
                    }
                }

                /** Properties of an AssistQueryParameters. */
                interface IAssistQueryParameters {

                    /** AssistQueryParameters documentsMetadataFilters */
                    documentsMetadataFilters?: ({ [k: string]: string }|null);
                }

                /** Represents an AssistQueryParameters. */
                class AssistQueryParameters implements IAssistQueryParameters {

                    /**
                     * Constructs a new AssistQueryParameters.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IAssistQueryParameters);

                    /** AssistQueryParameters documentsMetadataFilters. */
                    public documentsMetadataFilters: { [k: string]: string };

                    /**
                     * Creates a new AssistQueryParameters instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AssistQueryParameters instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IAssistQueryParameters): google.cloud.dialogflow.v2beta1.AssistQueryParameters;

                    /**
                     * Encodes the specified AssistQueryParameters message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.AssistQueryParameters.verify|verify} messages.
                     * @param message AssistQueryParameters message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IAssistQueryParameters, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AssistQueryParameters message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.AssistQueryParameters.verify|verify} messages.
                     * @param message AssistQueryParameters message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IAssistQueryParameters, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AssistQueryParameters message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AssistQueryParameters
                     * @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.cloud.dialogflow.v2beta1.AssistQueryParameters;

                    /**
                     * Decodes an AssistQueryParameters message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AssistQueryParameters
                     * @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.cloud.dialogflow.v2beta1.AssistQueryParameters;

                    /**
                     * Verifies an AssistQueryParameters 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 AssistQueryParameters message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AssistQueryParameters
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.AssistQueryParameters;

                    /**
                     * Creates a plain object from an AssistQueryParameters message. Also converts values to other types if specified.
                     * @param message AssistQueryParameters
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.AssistQueryParameters, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AssistQueryParameters to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AssistQueryParameters
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AnalyzeContentRequest. */
                interface IAnalyzeContentRequest {

                    /** AnalyzeContentRequest participant */
                    participant?: (string|null);

                    /** AnalyzeContentRequest textInput */
                    textInput?: (google.cloud.dialogflow.v2beta1.ITextInput|null);

                    /** AnalyzeContentRequest audioInput */
                    audioInput?: (google.cloud.dialogflow.v2beta1.IAudioInput|null);

                    /** AnalyzeContentRequest eventInput */
                    eventInput?: (google.cloud.dialogflow.v2beta1.IEventInput|null);

                    /** AnalyzeContentRequest suggestionInput */
                    suggestionInput?: (google.cloud.dialogflow.v2beta1.ISuggestionInput|null);

                    /** AnalyzeContentRequest intentInput */
                    intentInput?: (google.cloud.dialogflow.v2beta1.IIntentInput|null);

                    /** AnalyzeContentRequest replyAudioConfig */
                    replyAudioConfig?: (google.cloud.dialogflow.v2beta1.IOutputAudioConfig|null);

                    /** AnalyzeContentRequest queryParams */
                    queryParams?: (google.cloud.dialogflow.v2beta1.IQueryParameters|null);

                    /** AnalyzeContentRequest assistQueryParams */
                    assistQueryParams?: (google.cloud.dialogflow.v2beta1.IAssistQueryParameters|null);

                    /** AnalyzeContentRequest cxParameters */
                    cxParameters?: (google.protobuf.IStruct|null);

                    /** AnalyzeContentRequest cxCurrentPage */
                    cxCurrentPage?: (string|null);

                    /** AnalyzeContentRequest messageSendTime */
                    messageSendTime?: (google.protobuf.ITimestamp|null);

                    /** AnalyzeContentRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an AnalyzeContentRequest. */
                class AnalyzeContentRequest implements IAnalyzeContentRequest {

                    /**
                     * Constructs a new AnalyzeContentRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IAnalyzeContentRequest);

                    /** AnalyzeContentRequest participant. */
                    public participant: string;

                    /** AnalyzeContentRequest textInput. */
                    public textInput?: (google.cloud.dialogflow.v2beta1.ITextInput|null);

                    /** AnalyzeContentRequest audioInput. */
                    public audioInput?: (google.cloud.dialogflow.v2beta1.IAudioInput|null);

                    /** AnalyzeContentRequest eventInput. */
                    public eventInput?: (google.cloud.dialogflow.v2beta1.IEventInput|null);

                    /** AnalyzeContentRequest suggestionInput. */
                    public suggestionInput?: (google.cloud.dialogflow.v2beta1.ISuggestionInput|null);

                    /** AnalyzeContentRequest intentInput. */
                    public intentInput?: (google.cloud.dialogflow.v2beta1.IIntentInput|null);

                    /** AnalyzeContentRequest replyAudioConfig. */
                    public replyAudioConfig?: (google.cloud.dialogflow.v2beta1.IOutputAudioConfig|null);

                    /** AnalyzeContentRequest queryParams. */
                    public queryParams?: (google.cloud.dialogflow.v2beta1.IQueryParameters|null);

                    /** AnalyzeContentRequest assistQueryParams. */
                    public assistQueryParams?: (google.cloud.dialogflow.v2beta1.IAssistQueryParameters|null);

                    /** AnalyzeContentRequest cxParameters. */
                    public cxParameters?: (google.protobuf.IStruct|null);

                    /** AnalyzeContentRequest cxCurrentPage. */
                    public cxCurrentPage: string;

                    /** AnalyzeContentRequest messageSendTime. */
                    public messageSendTime?: (google.protobuf.ITimestamp|null);

                    /** AnalyzeContentRequest requestId. */
                    public requestId: string;

                    /** AnalyzeContentRequest input. */
                    public input?: ("textInput"|"audioInput"|"eventInput"|"suggestionInput"|"intentInput");

                    /**
                     * Creates a new AnalyzeContentRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AnalyzeContentRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IAnalyzeContentRequest): google.cloud.dialogflow.v2beta1.AnalyzeContentRequest;

                    /**
                     * Encodes the specified AnalyzeContentRequest message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.AnalyzeContentRequest.verify|verify} messages.
                     * @param message AnalyzeContentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IAnalyzeContentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AnalyzeContentRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.AnalyzeContentRequest.verify|verify} messages.
                     * @param message AnalyzeContentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IAnalyzeContentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AnalyzeContentRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AnalyzeContentRequest
                     * @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.cloud.dialogflow.v2beta1.AnalyzeContentRequest;

                    /**
                     * Decodes an AnalyzeContentRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AnalyzeContentRequest
                     * @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.cloud.dialogflow.v2beta1.AnalyzeContentRequest;

                    /**
                     * Verifies an AnalyzeContentRequest 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 AnalyzeContentRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AnalyzeContentRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.AnalyzeContentRequest;

                    /**
                     * Creates a plain object from an AnalyzeContentRequest message. Also converts values to other types if specified.
                     * @param message AnalyzeContentRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.AnalyzeContentRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AnalyzeContentRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AnalyzeContentRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DtmfParameters. */
                interface IDtmfParameters {

                    /** DtmfParameters acceptsDtmfInput */
                    acceptsDtmfInput?: (boolean|null);
                }

                /** Represents a DtmfParameters. */
                class DtmfParameters implements IDtmfParameters {

                    /**
                     * Constructs a new DtmfParameters.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IDtmfParameters);

                    /** DtmfParameters acceptsDtmfInput. */
                    public acceptsDtmfInput: boolean;

                    /**
                     * Creates a new DtmfParameters instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DtmfParameters instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IDtmfParameters): google.cloud.dialogflow.v2beta1.DtmfParameters;

                    /**
                     * Encodes the specified DtmfParameters message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.DtmfParameters.verify|verify} messages.
                     * @param message DtmfParameters message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IDtmfParameters, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DtmfParameters message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.DtmfParameters.verify|verify} messages.
                     * @param message DtmfParameters message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IDtmfParameters, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DtmfParameters message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DtmfParameters
                     * @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.cloud.dialogflow.v2beta1.DtmfParameters;

                    /**
                     * Decodes a DtmfParameters message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DtmfParameters
                     * @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.cloud.dialogflow.v2beta1.DtmfParameters;

                    /**
                     * Verifies a DtmfParameters 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 DtmfParameters message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DtmfParameters
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.DtmfParameters;

                    /**
                     * Creates a plain object from a DtmfParameters message. Also converts values to other types if specified.
                     * @param message DtmfParameters
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.DtmfParameters, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DtmfParameters to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DtmfParameters
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AnalyzeContentResponse. */
                interface IAnalyzeContentResponse {

                    /** AnalyzeContentResponse replyText */
                    replyText?: (string|null);

                    /** AnalyzeContentResponse replyAudio */
                    replyAudio?: (google.cloud.dialogflow.v2beta1.IOutputAudio|null);

                    /** AnalyzeContentResponse automatedAgentReply */
                    automatedAgentReply?: (google.cloud.dialogflow.v2beta1.IAutomatedAgentReply|null);

                    /** AnalyzeContentResponse message */
                    message?: (google.cloud.dialogflow.v2beta1.IMessage|null);

                    /** AnalyzeContentResponse humanAgentSuggestionResults */
                    humanAgentSuggestionResults?: (google.cloud.dialogflow.v2beta1.ISuggestionResult[]|null);

                    /** AnalyzeContentResponse endUserSuggestionResults */
                    endUserSuggestionResults?: (google.cloud.dialogflow.v2beta1.ISuggestionResult[]|null);

                    /** AnalyzeContentResponse dtmfParameters */
                    dtmfParameters?: (google.cloud.dialogflow.v2beta1.IDtmfParameters|null);
                }

                /** Represents an AnalyzeContentResponse. */
                class AnalyzeContentResponse implements IAnalyzeContentResponse {

                    /**
                     * Constructs a new AnalyzeContentResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IAnalyzeContentResponse);

                    /** AnalyzeContentResponse replyText. */
                    public replyText: string;

                    /** AnalyzeContentResponse replyAudio. */
                    public replyAudio?: (google.cloud.dialogflow.v2beta1.IOutputAudio|null);

                    /** AnalyzeContentResponse automatedAgentReply. */
                    public automatedAgentReply?: (google.cloud.dialogflow.v2beta1.IAutomatedAgentReply|null);

                    /** AnalyzeContentResponse message. */
                    public message?: (google.cloud.dialogflow.v2beta1.IMessage|null);

                    /** AnalyzeContentResponse humanAgentSuggestionResults. */
                    public humanAgentSuggestionResults: google.cloud.dialogflow.v2beta1.ISuggestionResult[];

                    /** AnalyzeContentResponse endUserSuggestionResults. */
                    public endUserSuggestionResults: google.cloud.dialogflow.v2beta1.ISuggestionResult[];

                    /** AnalyzeContentResponse dtmfParameters. */
                    public dtmfParameters?: (google.cloud.dialogflow.v2beta1.IDtmfParameters|null);

                    /**
                     * Creates a new AnalyzeContentResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AnalyzeContentResponse instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IAnalyzeContentResponse): google.cloud.dialogflow.v2beta1.AnalyzeContentResponse;

                    /**
                     * Encodes the specified AnalyzeContentResponse message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.AnalyzeContentResponse.verify|verify} messages.
                     * @param message AnalyzeContentResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IAnalyzeContentResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AnalyzeContentResponse message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.AnalyzeContentResponse.verify|verify} messages.
                     * @param message AnalyzeContentResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IAnalyzeContentResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AnalyzeContentResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AnalyzeContentResponse
                     * @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.cloud.dialogflow.v2beta1.AnalyzeContentResponse;

                    /**
                     * Decodes an AnalyzeContentResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AnalyzeContentResponse
                     * @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.cloud.dialogflow.v2beta1.AnalyzeContentResponse;

                    /**
                     * Verifies an AnalyzeContentResponse 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 AnalyzeContentResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AnalyzeContentResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.AnalyzeContentResponse;

                    /**
                     * Creates a plain object from an AnalyzeContentResponse message. Also converts values to other types if specified.
                     * @param message AnalyzeContentResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.AnalyzeContentResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AnalyzeContentResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AnalyzeContentResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InputTextConfig. */
                interface IInputTextConfig {

                    /** InputTextConfig languageCode */
                    languageCode?: (string|null);
                }

                /** Represents an InputTextConfig. */
                class InputTextConfig implements IInputTextConfig {

                    /**
                     * Constructs a new InputTextConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IInputTextConfig);

                    /** InputTextConfig languageCode. */
                    public languageCode: string;

                    /**
                     * Creates a new InputTextConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InputTextConfig instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IInputTextConfig): google.cloud.dialogflow.v2beta1.InputTextConfig;

                    /**
                     * Encodes the specified InputTextConfig message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.InputTextConfig.verify|verify} messages.
                     * @param message InputTextConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IInputTextConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InputTextConfig message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.InputTextConfig.verify|verify} messages.
                     * @param message InputTextConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IInputTextConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InputTextConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InputTextConfig
                     * @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.cloud.dialogflow.v2beta1.InputTextConfig;

                    /**
                     * Decodes an InputTextConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InputTextConfig
                     * @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.cloud.dialogflow.v2beta1.InputTextConfig;

                    /**
                     * Verifies an InputTextConfig 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 InputTextConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InputTextConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.InputTextConfig;

                    /**
                     * Creates a plain object from an InputTextConfig message. Also converts values to other types if specified.
                     * @param message InputTextConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.InputTextConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InputTextConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InputTextConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a StreamingAnalyzeContentRequest. */
                interface IStreamingAnalyzeContentRequest {

                    /** StreamingAnalyzeContentRequest participant */
                    participant?: (string|null);

                    /** StreamingAnalyzeContentRequest audioConfig */
                    audioConfig?: (google.cloud.dialogflow.v2beta1.IInputAudioConfig|null);

                    /** StreamingAnalyzeContentRequest textConfig */
                    textConfig?: (google.cloud.dialogflow.v2beta1.IInputTextConfig|null);

                    /** StreamingAnalyzeContentRequest replyAudioConfig */
                    replyAudioConfig?: (google.cloud.dialogflow.v2beta1.IOutputAudioConfig|null);

                    /** StreamingAnalyzeContentRequest inputAudio */
                    inputAudio?: (Uint8Array|Buffer|string|null);

                    /** StreamingAnalyzeContentRequest inputText */
                    inputText?: (string|null);

                    /** StreamingAnalyzeContentRequest inputDtmf */
                    inputDtmf?: (google.cloud.dialogflow.v2beta1.ITelephonyDtmfEvents|null);

                    /** StreamingAnalyzeContentRequest inputIntent */
                    inputIntent?: (string|null);

                    /** StreamingAnalyzeContentRequest inputEvent */
                    inputEvent?: (string|null);

                    /** StreamingAnalyzeContentRequest queryParams */
                    queryParams?: (google.cloud.dialogflow.v2beta1.IQueryParameters|null);

                    /** StreamingAnalyzeContentRequest assistQueryParams */
                    assistQueryParams?: (google.cloud.dialogflow.v2beta1.IAssistQueryParameters|null);

                    /** StreamingAnalyzeContentRequest cxParameters */
                    cxParameters?: (google.protobuf.IStruct|null);

                    /** StreamingAnalyzeContentRequest cxCurrentPage */
                    cxCurrentPage?: (string|null);

                    /** StreamingAnalyzeContentRequest enableExtendedStreaming */
                    enableExtendedStreaming?: (boolean|null);

                    /** StreamingAnalyzeContentRequest enablePartialAutomatedAgentReply */
                    enablePartialAutomatedAgentReply?: (boolean|null);

                    /** StreamingAnalyzeContentRequest outputMultipleUtterances */
                    outputMultipleUtterances?: (boolean|null);

                    /** StreamingAnalyzeContentRequest enableDebuggingInfo */
                    enableDebuggingInfo?: (boolean|null);
                }

                /** Represents a StreamingAnalyzeContentRequest. */
                class StreamingAnalyzeContentRequest implements IStreamingAnalyzeContentRequest {

                    /**
                     * Constructs a new StreamingAnalyzeContentRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IStreamingAnalyzeContentRequest);

                    /** StreamingAnalyzeContentRequest participant. */
                    public participant: string;

                    /** StreamingAnalyzeContentRequest audioConfig. */
                    public audioConfig?: (google.cloud.dialogflow.v2beta1.IInputAudioConfig|null);

                    /** StreamingAnalyzeContentRequest textConfig. */
                    public textConfig?: (google.cloud.dialogflow.v2beta1.IInputTextConfig|null);

                    /** StreamingAnalyzeContentRequest replyAudioConfig. */
                    public replyAudioConfig?: (google.cloud.dialogflow.v2beta1.IOutputAudioConfig|null);

                    /** StreamingAnalyzeContentRequest inputAudio. */
                    public inputAudio?: (Uint8Array|Buffer|string|null);

                    /** StreamingAnalyzeContentRequest inputText. */
                    public inputText?: (string|null);

                    /** StreamingAnalyzeContentRequest inputDtmf. */
                    public inputDtmf?: (google.cloud.dialogflow.v2beta1.ITelephonyDtmfEvents|null);

                    /** StreamingAnalyzeContentRequest inputIntent. */
                    public inputIntent?: (string|null);

                    /** StreamingAnalyzeContentRequest inputEvent. */
                    public inputEvent?: (string|null);

                    /** StreamingAnalyzeContentRequest queryParams. */
                    public queryParams?: (google.cloud.dialogflow.v2beta1.IQueryParameters|null);

                    /** StreamingAnalyzeContentRequest assistQueryParams. */
                    public assistQueryParams?: (google.cloud.dialogflow.v2beta1.IAssistQueryParameters|null);

                    /** StreamingAnalyzeContentRequest cxParameters. */
                    public cxParameters?: (google.protobuf.IStruct|null);

                    /** StreamingAnalyzeContentRequest cxCurrentPage. */
                    public cxCurrentPage: string;

                    /** StreamingAnalyzeContentRequest enableExtendedStreaming. */
                    public enableExtendedStreaming: boolean;

                    /** StreamingAnalyzeContentRequest enablePartialAutomatedAgentReply. */
                    public enablePartialAutomatedAgentReply: boolean;

                    /** StreamingAnalyzeContentRequest outputMultipleUtterances. */
                    public outputMultipleUtterances: boolean;

                    /** StreamingAnalyzeContentRequest enableDebuggingInfo. */
                    public enableDebuggingInfo: boolean;

                    /** StreamingAnalyzeContentRequest config. */
                    public config?: ("audioConfig"|"textConfig");

                    /** StreamingAnalyzeContentRequest input. */
                    public input?: ("inputAudio"|"inputText"|"inputDtmf"|"inputIntent"|"inputEvent");

                    /**
                     * Creates a new StreamingAnalyzeContentRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns StreamingAnalyzeContentRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IStreamingAnalyzeContentRequest): google.cloud.dialogflow.v2beta1.StreamingAnalyzeContentRequest;

                    /**
                     * Encodes the specified StreamingAnalyzeContentRequest message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.StreamingAnalyzeContentRequest.verify|verify} messages.
                     * @param message StreamingAnalyzeContentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IStreamingAnalyzeContentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified StreamingAnalyzeContentRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.StreamingAnalyzeContentRequest.verify|verify} messages.
                     * @param message StreamingAnalyzeContentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IStreamingAnalyzeContentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a StreamingAnalyzeContentRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns StreamingAnalyzeContentRequest
                     * @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.cloud.dialogflow.v2beta1.StreamingAnalyzeContentRequest;

                    /**
                     * Decodes a StreamingAnalyzeContentRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns StreamingAnalyzeContentRequest
                     * @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.cloud.dialogflow.v2beta1.StreamingAnalyzeContentRequest;

                    /**
                     * Verifies a StreamingAnalyzeContentRequest 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 StreamingAnalyzeContentRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns StreamingAnalyzeContentRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.StreamingAnalyzeContentRequest;

                    /**
                     * Creates a plain object from a StreamingAnalyzeContentRequest message. Also converts values to other types if specified.
                     * @param message StreamingAnalyzeContentRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.StreamingAnalyzeContentRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this StreamingAnalyzeContentRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for StreamingAnalyzeContentRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a StreamingAnalyzeContentResponse. */
                interface IStreamingAnalyzeContentResponse {

                    /** StreamingAnalyzeContentResponse recognitionResult */
                    recognitionResult?: (google.cloud.dialogflow.v2beta1.IStreamingRecognitionResult|null);

                    /** StreamingAnalyzeContentResponse replyText */
                    replyText?: (string|null);

                    /** StreamingAnalyzeContentResponse replyAudio */
                    replyAudio?: (google.cloud.dialogflow.v2beta1.IOutputAudio|null);

                    /** StreamingAnalyzeContentResponse automatedAgentReply */
                    automatedAgentReply?: (google.cloud.dialogflow.v2beta1.IAutomatedAgentReply|null);

                    /** StreamingAnalyzeContentResponse message */
                    message?: (google.cloud.dialogflow.v2beta1.IMessage|null);

                    /** StreamingAnalyzeContentResponse humanAgentSuggestionResults */
                    humanAgentSuggestionResults?: (google.cloud.dialogflow.v2beta1.ISuggestionResult[]|null);

                    /** StreamingAnalyzeContentResponse endUserSuggestionResults */
                    endUserSuggestionResults?: (google.cloud.dialogflow.v2beta1.ISuggestionResult[]|null);

                    /** StreamingAnalyzeContentResponse dtmfParameters */
                    dtmfParameters?: (google.cloud.dialogflow.v2beta1.IDtmfParameters|null);

                    /** StreamingAnalyzeContentResponse debuggingInfo */
                    debuggingInfo?: (google.cloud.dialogflow.v2beta1.ICloudConversationDebuggingInfo|null);

                    /** StreamingAnalyzeContentResponse speechModel */
                    speechModel?: (string|null);
                }

                /** Represents a StreamingAnalyzeContentResponse. */
                class StreamingAnalyzeContentResponse implements IStreamingAnalyzeContentResponse {

                    /**
                     * Constructs a new StreamingAnalyzeContentResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IStreamingAnalyzeContentResponse);

                    /** StreamingAnalyzeContentResponse recognitionResult. */
                    public recognitionResult?: (google.cloud.dialogflow.v2beta1.IStreamingRecognitionResult|null);

                    /** StreamingAnalyzeContentResponse replyText. */
                    public replyText: string;

                    /** StreamingAnalyzeContentResponse replyAudio. */
                    public replyAudio?: (google.cloud.dialogflow.v2beta1.IOutputAudio|null);

                    /** StreamingAnalyzeContentResponse automatedAgentReply. */
                    public automatedAgentReply?: (google.cloud.dialogflow.v2beta1.IAutomatedAgentReply|null);

                    /** StreamingAnalyzeContentResponse message. */
                    public message?: (google.cloud.dialogflow.v2beta1.IMessage|null);

                    /** StreamingAnalyzeContentResponse humanAgentSuggestionResults. */
                    public humanAgentSuggestionResults: google.cloud.dialogflow.v2beta1.ISuggestionResult[];

                    /** StreamingAnalyzeContentResponse endUserSuggestionResults. */
                    public endUserSuggestionResults: google.cloud.dialogflow.v2beta1.ISuggestionResult[];

                    /** StreamingAnalyzeContentResponse dtmfParameters. */
                    public dtmfParameters?: (google.cloud.dialogflow.v2beta1.IDtmfParameters|null);

                    /** StreamingAnalyzeContentResponse debuggingInfo. */
                    public debuggingInfo?: (google.cloud.dialogflow.v2beta1.ICloudConversationDebuggingInfo|null);

                    /** StreamingAnalyzeContentResponse speechModel. */
                    public speechModel: string;

                    /**
                     * Creates a new StreamingAnalyzeContentResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns StreamingAnalyzeContentResponse instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IStreamingAnalyzeContentResponse): google.cloud.dialogflow.v2beta1.StreamingAnalyzeContentResponse;

                    /**
                     * Encodes the specified StreamingAnalyzeContentResponse message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.StreamingAnalyzeContentResponse.verify|verify} messages.
                     * @param message StreamingAnalyzeContentResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IStreamingAnalyzeContentResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified StreamingAnalyzeContentResponse message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.StreamingAnalyzeContentResponse.verify|verify} messages.
                     * @param message StreamingAnalyzeContentResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IStreamingAnalyzeContentResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a StreamingAnalyzeContentResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns StreamingAnalyzeContentResponse
                     * @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.cloud.dialogflow.v2beta1.StreamingAnalyzeContentResponse;

                    /**
                     * Decodes a StreamingAnalyzeContentResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns StreamingAnalyzeContentResponse
                     * @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.cloud.dialogflow.v2beta1.StreamingAnalyzeContentResponse;

                    /**
                     * Verifies a StreamingAnalyzeContentResponse 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 StreamingAnalyzeContentResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns StreamingAnalyzeContentResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.StreamingAnalyzeContentResponse;

                    /**
                     * Creates a plain object from a StreamingAnalyzeContentResponse message. Also converts values to other types if specified.
                     * @param message StreamingAnalyzeContentResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.StreamingAnalyzeContentResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this StreamingAnalyzeContentResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for StreamingAnalyzeContentResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AnnotatedMessagePart. */
                interface IAnnotatedMessagePart {

                    /** AnnotatedMessagePart text */
                    text?: (string|null);

                    /** AnnotatedMessagePart entityType */
                    entityType?: (string|null);

                    /** AnnotatedMessagePart formattedValue */
                    formattedValue?: (google.protobuf.IValue|null);
                }

                /** Represents an AnnotatedMessagePart. */
                class AnnotatedMessagePart implements IAnnotatedMessagePart {

                    /**
                     * Constructs a new AnnotatedMessagePart.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IAnnotatedMessagePart);

                    /** AnnotatedMessagePart text. */
                    public text: string;

                    /** AnnotatedMessagePart entityType. */
                    public entityType: string;

                    /** AnnotatedMessagePart formattedValue. */
                    public formattedValue?: (google.protobuf.IValue|null);

                    /**
                     * Creates a new AnnotatedMessagePart instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AnnotatedMessagePart instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IAnnotatedMessagePart): google.cloud.dialogflow.v2beta1.AnnotatedMessagePart;

                    /**
                     * Encodes the specified AnnotatedMessagePart message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.AnnotatedMessagePart.verify|verify} messages.
                     * @param message AnnotatedMessagePart message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IAnnotatedMessagePart, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AnnotatedMessagePart message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.AnnotatedMessagePart.verify|verify} messages.
                     * @param message AnnotatedMessagePart message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IAnnotatedMessagePart, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AnnotatedMessagePart message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AnnotatedMessagePart
                     * @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.cloud.dialogflow.v2beta1.AnnotatedMessagePart;

                    /**
                     * Decodes an AnnotatedMessagePart message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AnnotatedMessagePart
                     * @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.cloud.dialogflow.v2beta1.AnnotatedMessagePart;

                    /**
                     * Verifies an AnnotatedMessagePart 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 AnnotatedMessagePart message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AnnotatedMessagePart
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.AnnotatedMessagePart;

                    /**
                     * Creates a plain object from an AnnotatedMessagePart message. Also converts values to other types if specified.
                     * @param message AnnotatedMessagePart
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.AnnotatedMessagePart, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AnnotatedMessagePart to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AnnotatedMessagePart
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a MessageAnnotation. */
                interface IMessageAnnotation {

                    /** MessageAnnotation parts */
                    parts?: (google.cloud.dialogflow.v2beta1.IAnnotatedMessagePart[]|null);

                    /** MessageAnnotation containEntities */
                    containEntities?: (boolean|null);
                }

                /** Represents a MessageAnnotation. */
                class MessageAnnotation implements IMessageAnnotation {

                    /**
                     * Constructs a new MessageAnnotation.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IMessageAnnotation);

                    /** MessageAnnotation parts. */
                    public parts: google.cloud.dialogflow.v2beta1.IAnnotatedMessagePart[];

                    /** MessageAnnotation containEntities. */
                    public containEntities: boolean;

                    /**
                     * Creates a new MessageAnnotation instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns MessageAnnotation instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IMessageAnnotation): google.cloud.dialogflow.v2beta1.MessageAnnotation;

                    /**
                     * Encodes the specified MessageAnnotation message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.MessageAnnotation.verify|verify} messages.
                     * @param message MessageAnnotation message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IMessageAnnotation, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified MessageAnnotation message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.MessageAnnotation.verify|verify} messages.
                     * @param message MessageAnnotation message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IMessageAnnotation, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a MessageAnnotation message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns MessageAnnotation
                     * @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.cloud.dialogflow.v2beta1.MessageAnnotation;

                    /**
                     * Decodes a MessageAnnotation message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns MessageAnnotation
                     * @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.cloud.dialogflow.v2beta1.MessageAnnotation;

                    /**
                     * Verifies a MessageAnnotation 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 MessageAnnotation message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns MessageAnnotation
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.MessageAnnotation;

                    /**
                     * Creates a plain object from a MessageAnnotation message. Also converts values to other types if specified.
                     * @param message MessageAnnotation
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.MessageAnnotation, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this MessageAnnotation to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for MessageAnnotation
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an ArticleAnswer. */
                interface IArticleAnswer {

                    /** ArticleAnswer title */
                    title?: (string|null);

                    /** ArticleAnswer uri */
                    uri?: (string|null);

                    /** ArticleAnswer snippets */
                    snippets?: (string[]|null);

                    /** ArticleAnswer metadata */
                    metadata?: ({ [k: string]: string }|null);

                    /** ArticleAnswer answerRecord */
                    answerRecord?: (string|null);
                }

                /** Represents an ArticleAnswer. */
                class ArticleAnswer implements IArticleAnswer {

                    /**
                     * Constructs a new ArticleAnswer.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IArticleAnswer);

                    /** ArticleAnswer title. */
                    public title: string;

                    /** ArticleAnswer uri. */
                    public uri: string;

                    /** ArticleAnswer snippets. */
                    public snippets: string[];

                    /** ArticleAnswer metadata. */
                    public metadata: { [k: string]: string };

                    /** ArticleAnswer answerRecord. */
                    public answerRecord: string;

                    /**
                     * Creates a new ArticleAnswer instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ArticleAnswer instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IArticleAnswer): google.cloud.dialogflow.v2beta1.ArticleAnswer;

                    /**
                     * Encodes the specified ArticleAnswer message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.ArticleAnswer.verify|verify} messages.
                     * @param message ArticleAnswer message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IArticleAnswer, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ArticleAnswer message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.ArticleAnswer.verify|verify} messages.
                     * @param message ArticleAnswer message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IArticleAnswer, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an ArticleAnswer message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ArticleAnswer
                     * @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.cloud.dialogflow.v2beta1.ArticleAnswer;

                    /**
                     * Decodes an ArticleAnswer message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ArticleAnswer
                     * @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.cloud.dialogflow.v2beta1.ArticleAnswer;

                    /**
                     * Verifies an ArticleAnswer 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 ArticleAnswer message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ArticleAnswer
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.ArticleAnswer;

                    /**
                     * Creates a plain object from an ArticleAnswer message. Also converts values to other types if specified.
                     * @param message ArticleAnswer
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.ArticleAnswer, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ArticleAnswer to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ArticleAnswer
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a FaqAnswer. */
                interface IFaqAnswer {

                    /** FaqAnswer answer */
                    answer?: (string|null);

                    /** FaqAnswer confidence */
                    confidence?: (number|null);

                    /** FaqAnswer question */
                    question?: (string|null);

                    /** FaqAnswer source */
                    source?: (string|null);

                    /** FaqAnswer metadata */
                    metadata?: ({ [k: string]: string }|null);

                    /** FaqAnswer answerRecord */
                    answerRecord?: (string|null);
                }

                /** Represents a FaqAnswer. */
                class FaqAnswer implements IFaqAnswer {

                    /**
                     * Constructs a new FaqAnswer.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IFaqAnswer);

                    /** FaqAnswer answer. */
                    public answer: string;

                    /** FaqAnswer confidence. */
                    public confidence: number;

                    /** FaqAnswer question. */
                    public question: string;

                    /** FaqAnswer source. */
                    public source: string;

                    /** FaqAnswer metadata. */
                    public metadata: { [k: string]: string };

                    /** FaqAnswer answerRecord. */
                    public answerRecord: string;

                    /**
                     * Creates a new FaqAnswer instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns FaqAnswer instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IFaqAnswer): google.cloud.dialogflow.v2beta1.FaqAnswer;

                    /**
                     * Encodes the specified FaqAnswer message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.FaqAnswer.verify|verify} messages.
                     * @param message FaqAnswer message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IFaqAnswer, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified FaqAnswer message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.FaqAnswer.verify|verify} messages.
                     * @param message FaqAnswer message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IFaqAnswer, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a FaqAnswer message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns FaqAnswer
                     * @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.cloud.dialogflow.v2beta1.FaqAnswer;

                    /**
                     * Decodes a FaqAnswer message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns FaqAnswer
                     * @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.cloud.dialogflow.v2beta1.FaqAnswer;

                    /**
                     * Verifies a FaqAnswer 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 FaqAnswer message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns FaqAnswer
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.FaqAnswer;

                    /**
                     * Creates a plain object from a FaqAnswer message. Also converts values to other types if specified.
                     * @param message FaqAnswer
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.FaqAnswer, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this FaqAnswer to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for FaqAnswer
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SmartReplyAnswer. */
                interface ISmartReplyAnswer {

                    /** SmartReplyAnswer reply */
                    reply?: (string|null);

                    /** SmartReplyAnswer confidence */
                    confidence?: (number|null);

                    /** SmartReplyAnswer answerRecord */
                    answerRecord?: (string|null);
                }

                /** Represents a SmartReplyAnswer. */
                class SmartReplyAnswer implements ISmartReplyAnswer {

                    /**
                     * Constructs a new SmartReplyAnswer.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.ISmartReplyAnswer);

                    /** SmartReplyAnswer reply. */
                    public reply: string;

                    /** SmartReplyAnswer confidence. */
                    public confidence: number;

                    /** SmartReplyAnswer answerRecord. */
                    public answerRecord: string;

                    /**
                     * Creates a new SmartReplyAnswer instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SmartReplyAnswer instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.ISmartReplyAnswer): google.cloud.dialogflow.v2beta1.SmartReplyAnswer;

                    /**
                     * Encodes the specified SmartReplyAnswer message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.SmartReplyAnswer.verify|verify} messages.
                     * @param message SmartReplyAnswer message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.ISmartReplyAnswer, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SmartReplyAnswer message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.SmartReplyAnswer.verify|verify} messages.
                     * @param message SmartReplyAnswer message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.ISmartReplyAnswer, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SmartReplyAnswer message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SmartReplyAnswer
                     * @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.cloud.dialogflow.v2beta1.SmartReplyAnswer;

                    /**
                     * Decodes a SmartReplyAnswer message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SmartReplyAnswer
                     * @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.cloud.dialogflow.v2beta1.SmartReplyAnswer;

                    /**
                     * Verifies a SmartReplyAnswer 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 SmartReplyAnswer message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SmartReplyAnswer
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.SmartReplyAnswer;

                    /**
                     * Creates a plain object from a SmartReplyAnswer message. Also converts values to other types if specified.
                     * @param message SmartReplyAnswer
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.SmartReplyAnswer, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SmartReplyAnswer to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SmartReplyAnswer
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an IntentSuggestion. */
                interface IIntentSuggestion {

                    /** IntentSuggestion displayName */
                    displayName?: (string|null);

                    /** IntentSuggestion intentV2 */
                    intentV2?: (string|null);

                    /** IntentSuggestion description */
                    description?: (string|null);
                }

                /** Represents an IntentSuggestion. */
                class IntentSuggestion implements IIntentSuggestion {

                    /**
                     * Constructs a new IntentSuggestion.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IIntentSuggestion);

                    /** IntentSuggestion displayName. */
                    public displayName: string;

                    /** IntentSuggestion intentV2. */
                    public intentV2?: (string|null);

                    /** IntentSuggestion description. */
                    public description: string;

                    /** IntentSuggestion intent. */
                    public intent?: "intentV2";

                    /**
                     * Creates a new IntentSuggestion instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns IntentSuggestion instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IIntentSuggestion): google.cloud.dialogflow.v2beta1.IntentSuggestion;

                    /**
                     * Encodes the specified IntentSuggestion message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.IntentSuggestion.verify|verify} messages.
                     * @param message IntentSuggestion message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IIntentSuggestion, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified IntentSuggestion message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.IntentSuggestion.verify|verify} messages.
                     * @param message IntentSuggestion message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IIntentSuggestion, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an IntentSuggestion message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns IntentSuggestion
                     * @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.cloud.dialogflow.v2beta1.IntentSuggestion;

                    /**
                     * Decodes an IntentSuggestion message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns IntentSuggestion
                     * @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.cloud.dialogflow.v2beta1.IntentSuggestion;

                    /**
                     * Verifies an IntentSuggestion 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 IntentSuggestion message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns IntentSuggestion
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.IntentSuggestion;

                    /**
                     * Creates a plain object from an IntentSuggestion message. Also converts values to other types if specified.
                     * @param message IntentSuggestion
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.IntentSuggestion, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this IntentSuggestion to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for IntentSuggestion
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DialogflowAssistAnswer. */
                interface IDialogflowAssistAnswer {

                    /** DialogflowAssistAnswer queryResult */
                    queryResult?: (google.cloud.dialogflow.v2beta1.IQueryResult|null);

                    /** DialogflowAssistAnswer intentSuggestion */
                    intentSuggestion?: (google.cloud.dialogflow.v2beta1.IIntentSuggestion|null);

                    /** DialogflowAssistAnswer answerRecord */
                    answerRecord?: (string|null);
                }

                /** Represents a DialogflowAssistAnswer. */
                class DialogflowAssistAnswer implements IDialogflowAssistAnswer {

                    /**
                     * Constructs a new DialogflowAssistAnswer.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IDialogflowAssistAnswer);

                    /** DialogflowAssistAnswer queryResult. */
                    public queryResult?: (google.cloud.dialogflow.v2beta1.IQueryResult|null);

                    /** DialogflowAssistAnswer intentSuggestion. */
                    public intentSuggestion?: (google.cloud.dialogflow.v2beta1.IIntentSuggestion|null);

                    /** DialogflowAssistAnswer answerRecord. */
                    public answerRecord: string;

                    /** DialogflowAssistAnswer result. */
                    public result?: ("queryResult"|"intentSuggestion");

                    /**
                     * Creates a new DialogflowAssistAnswer instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DialogflowAssistAnswer instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IDialogflowAssistAnswer): google.cloud.dialogflow.v2beta1.DialogflowAssistAnswer;

                    /**
                     * Encodes the specified DialogflowAssistAnswer message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.DialogflowAssistAnswer.verify|verify} messages.
                     * @param message DialogflowAssistAnswer message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IDialogflowAssistAnswer, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DialogflowAssistAnswer message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.DialogflowAssistAnswer.verify|verify} messages.
                     * @param message DialogflowAssistAnswer message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IDialogflowAssistAnswer, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DialogflowAssistAnswer message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DialogflowAssistAnswer
                     * @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.cloud.dialogflow.v2beta1.DialogflowAssistAnswer;

                    /**
                     * Decodes a DialogflowAssistAnswer message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DialogflowAssistAnswer
                     * @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.cloud.dialogflow.v2beta1.DialogflowAssistAnswer;

                    /**
                     * Verifies a DialogflowAssistAnswer 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 DialogflowAssistAnswer message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DialogflowAssistAnswer
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.DialogflowAssistAnswer;

                    /**
                     * Creates a plain object from a DialogflowAssistAnswer message. Also converts values to other types if specified.
                     * @param message DialogflowAssistAnswer
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.DialogflowAssistAnswer, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DialogflowAssistAnswer to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DialogflowAssistAnswer
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SuggestionResult. */
                interface ISuggestionResult {

                    /** SuggestionResult error */
                    error?: (google.rpc.IStatus|null);

                    /** SuggestionResult suggestArticlesResponse */
                    suggestArticlesResponse?: (google.cloud.dialogflow.v2beta1.ISuggestArticlesResponse|null);

                    /** SuggestionResult suggestKnowledgeAssistResponse */
                    suggestKnowledgeAssistResponse?: (google.cloud.dialogflow.v2beta1.ISuggestKnowledgeAssistResponse|null);

                    /** SuggestionResult suggestFaqAnswersResponse */
                    suggestFaqAnswersResponse?: (google.cloud.dialogflow.v2beta1.ISuggestFaqAnswersResponse|null);

                    /** SuggestionResult suggestSmartRepliesResponse */
                    suggestSmartRepliesResponse?: (google.cloud.dialogflow.v2beta1.ISuggestSmartRepliesResponse|null);

                    /** SuggestionResult suggestDialogflowAssistsResponse */
                    suggestDialogflowAssistsResponse?: (google.cloud.dialogflow.v2beta1.ISuggestDialogflowAssistsResponse|null);

                    /** SuggestionResult suggestEntityExtractionResponse */
                    suggestEntityExtractionResponse?: (google.cloud.dialogflow.v2beta1.ISuggestDialogflowAssistsResponse|null);

                    /** SuggestionResult generateSuggestionsResponse */
                    generateSuggestionsResponse?: (google.cloud.dialogflow.v2beta1.IGenerateSuggestionsResponse|null);
                }

                /** Represents a SuggestionResult. */
                class SuggestionResult implements ISuggestionResult {

                    /**
                     * Constructs a new SuggestionResult.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.ISuggestionResult);

                    /** SuggestionResult error. */
                    public error?: (google.rpc.IStatus|null);

                    /** SuggestionResult suggestArticlesResponse. */
                    public suggestArticlesResponse?: (google.cloud.dialogflow.v2beta1.ISuggestArticlesResponse|null);

                    /** SuggestionResult suggestKnowledgeAssistResponse. */
                    public suggestKnowledgeAssistResponse?: (google.cloud.dialogflow.v2beta1.ISuggestKnowledgeAssistResponse|null);

                    /** SuggestionResult suggestFaqAnswersResponse. */
                    public suggestFaqAnswersResponse?: (google.cloud.dialogflow.v2beta1.ISuggestFaqAnswersResponse|null);

                    /** SuggestionResult suggestSmartRepliesResponse. */
                    public suggestSmartRepliesResponse?: (google.cloud.dialogflow.v2beta1.ISuggestSmartRepliesResponse|null);

                    /** SuggestionResult suggestDialogflowAssistsResponse. */
                    public suggestDialogflowAssistsResponse?: (google.cloud.dialogflow.v2beta1.ISuggestDialogflowAssistsResponse|null);

                    /** SuggestionResult suggestEntityExtractionResponse. */
                    public suggestEntityExtractionResponse?: (google.cloud.dialogflow.v2beta1.ISuggestDialogflowAssistsResponse|null);

                    /** SuggestionResult generateSuggestionsResponse. */
                    public generateSuggestionsResponse?: (google.cloud.dialogflow.v2beta1.IGenerateSuggestionsResponse|null);

                    /** SuggestionResult suggestionResponse. */
                    public suggestionResponse?: ("error"|"suggestArticlesResponse"|"suggestKnowledgeAssistResponse"|"suggestFaqAnswersResponse"|"suggestSmartRepliesResponse"|"suggestDialogflowAssistsResponse"|"suggestEntityExtractionResponse"|"generateSuggestionsResponse");

                    /**
                     * Creates a new SuggestionResult instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SuggestionResult instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.ISuggestionResult): google.cloud.dialogflow.v2beta1.SuggestionResult;

                    /**
                     * Encodes the specified SuggestionResult message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.SuggestionResult.verify|verify} messages.
                     * @param message SuggestionResult message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.ISuggestionResult, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SuggestionResult message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.SuggestionResult.verify|verify} messages.
                     * @param message SuggestionResult message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.ISuggestionResult, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SuggestionResult message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SuggestionResult
                     * @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.cloud.dialogflow.v2beta1.SuggestionResult;

                    /**
                     * Decodes a SuggestionResult message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SuggestionResult
                     * @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.cloud.dialogflow.v2beta1.SuggestionResult;

                    /**
                     * Verifies a SuggestionResult 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 SuggestionResult message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SuggestionResult
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.SuggestionResult;

                    /**
                     * Creates a plain object from a SuggestionResult message. Also converts values to other types if specified.
                     * @param message SuggestionResult
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.SuggestionResult, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SuggestionResult to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SuggestionResult
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SuggestArticlesRequest. */
                interface ISuggestArticlesRequest {

                    /** SuggestArticlesRequest parent */
                    parent?: (string|null);

                    /** SuggestArticlesRequest latestMessage */
                    latestMessage?: (string|null);

                    /** SuggestArticlesRequest contextSize */
                    contextSize?: (number|null);

                    /** SuggestArticlesRequest assistQueryParams */
                    assistQueryParams?: (google.cloud.dialogflow.v2beta1.IAssistQueryParameters|null);
                }

                /** Represents a SuggestArticlesRequest. */
                class SuggestArticlesRequest implements ISuggestArticlesRequest {

                    /**
                     * Constructs a new SuggestArticlesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.ISuggestArticlesRequest);

                    /** SuggestArticlesRequest parent. */
                    public parent: string;

                    /** SuggestArticlesRequest latestMessage. */
                    public latestMessage: string;

                    /** SuggestArticlesRequest contextSize. */
                    public contextSize: number;

                    /** SuggestArticlesRequest assistQueryParams. */
                    public assistQueryParams?: (google.cloud.dialogflow.v2beta1.IAssistQueryParameters|null);

                    /**
                     * Creates a new SuggestArticlesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SuggestArticlesRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.ISuggestArticlesRequest): google.cloud.dialogflow.v2beta1.SuggestArticlesRequest;

                    /**
                     * Encodes the specified SuggestArticlesRequest message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.SuggestArticlesRequest.verify|verify} messages.
                     * @param message SuggestArticlesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.ISuggestArticlesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SuggestArticlesRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.SuggestArticlesRequest.verify|verify} messages.
                     * @param message SuggestArticlesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.ISuggestArticlesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SuggestArticlesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SuggestArticlesRequest
                     * @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.cloud.dialogflow.v2beta1.SuggestArticlesRequest;

                    /**
                     * Decodes a SuggestArticlesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SuggestArticlesRequest
                     * @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.cloud.dialogflow.v2beta1.SuggestArticlesRequest;

                    /**
                     * Verifies a SuggestArticlesRequest 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 SuggestArticlesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SuggestArticlesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.SuggestArticlesRequest;

                    /**
                     * Creates a plain object from a SuggestArticlesRequest message. Also converts values to other types if specified.
                     * @param message SuggestArticlesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.SuggestArticlesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SuggestArticlesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SuggestArticlesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SuggestArticlesResponse. */
                interface ISuggestArticlesResponse {

                    /** SuggestArticlesResponse articleAnswers */
                    articleAnswers?: (google.cloud.dialogflow.v2beta1.IArticleAnswer[]|null);

                    /** SuggestArticlesResponse latestMessage */
                    latestMessage?: (string|null);

                    /** SuggestArticlesResponse contextSize */
                    contextSize?: (number|null);
                }

                /** Represents a SuggestArticlesResponse. */
                class SuggestArticlesResponse implements ISuggestArticlesResponse {

                    /**
                     * Constructs a new SuggestArticlesResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.ISuggestArticlesResponse);

                    /** SuggestArticlesResponse articleAnswers. */
                    public articleAnswers: google.cloud.dialogflow.v2beta1.IArticleAnswer[];

                    /** SuggestArticlesResponse latestMessage. */
                    public latestMessage: string;

                    /** SuggestArticlesResponse contextSize. */
                    public contextSize: number;

                    /**
                     * Creates a new SuggestArticlesResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SuggestArticlesResponse instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.ISuggestArticlesResponse): google.cloud.dialogflow.v2beta1.SuggestArticlesResponse;

                    /**
                     * Encodes the specified SuggestArticlesResponse message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.SuggestArticlesResponse.verify|verify} messages.
                     * @param message SuggestArticlesResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.ISuggestArticlesResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SuggestArticlesResponse message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.SuggestArticlesResponse.verify|verify} messages.
                     * @param message SuggestArticlesResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.ISuggestArticlesResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SuggestArticlesResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SuggestArticlesResponse
                     * @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.cloud.dialogflow.v2beta1.SuggestArticlesResponse;

                    /**
                     * Decodes a SuggestArticlesResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SuggestArticlesResponse
                     * @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.cloud.dialogflow.v2beta1.SuggestArticlesResponse;

                    /**
                     * Verifies a SuggestArticlesResponse 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 SuggestArticlesResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SuggestArticlesResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.SuggestArticlesResponse;

                    /**
                     * Creates a plain object from a SuggestArticlesResponse message. Also converts values to other types if specified.
                     * @param message SuggestArticlesResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.SuggestArticlesResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SuggestArticlesResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SuggestArticlesResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SuggestFaqAnswersRequest. */
                interface ISuggestFaqAnswersRequest {

                    /** SuggestFaqAnswersRequest parent */
                    parent?: (string|null);

                    /** SuggestFaqAnswersRequest latestMessage */
                    latestMessage?: (string|null);

                    /** SuggestFaqAnswersRequest contextSize */
                    contextSize?: (number|null);

                    /** SuggestFaqAnswersRequest assistQueryParams */
                    assistQueryParams?: (google.cloud.dialogflow.v2beta1.IAssistQueryParameters|null);
                }

                /** Represents a SuggestFaqAnswersRequest. */
                class SuggestFaqAnswersRequest implements ISuggestFaqAnswersRequest {

                    /**
                     * Constructs a new SuggestFaqAnswersRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.ISuggestFaqAnswersRequest);

                    /** SuggestFaqAnswersRequest parent. */
                    public parent: string;

                    /** SuggestFaqAnswersRequest latestMessage. */
                    public latestMessage: string;

                    /** SuggestFaqAnswersRequest contextSize. */
                    public contextSize: number;

                    /** SuggestFaqAnswersRequest assistQueryParams. */
                    public assistQueryParams?: (google.cloud.dialogflow.v2beta1.IAssistQueryParameters|null);

                    /**
                     * Creates a new SuggestFaqAnswersRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SuggestFaqAnswersRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.ISuggestFaqAnswersRequest): google.cloud.dialogflow.v2beta1.SuggestFaqAnswersRequest;

                    /**
                     * Encodes the specified SuggestFaqAnswersRequest message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.SuggestFaqAnswersRequest.verify|verify} messages.
                     * @param message SuggestFaqAnswersRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.ISuggestFaqAnswersRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SuggestFaqAnswersRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.SuggestFaqAnswersRequest.verify|verify} messages.
                     * @param message SuggestFaqAnswersRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.ISuggestFaqAnswersRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SuggestFaqAnswersRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SuggestFaqAnswersRequest
                     * @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.cloud.dialogflow.v2beta1.SuggestFaqAnswersRequest;

                    /**
                     * Decodes a SuggestFaqAnswersRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SuggestFaqAnswersRequest
                     * @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.cloud.dialogflow.v2beta1.SuggestFaqAnswersRequest;

                    /**
                     * Verifies a SuggestFaqAnswersRequest 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 SuggestFaqAnswersRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SuggestFaqAnswersRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.SuggestFaqAnswersRequest;

                    /**
                     * Creates a plain object from a SuggestFaqAnswersRequest message. Also converts values to other types if specified.
                     * @param message SuggestFaqAnswersRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.SuggestFaqAnswersRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SuggestFaqAnswersRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SuggestFaqAnswersRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SuggestFaqAnswersResponse. */
                interface ISuggestFaqAnswersResponse {

                    /** SuggestFaqAnswersResponse faqAnswers */
                    faqAnswers?: (google.cloud.dialogflow.v2beta1.IFaqAnswer[]|null);

                    /** SuggestFaqAnswersResponse latestMessage */
                    latestMessage?: (string|null);

                    /** SuggestFaqAnswersResponse contextSize */
                    contextSize?: (number|null);
                }

                /** Represents a SuggestFaqAnswersResponse. */
                class SuggestFaqAnswersResponse implements ISuggestFaqAnswersResponse {

                    /**
                     * Constructs a new SuggestFaqAnswersResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.ISuggestFaqAnswersResponse);

                    /** SuggestFaqAnswersResponse faqAnswers. */
                    public faqAnswers: google.cloud.dialogflow.v2beta1.IFaqAnswer[];

                    /** SuggestFaqAnswersResponse latestMessage. */
                    public latestMessage: string;

                    /** SuggestFaqAnswersResponse contextSize. */
                    public contextSize: number;

                    /**
                     * Creates a new SuggestFaqAnswersResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SuggestFaqAnswersResponse instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.ISuggestFaqAnswersResponse): google.cloud.dialogflow.v2beta1.SuggestFaqAnswersResponse;

                    /**
                     * Encodes the specified SuggestFaqAnswersResponse message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.SuggestFaqAnswersResponse.verify|verify} messages.
                     * @param message SuggestFaqAnswersResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.ISuggestFaqAnswersResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SuggestFaqAnswersResponse message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.SuggestFaqAnswersResponse.verify|verify} messages.
                     * @param message SuggestFaqAnswersResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.ISuggestFaqAnswersResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SuggestFaqAnswersResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SuggestFaqAnswersResponse
                     * @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.cloud.dialogflow.v2beta1.SuggestFaqAnswersResponse;

                    /**
                     * Decodes a SuggestFaqAnswersResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SuggestFaqAnswersResponse
                     * @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.cloud.dialogflow.v2beta1.SuggestFaqAnswersResponse;

                    /**
                     * Verifies a SuggestFaqAnswersResponse 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 SuggestFaqAnswersResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SuggestFaqAnswersResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.SuggestFaqAnswersResponse;

                    /**
                     * Creates a plain object from a SuggestFaqAnswersResponse message. Also converts values to other types if specified.
                     * @param message SuggestFaqAnswersResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.SuggestFaqAnswersResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SuggestFaqAnswersResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SuggestFaqAnswersResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SuggestSmartRepliesRequest. */
                interface ISuggestSmartRepliesRequest {

                    /** SuggestSmartRepliesRequest parent */
                    parent?: (string|null);

                    /** SuggestSmartRepliesRequest currentTextInput */
                    currentTextInput?: (google.cloud.dialogflow.v2beta1.ITextInput|null);

                    /** SuggestSmartRepliesRequest latestMessage */
                    latestMessage?: (string|null);

                    /** SuggestSmartRepliesRequest contextSize */
                    contextSize?: (number|null);
                }

                /** Represents a SuggestSmartRepliesRequest. */
                class SuggestSmartRepliesRequest implements ISuggestSmartRepliesRequest {

                    /**
                     * Constructs a new SuggestSmartRepliesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.ISuggestSmartRepliesRequest);

                    /** SuggestSmartRepliesRequest parent. */
                    public parent: string;

                    /** SuggestSmartRepliesRequest currentTextInput. */
                    public currentTextInput?: (google.cloud.dialogflow.v2beta1.ITextInput|null);

                    /** SuggestSmartRepliesRequest latestMessage. */
                    public latestMessage: string;

                    /** SuggestSmartRepliesRequest contextSize. */
                    public contextSize: number;

                    /**
                     * Creates a new SuggestSmartRepliesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SuggestSmartRepliesRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.ISuggestSmartRepliesRequest): google.cloud.dialogflow.v2beta1.SuggestSmartRepliesRequest;

                    /**
                     * Encodes the specified SuggestSmartRepliesRequest message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.SuggestSmartRepliesRequest.verify|verify} messages.
                     * @param message SuggestSmartRepliesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.ISuggestSmartRepliesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SuggestSmartRepliesRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.SuggestSmartRepliesRequest.verify|verify} messages.
                     * @param message SuggestSmartRepliesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.ISuggestSmartRepliesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SuggestSmartRepliesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SuggestSmartRepliesRequest
                     * @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.cloud.dialogflow.v2beta1.SuggestSmartRepliesRequest;

                    /**
                     * Decodes a SuggestSmartRepliesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SuggestSmartRepliesRequest
                     * @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.cloud.dialogflow.v2beta1.SuggestSmartRepliesRequest;

                    /**
                     * Verifies a SuggestSmartRepliesRequest 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 SuggestSmartRepliesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SuggestSmartRepliesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.SuggestSmartRepliesRequest;

                    /**
                     * Creates a plain object from a SuggestSmartRepliesRequest message. Also converts values to other types if specified.
                     * @param message SuggestSmartRepliesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.SuggestSmartRepliesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SuggestSmartRepliesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SuggestSmartRepliesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SuggestSmartRepliesResponse. */
                interface ISuggestSmartRepliesResponse {

                    /** SuggestSmartRepliesResponse smartReplyAnswers */
                    smartReplyAnswers?: (google.cloud.dialogflow.v2beta1.ISmartReplyAnswer[]|null);

                    /** SuggestSmartRepliesResponse latestMessage */
                    latestMessage?: (string|null);

                    /** SuggestSmartRepliesResponse contextSize */
                    contextSize?: (number|null);
                }

                /** Represents a SuggestSmartRepliesResponse. */
                class SuggestSmartRepliesResponse implements ISuggestSmartRepliesResponse {

                    /**
                     * Constructs a new SuggestSmartRepliesResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.ISuggestSmartRepliesResponse);

                    /** SuggestSmartRepliesResponse smartReplyAnswers. */
                    public smartReplyAnswers: google.cloud.dialogflow.v2beta1.ISmartReplyAnswer[];

                    /** SuggestSmartRepliesResponse latestMessage. */
                    public latestMessage: string;

                    /** SuggestSmartRepliesResponse contextSize. */
                    public contextSize: number;

                    /**
                     * Creates a new SuggestSmartRepliesResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SuggestSmartRepliesResponse instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.ISuggestSmartRepliesResponse): google.cloud.dialogflow.v2beta1.SuggestSmartRepliesResponse;

                    /**
                     * Encodes the specified SuggestSmartRepliesResponse message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.SuggestSmartRepliesResponse.verify|verify} messages.
                     * @param message SuggestSmartRepliesResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.ISuggestSmartRepliesResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SuggestSmartRepliesResponse message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.SuggestSmartRepliesResponse.verify|verify} messages.
                     * @param message SuggestSmartRepliesResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.ISuggestSmartRepliesResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SuggestSmartRepliesResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SuggestSmartRepliesResponse
                     * @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.cloud.dialogflow.v2beta1.SuggestSmartRepliesResponse;

                    /**
                     * Decodes a SuggestSmartRepliesResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SuggestSmartRepliesResponse
                     * @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.cloud.dialogflow.v2beta1.SuggestSmartRepliesResponse;

                    /**
                     * Verifies a SuggestSmartRepliesResponse 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 SuggestSmartRepliesResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SuggestSmartRepliesResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.SuggestSmartRepliesResponse;

                    /**
                     * Creates a plain object from a SuggestSmartRepliesResponse message. Also converts values to other types if specified.
                     * @param message SuggestSmartRepliesResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.SuggestSmartRepliesResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SuggestSmartRepliesResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SuggestSmartRepliesResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GenerateSuggestionsResponse. */
                interface IGenerateSuggestionsResponse {

                    /** GenerateSuggestionsResponse generatorSuggestionAnswers */
                    generatorSuggestionAnswers?: (google.cloud.dialogflow.v2beta1.GenerateSuggestionsResponse.IGeneratorSuggestionAnswer[]|null);

                    /** GenerateSuggestionsResponse latestMessage */
                    latestMessage?: (string|null);
                }

                /** Represents a GenerateSuggestionsResponse. */
                class GenerateSuggestionsResponse implements IGenerateSuggestionsResponse {

                    /**
                     * Constructs a new GenerateSuggestionsResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IGenerateSuggestionsResponse);

                    /** GenerateSuggestionsResponse generatorSuggestionAnswers. */
                    public generatorSuggestionAnswers: google.cloud.dialogflow.v2beta1.GenerateSuggestionsResponse.IGeneratorSuggestionAnswer[];

                    /** GenerateSuggestionsResponse latestMessage. */
                    public latestMessage: string;

                    /**
                     * Creates a new GenerateSuggestionsResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GenerateSuggestionsResponse instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IGenerateSuggestionsResponse): google.cloud.dialogflow.v2beta1.GenerateSuggestionsResponse;

                    /**
                     * Encodes the specified GenerateSuggestionsResponse message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.GenerateSuggestionsResponse.verify|verify} messages.
                     * @param message GenerateSuggestionsResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IGenerateSuggestionsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GenerateSuggestionsResponse message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.GenerateSuggestionsResponse.verify|verify} messages.
                     * @param message GenerateSuggestionsResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IGenerateSuggestionsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GenerateSuggestionsResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GenerateSuggestionsResponse
                     * @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.cloud.dialogflow.v2beta1.GenerateSuggestionsResponse;

                    /**
                     * Decodes a GenerateSuggestionsResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GenerateSuggestionsResponse
                     * @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.cloud.dialogflow.v2beta1.GenerateSuggestionsResponse;

                    /**
                     * Verifies a GenerateSuggestionsResponse 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 GenerateSuggestionsResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GenerateSuggestionsResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.GenerateSuggestionsResponse;

                    /**
                     * Creates a plain object from a GenerateSuggestionsResponse message. Also converts values to other types if specified.
                     * @param message GenerateSuggestionsResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.GenerateSuggestionsResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GenerateSuggestionsResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GenerateSuggestionsResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace GenerateSuggestionsResponse {

                    /** Properties of a GeneratorSuggestionAnswer. */
                    interface IGeneratorSuggestionAnswer {

                        /** GeneratorSuggestionAnswer generatorSuggestion */
                        generatorSuggestion?: (google.cloud.dialogflow.v2beta1.IGeneratorSuggestion|null);

                        /** GeneratorSuggestionAnswer sourceGenerator */
                        sourceGenerator?: (string|null);

                        /** GeneratorSuggestionAnswer answerRecord */
                        answerRecord?: (string|null);
                    }

                    /** Represents a GeneratorSuggestionAnswer. */
                    class GeneratorSuggestionAnswer implements IGeneratorSuggestionAnswer {

                        /**
                         * Constructs a new GeneratorSuggestionAnswer.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2beta1.GenerateSuggestionsResponse.IGeneratorSuggestionAnswer);

                        /** GeneratorSuggestionAnswer generatorSuggestion. */
                        public generatorSuggestion?: (google.cloud.dialogflow.v2beta1.IGeneratorSuggestion|null);

                        /** GeneratorSuggestionAnswer sourceGenerator. */
                        public sourceGenerator: string;

                        /** GeneratorSuggestionAnswer answerRecord. */
                        public answerRecord: string;

                        /**
                         * Creates a new GeneratorSuggestionAnswer instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns GeneratorSuggestionAnswer instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2beta1.GenerateSuggestionsResponse.IGeneratorSuggestionAnswer): google.cloud.dialogflow.v2beta1.GenerateSuggestionsResponse.GeneratorSuggestionAnswer;

                        /**
                         * Encodes the specified GeneratorSuggestionAnswer message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.GenerateSuggestionsResponse.GeneratorSuggestionAnswer.verify|verify} messages.
                         * @param message GeneratorSuggestionAnswer message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2beta1.GenerateSuggestionsResponse.IGeneratorSuggestionAnswer, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified GeneratorSuggestionAnswer message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.GenerateSuggestionsResponse.GeneratorSuggestionAnswer.verify|verify} messages.
                         * @param message GeneratorSuggestionAnswer message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.GenerateSuggestionsResponse.IGeneratorSuggestionAnswer, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a GeneratorSuggestionAnswer message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns GeneratorSuggestionAnswer
                         * @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.cloud.dialogflow.v2beta1.GenerateSuggestionsResponse.GeneratorSuggestionAnswer;

                        /**
                         * Decodes a GeneratorSuggestionAnswer message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns GeneratorSuggestionAnswer
                         * @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.cloud.dialogflow.v2beta1.GenerateSuggestionsResponse.GeneratorSuggestionAnswer;

                        /**
                         * Verifies a GeneratorSuggestionAnswer 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 GeneratorSuggestionAnswer message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns GeneratorSuggestionAnswer
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.GenerateSuggestionsResponse.GeneratorSuggestionAnswer;

                        /**
                         * Creates a plain object from a GeneratorSuggestionAnswer message. Also converts values to other types if specified.
                         * @param message GeneratorSuggestionAnswer
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.dialogflow.v2beta1.GenerateSuggestionsResponse.GeneratorSuggestionAnswer, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this GeneratorSuggestionAnswer to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for GeneratorSuggestionAnswer
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }
                }

                /** Properties of a SuggestDialogflowAssistsResponse. */
                interface ISuggestDialogflowAssistsResponse {

                    /** SuggestDialogflowAssistsResponse dialogflowAssistAnswers */
                    dialogflowAssistAnswers?: (google.cloud.dialogflow.v2beta1.IDialogflowAssistAnswer[]|null);

                    /** SuggestDialogflowAssistsResponse latestMessage */
                    latestMessage?: (string|null);

                    /** SuggestDialogflowAssistsResponse contextSize */
                    contextSize?: (number|null);
                }

                /** Represents a SuggestDialogflowAssistsResponse. */
                class SuggestDialogflowAssistsResponse implements ISuggestDialogflowAssistsResponse {

                    /**
                     * Constructs a new SuggestDialogflowAssistsResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.ISuggestDialogflowAssistsResponse);

                    /** SuggestDialogflowAssistsResponse dialogflowAssistAnswers. */
                    public dialogflowAssistAnswers: google.cloud.dialogflow.v2beta1.IDialogflowAssistAnswer[];

                    /** SuggestDialogflowAssistsResponse latestMessage. */
                    public latestMessage: string;

                    /** SuggestDialogflowAssistsResponse contextSize. */
                    public contextSize: number;

                    /**
                     * Creates a new SuggestDialogflowAssistsResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SuggestDialogflowAssistsResponse instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.ISuggestDialogflowAssistsResponse): google.cloud.dialogflow.v2beta1.SuggestDialogflowAssistsResponse;

                    /**
                     * Encodes the specified SuggestDialogflowAssistsResponse message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.SuggestDialogflowAssistsResponse.verify|verify} messages.
                     * @param message SuggestDialogflowAssistsResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.ISuggestDialogflowAssistsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SuggestDialogflowAssistsResponse message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.SuggestDialogflowAssistsResponse.verify|verify} messages.
                     * @param message SuggestDialogflowAssistsResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.ISuggestDialogflowAssistsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SuggestDialogflowAssistsResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SuggestDialogflowAssistsResponse
                     * @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.cloud.dialogflow.v2beta1.SuggestDialogflowAssistsResponse;

                    /**
                     * Decodes a SuggestDialogflowAssistsResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SuggestDialogflowAssistsResponse
                     * @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.cloud.dialogflow.v2beta1.SuggestDialogflowAssistsResponse;

                    /**
                     * Verifies a SuggestDialogflowAssistsResponse 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 SuggestDialogflowAssistsResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SuggestDialogflowAssistsResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.SuggestDialogflowAssistsResponse;

                    /**
                     * Creates a plain object from a SuggestDialogflowAssistsResponse message. Also converts values to other types if specified.
                     * @param message SuggestDialogflowAssistsResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.SuggestDialogflowAssistsResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SuggestDialogflowAssistsResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SuggestDialogflowAssistsResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a Suggestion. */
                interface ISuggestion {

                    /** Suggestion name */
                    name?: (string|null);

                    /** Suggestion articles */
                    articles?: (google.cloud.dialogflow.v2beta1.Suggestion.IArticle[]|null);

                    /** Suggestion faqAnswers */
                    faqAnswers?: (google.cloud.dialogflow.v2beta1.Suggestion.IFaqAnswer[]|null);

                    /** Suggestion createTime */
                    createTime?: (google.protobuf.ITimestamp|null);

                    /** Suggestion latestMessage */
                    latestMessage?: (string|null);
                }

                /** Represents a Suggestion. */
                class Suggestion implements ISuggestion {

                    /**
                     * Constructs a new Suggestion.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.ISuggestion);

                    /** Suggestion name. */
                    public name: string;

                    /** Suggestion articles. */
                    public articles: google.cloud.dialogflow.v2beta1.Suggestion.IArticle[];

                    /** Suggestion faqAnswers. */
                    public faqAnswers: google.cloud.dialogflow.v2beta1.Suggestion.IFaqAnswer[];

                    /** Suggestion createTime. */
                    public createTime?: (google.protobuf.ITimestamp|null);

                    /** Suggestion latestMessage. */
                    public latestMessage: string;

                    /**
                     * Creates a new Suggestion instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Suggestion instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.ISuggestion): google.cloud.dialogflow.v2beta1.Suggestion;

                    /**
                     * Encodes the specified Suggestion message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Suggestion.verify|verify} messages.
                     * @param message Suggestion message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.ISuggestion, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Suggestion message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Suggestion.verify|verify} messages.
                     * @param message Suggestion message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.ISuggestion, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a Suggestion message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Suggestion
                     * @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.cloud.dialogflow.v2beta1.Suggestion;

                    /**
                     * Decodes a Suggestion message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Suggestion
                     * @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.cloud.dialogflow.v2beta1.Suggestion;

                    /**
                     * Verifies a Suggestion 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 Suggestion message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Suggestion
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.Suggestion;

                    /**
                     * Creates a plain object from a Suggestion message. Also converts values to other types if specified.
                     * @param message Suggestion
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.Suggestion, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Suggestion to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Suggestion
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace Suggestion {

                    /** Properties of an Article. */
                    interface IArticle {

                        /** Article title */
                        title?: (string|null);

                        /** Article uri */
                        uri?: (string|null);

                        /** Article snippets */
                        snippets?: (string[]|null);

                        /** Article metadata */
                        metadata?: ({ [k: string]: string }|null);

                        /** Article answerRecord */
                        answerRecord?: (string|null);
                    }

                    /** Represents an Article. */
                    class Article implements IArticle {

                        /**
                         * Constructs a new Article.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2beta1.Suggestion.IArticle);

                        /** Article title. */
                        public title: string;

                        /** Article uri. */
                        public uri: string;

                        /** Article snippets. */
                        public snippets: string[];

                        /** Article metadata. */
                        public metadata: { [k: string]: string };

                        /** Article answerRecord. */
                        public answerRecord: string;

                        /**
                         * Creates a new Article instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns Article instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2beta1.Suggestion.IArticle): google.cloud.dialogflow.v2beta1.Suggestion.Article;

                        /**
                         * Encodes the specified Article message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Suggestion.Article.verify|verify} messages.
                         * @param message Article message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2beta1.Suggestion.IArticle, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified Article message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Suggestion.Article.verify|verify} messages.
                         * @param message Article message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.Suggestion.IArticle, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes an Article message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns Article
                         * @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.cloud.dialogflow.v2beta1.Suggestion.Article;

                        /**
                         * Decodes an Article message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns Article
                         * @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.cloud.dialogflow.v2beta1.Suggestion.Article;

                        /**
                         * Verifies an Article 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 Article message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns Article
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.Suggestion.Article;

                        /**
                         * Creates a plain object from an Article message. Also converts values to other types if specified.
                         * @param message Article
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.dialogflow.v2beta1.Suggestion.Article, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this Article to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for Article
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    /** Properties of a FaqAnswer. */
                    interface IFaqAnswer {

                        /** FaqAnswer answer */
                        answer?: (string|null);

                        /** FaqAnswer confidence */
                        confidence?: (number|null);

                        /** FaqAnswer question */
                        question?: (string|null);

                        /** FaqAnswer source */
                        source?: (string|null);

                        /** FaqAnswer metadata */
                        metadata?: ({ [k: string]: string }|null);

                        /** FaqAnswer answerRecord */
                        answerRecord?: (string|null);
                    }

                    /** Represents a FaqAnswer. */
                    class FaqAnswer implements IFaqAnswer {

                        /**
                         * Constructs a new FaqAnswer.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2beta1.Suggestion.IFaqAnswer);

                        /** FaqAnswer answer. */
                        public answer: string;

                        /** FaqAnswer confidence. */
                        public confidence: number;

                        /** FaqAnswer question. */
                        public question: string;

                        /** FaqAnswer source. */
                        public source: string;

                        /** FaqAnswer metadata. */
                        public metadata: { [k: string]: string };

                        /** FaqAnswer answerRecord. */
                        public answerRecord: string;

                        /**
                         * Creates a new FaqAnswer instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns FaqAnswer instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2beta1.Suggestion.IFaqAnswer): google.cloud.dialogflow.v2beta1.Suggestion.FaqAnswer;

                        /**
                         * Encodes the specified FaqAnswer message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Suggestion.FaqAnswer.verify|verify} messages.
                         * @param message FaqAnswer message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2beta1.Suggestion.IFaqAnswer, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified FaqAnswer message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Suggestion.FaqAnswer.verify|verify} messages.
                         * @param message FaqAnswer message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.Suggestion.IFaqAnswer, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a FaqAnswer message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns FaqAnswer
                         * @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.cloud.dialogflow.v2beta1.Suggestion.FaqAnswer;

                        /**
                         * Decodes a FaqAnswer message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns FaqAnswer
                         * @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.cloud.dialogflow.v2beta1.Suggestion.FaqAnswer;

                        /**
                         * Verifies a FaqAnswer 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 FaqAnswer message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns FaqAnswer
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.Suggestion.FaqAnswer;

                        /**
                         * Creates a plain object from a FaqAnswer message. Also converts values to other types if specified.
                         * @param message FaqAnswer
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.dialogflow.v2beta1.Suggestion.FaqAnswer, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this FaqAnswer to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for FaqAnswer
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }
                }

                /** Properties of a ListSuggestionsRequest. */
                interface IListSuggestionsRequest {

                    /** ListSuggestionsRequest parent */
                    parent?: (string|null);

                    /** ListSuggestionsRequest pageSize */
                    pageSize?: (number|null);

                    /** ListSuggestionsRequest pageToken */
                    pageToken?: (string|null);

                    /** ListSuggestionsRequest filter */
                    filter?: (string|null);
                }

                /** Represents a ListSuggestionsRequest. */
                class ListSuggestionsRequest implements IListSuggestionsRequest {

                    /**
                     * Constructs a new ListSuggestionsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IListSuggestionsRequest);

                    /** ListSuggestionsRequest parent. */
                    public parent: string;

                    /** ListSuggestionsRequest pageSize. */
                    public pageSize: number;

                    /** ListSuggestionsRequest pageToken. */
                    public pageToken: string;

                    /** ListSuggestionsRequest filter. */
                    public filter: string;

                    /**
                     * Creates a new ListSuggestionsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListSuggestionsRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IListSuggestionsRequest): google.cloud.dialogflow.v2beta1.ListSuggestionsRequest;

                    /**
                     * Encodes the specified ListSuggestionsRequest message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.ListSuggestionsRequest.verify|verify} messages.
                     * @param message ListSuggestionsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IListSuggestionsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListSuggestionsRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.ListSuggestionsRequest.verify|verify} messages.
                     * @param message ListSuggestionsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IListSuggestionsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListSuggestionsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListSuggestionsRequest
                     * @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.cloud.dialogflow.v2beta1.ListSuggestionsRequest;

                    /**
                     * Decodes a ListSuggestionsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListSuggestionsRequest
                     * @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.cloud.dialogflow.v2beta1.ListSuggestionsRequest;

                    /**
                     * Verifies a ListSuggestionsRequest 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 ListSuggestionsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListSuggestionsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.ListSuggestionsRequest;

                    /**
                     * Creates a plain object from a ListSuggestionsRequest message. Also converts values to other types if specified.
                     * @param message ListSuggestionsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.ListSuggestionsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListSuggestionsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListSuggestionsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListSuggestionsResponse. */
                interface IListSuggestionsResponse {

                    /** ListSuggestionsResponse suggestions */
                    suggestions?: (google.cloud.dialogflow.v2beta1.ISuggestion[]|null);

                    /** ListSuggestionsResponse nextPageToken */
                    nextPageToken?: (string|null);
                }

                /** Represents a ListSuggestionsResponse. */
                class ListSuggestionsResponse implements IListSuggestionsResponse {

                    /**
                     * Constructs a new ListSuggestionsResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IListSuggestionsResponse);

                    /** ListSuggestionsResponse suggestions. */
                    public suggestions: google.cloud.dialogflow.v2beta1.ISuggestion[];

                    /** ListSuggestionsResponse nextPageToken. */
                    public nextPageToken: string;

                    /**
                     * Creates a new ListSuggestionsResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListSuggestionsResponse instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IListSuggestionsResponse): google.cloud.dialogflow.v2beta1.ListSuggestionsResponse;

                    /**
                     * Encodes the specified ListSuggestionsResponse message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.ListSuggestionsResponse.verify|verify} messages.
                     * @param message ListSuggestionsResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IListSuggestionsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListSuggestionsResponse message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.ListSuggestionsResponse.verify|verify} messages.
                     * @param message ListSuggestionsResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IListSuggestionsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListSuggestionsResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListSuggestionsResponse
                     * @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.cloud.dialogflow.v2beta1.ListSuggestionsResponse;

                    /**
                     * Decodes a ListSuggestionsResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListSuggestionsResponse
                     * @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.cloud.dialogflow.v2beta1.ListSuggestionsResponse;

                    /**
                     * Verifies a ListSuggestionsResponse 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 ListSuggestionsResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListSuggestionsResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.ListSuggestionsResponse;

                    /**
                     * Creates a plain object from a ListSuggestionsResponse message. Also converts values to other types if specified.
                     * @param message ListSuggestionsResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.ListSuggestionsResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListSuggestionsResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListSuggestionsResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a CompileSuggestionRequest. */
                interface ICompileSuggestionRequest {

                    /** CompileSuggestionRequest parent */
                    parent?: (string|null);

                    /** CompileSuggestionRequest latestMessage */
                    latestMessage?: (string|null);

                    /** CompileSuggestionRequest contextSize */
                    contextSize?: (number|null);
                }

                /** Represents a CompileSuggestionRequest. */
                class CompileSuggestionRequest implements ICompileSuggestionRequest {

                    /**
                     * Constructs a new CompileSuggestionRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.ICompileSuggestionRequest);

                    /** CompileSuggestionRequest parent. */
                    public parent: string;

                    /** CompileSuggestionRequest latestMessage. */
                    public latestMessage: string;

                    /** CompileSuggestionRequest contextSize. */
                    public contextSize: number;

                    /**
                     * Creates a new CompileSuggestionRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CompileSuggestionRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.ICompileSuggestionRequest): google.cloud.dialogflow.v2beta1.CompileSuggestionRequest;

                    /**
                     * Encodes the specified CompileSuggestionRequest message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.CompileSuggestionRequest.verify|verify} messages.
                     * @param message CompileSuggestionRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.ICompileSuggestionRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CompileSuggestionRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.CompileSuggestionRequest.verify|verify} messages.
                     * @param message CompileSuggestionRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.ICompileSuggestionRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CompileSuggestionRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CompileSuggestionRequest
                     * @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.cloud.dialogflow.v2beta1.CompileSuggestionRequest;

                    /**
                     * Decodes a CompileSuggestionRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CompileSuggestionRequest
                     * @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.cloud.dialogflow.v2beta1.CompileSuggestionRequest;

                    /**
                     * Verifies a CompileSuggestionRequest 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 CompileSuggestionRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CompileSuggestionRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.CompileSuggestionRequest;

                    /**
                     * Creates a plain object from a CompileSuggestionRequest message. Also converts values to other types if specified.
                     * @param message CompileSuggestionRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.CompileSuggestionRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CompileSuggestionRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CompileSuggestionRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a CompileSuggestionResponse. */
                interface ICompileSuggestionResponse {

                    /** CompileSuggestionResponse suggestion */
                    suggestion?: (google.cloud.dialogflow.v2beta1.ISuggestion|null);

                    /** CompileSuggestionResponse latestMessage */
                    latestMessage?: (string|null);

                    /** CompileSuggestionResponse contextSize */
                    contextSize?: (number|null);
                }

                /** Represents a CompileSuggestionResponse. */
                class CompileSuggestionResponse implements ICompileSuggestionResponse {

                    /**
                     * Constructs a new CompileSuggestionResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.ICompileSuggestionResponse);

                    /** CompileSuggestionResponse suggestion. */
                    public suggestion?: (google.cloud.dialogflow.v2beta1.ISuggestion|null);

                    /** CompileSuggestionResponse latestMessage. */
                    public latestMessage: string;

                    /** CompileSuggestionResponse contextSize. */
                    public contextSize: number;

                    /**
                     * Creates a new CompileSuggestionResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CompileSuggestionResponse instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.ICompileSuggestionResponse): google.cloud.dialogflow.v2beta1.CompileSuggestionResponse;

                    /**
                     * Encodes the specified CompileSuggestionResponse message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.CompileSuggestionResponse.verify|verify} messages.
                     * @param message CompileSuggestionResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.ICompileSuggestionResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CompileSuggestionResponse message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.CompileSuggestionResponse.verify|verify} messages.
                     * @param message CompileSuggestionResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.ICompileSuggestionResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CompileSuggestionResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CompileSuggestionResponse
                     * @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.cloud.dialogflow.v2beta1.CompileSuggestionResponse;

                    /**
                     * Decodes a CompileSuggestionResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CompileSuggestionResponse
                     * @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.cloud.dialogflow.v2beta1.CompileSuggestionResponse;

                    /**
                     * Verifies a CompileSuggestionResponse 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 CompileSuggestionResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CompileSuggestionResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.CompileSuggestionResponse;

                    /**
                     * Creates a plain object from a CompileSuggestionResponse message. Also converts values to other types if specified.
                     * @param message CompileSuggestionResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.CompileSuggestionResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CompileSuggestionResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CompileSuggestionResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ResponseMessage. */
                interface IResponseMessage {

                    /** ResponseMessage text */
                    text?: (google.cloud.dialogflow.v2beta1.ResponseMessage.IText|null);

                    /** ResponseMessage payload */
                    payload?: (google.protobuf.IStruct|null);

                    /** ResponseMessage liveAgentHandoff */
                    liveAgentHandoff?: (google.cloud.dialogflow.v2beta1.ResponseMessage.ILiveAgentHandoff|null);

                    /** ResponseMessage endInteraction */
                    endInteraction?: (google.cloud.dialogflow.v2beta1.ResponseMessage.IEndInteraction|null);

                    /** ResponseMessage mixedAudio */
                    mixedAudio?: (google.cloud.dialogflow.v2beta1.ResponseMessage.IMixedAudio|null);

                    /** ResponseMessage telephonyTransferCall */
                    telephonyTransferCall?: (google.cloud.dialogflow.v2beta1.ResponseMessage.ITelephonyTransferCall|null);
                }

                /** Represents a ResponseMessage. */
                class ResponseMessage implements IResponseMessage {

                    /**
                     * Constructs a new ResponseMessage.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IResponseMessage);

                    /** ResponseMessage text. */
                    public text?: (google.cloud.dialogflow.v2beta1.ResponseMessage.IText|null);

                    /** ResponseMessage payload. */
                    public payload?: (google.protobuf.IStruct|null);

                    /** ResponseMessage liveAgentHandoff. */
                    public liveAgentHandoff?: (google.cloud.dialogflow.v2beta1.ResponseMessage.ILiveAgentHandoff|null);

                    /** ResponseMessage endInteraction. */
                    public endInteraction?: (google.cloud.dialogflow.v2beta1.ResponseMessage.IEndInteraction|null);

                    /** ResponseMessage mixedAudio. */
                    public mixedAudio?: (google.cloud.dialogflow.v2beta1.ResponseMessage.IMixedAudio|null);

                    /** ResponseMessage telephonyTransferCall. */
                    public telephonyTransferCall?: (google.cloud.dialogflow.v2beta1.ResponseMessage.ITelephonyTransferCall|null);

                    /** ResponseMessage message. */
                    public message?: ("text"|"payload"|"liveAgentHandoff"|"endInteraction"|"mixedAudio"|"telephonyTransferCall");

                    /**
                     * Creates a new ResponseMessage instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ResponseMessage instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IResponseMessage): google.cloud.dialogflow.v2beta1.ResponseMessage;

                    /**
                     * Encodes the specified ResponseMessage message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.ResponseMessage.verify|verify} messages.
                     * @param message ResponseMessage message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IResponseMessage, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ResponseMessage message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.ResponseMessage.verify|verify} messages.
                     * @param message ResponseMessage message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IResponseMessage, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ResponseMessage message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ResponseMessage
                     * @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.cloud.dialogflow.v2beta1.ResponseMessage;

                    /**
                     * Decodes a ResponseMessage message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ResponseMessage
                     * @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.cloud.dialogflow.v2beta1.ResponseMessage;

                    /**
                     * Verifies a ResponseMessage 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 ResponseMessage message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ResponseMessage
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.ResponseMessage;

                    /**
                     * Creates a plain object from a ResponseMessage message. Also converts values to other types if specified.
                     * @param message ResponseMessage
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.ResponseMessage, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ResponseMessage to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ResponseMessage
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace ResponseMessage {

                    /** Properties of a Text. */
                    interface IText {

                        /** Text text */
                        text?: (string[]|null);
                    }

                    /** Represents a Text. */
                    class Text implements IText {

                        /**
                         * Constructs a new Text.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2beta1.ResponseMessage.IText);

                        /** Text text. */
                        public text: string[];

                        /**
                         * Creates a new Text instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns Text instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2beta1.ResponseMessage.IText): google.cloud.dialogflow.v2beta1.ResponseMessage.Text;

                        /**
                         * Encodes the specified Text message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.ResponseMessage.Text.verify|verify} messages.
                         * @param message Text message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2beta1.ResponseMessage.IText, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified Text message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.ResponseMessage.Text.verify|verify} messages.
                         * @param message Text message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.ResponseMessage.IText, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a Text message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns Text
                         * @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.cloud.dialogflow.v2beta1.ResponseMessage.Text;

                        /**
                         * Decodes a Text message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns Text
                         * @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.cloud.dialogflow.v2beta1.ResponseMessage.Text;

                        /**
                         * Verifies a Text 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 Text message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns Text
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.ResponseMessage.Text;

                        /**
                         * Creates a plain object from a Text message. Also converts values to other types if specified.
                         * @param message Text
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.dialogflow.v2beta1.ResponseMessage.Text, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this Text to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for Text
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    /** Properties of a LiveAgentHandoff. */
                    interface ILiveAgentHandoff {

                        /** LiveAgentHandoff metadata */
                        metadata?: (google.protobuf.IStruct|null);
                    }

                    /** Represents a LiveAgentHandoff. */
                    class LiveAgentHandoff implements ILiveAgentHandoff {

                        /**
                         * Constructs a new LiveAgentHandoff.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2beta1.ResponseMessage.ILiveAgentHandoff);

                        /** LiveAgentHandoff metadata. */
                        public metadata?: (google.protobuf.IStruct|null);

                        /**
                         * Creates a new LiveAgentHandoff instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns LiveAgentHandoff instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2beta1.ResponseMessage.ILiveAgentHandoff): google.cloud.dialogflow.v2beta1.ResponseMessage.LiveAgentHandoff;

                        /**
                         * Encodes the specified LiveAgentHandoff message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.ResponseMessage.LiveAgentHandoff.verify|verify} messages.
                         * @param message LiveAgentHandoff message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2beta1.ResponseMessage.ILiveAgentHandoff, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified LiveAgentHandoff message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.ResponseMessage.LiveAgentHandoff.verify|verify} messages.
                         * @param message LiveAgentHandoff message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.ResponseMessage.ILiveAgentHandoff, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a LiveAgentHandoff message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns LiveAgentHandoff
                         * @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.cloud.dialogflow.v2beta1.ResponseMessage.LiveAgentHandoff;

                        /**
                         * Decodes a LiveAgentHandoff message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns LiveAgentHandoff
                         * @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.cloud.dialogflow.v2beta1.ResponseMessage.LiveAgentHandoff;

                        /**
                         * Verifies a LiveAgentHandoff 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 LiveAgentHandoff message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns LiveAgentHandoff
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.ResponseMessage.LiveAgentHandoff;

                        /**
                         * Creates a plain object from a LiveAgentHandoff message. Also converts values to other types if specified.
                         * @param message LiveAgentHandoff
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.dialogflow.v2beta1.ResponseMessage.LiveAgentHandoff, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this LiveAgentHandoff to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for LiveAgentHandoff
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    /** Properties of an EndInteraction. */
                    interface IEndInteraction {
                    }

                    /** Represents an EndInteraction. */
                    class EndInteraction implements IEndInteraction {

                        /**
                         * Constructs a new EndInteraction.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2beta1.ResponseMessage.IEndInteraction);

                        /**
                         * Creates a new EndInteraction instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns EndInteraction instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2beta1.ResponseMessage.IEndInteraction): google.cloud.dialogflow.v2beta1.ResponseMessage.EndInteraction;

                        /**
                         * Encodes the specified EndInteraction message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.ResponseMessage.EndInteraction.verify|verify} messages.
                         * @param message EndInteraction message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2beta1.ResponseMessage.IEndInteraction, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified EndInteraction message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.ResponseMessage.EndInteraction.verify|verify} messages.
                         * @param message EndInteraction message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.ResponseMessage.IEndInteraction, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes an EndInteraction message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns EndInteraction
                         * @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.cloud.dialogflow.v2beta1.ResponseMessage.EndInteraction;

                        /**
                         * Decodes an EndInteraction message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns EndInteraction
                         * @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.cloud.dialogflow.v2beta1.ResponseMessage.EndInteraction;

                        /**
                         * Verifies an EndInteraction 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 EndInteraction message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns EndInteraction
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.ResponseMessage.EndInteraction;

                        /**
                         * Creates a plain object from an EndInteraction message. Also converts values to other types if specified.
                         * @param message EndInteraction
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.dialogflow.v2beta1.ResponseMessage.EndInteraction, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this EndInteraction to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for EndInteraction
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    /** Properties of a MixedAudio. */
                    interface IMixedAudio {

                        /** MixedAudio segments */
                        segments?: (google.cloud.dialogflow.v2beta1.ResponseMessage.MixedAudio.ISegment[]|null);
                    }

                    /** Represents a MixedAudio. */
                    class MixedAudio implements IMixedAudio {

                        /**
                         * Constructs a new MixedAudio.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2beta1.ResponseMessage.IMixedAudio);

                        /** MixedAudio segments. */
                        public segments: google.cloud.dialogflow.v2beta1.ResponseMessage.MixedAudio.ISegment[];

                        /**
                         * Creates a new MixedAudio instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns MixedAudio instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2beta1.ResponseMessage.IMixedAudio): google.cloud.dialogflow.v2beta1.ResponseMessage.MixedAudio;

                        /**
                         * Encodes the specified MixedAudio message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.ResponseMessage.MixedAudio.verify|verify} messages.
                         * @param message MixedAudio message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2beta1.ResponseMessage.IMixedAudio, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified MixedAudio message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.ResponseMessage.MixedAudio.verify|verify} messages.
                         * @param message MixedAudio message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.ResponseMessage.IMixedAudio, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a MixedAudio message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns MixedAudio
                         * @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.cloud.dialogflow.v2beta1.ResponseMessage.MixedAudio;

                        /**
                         * Decodes a MixedAudio message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns MixedAudio
                         * @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.cloud.dialogflow.v2beta1.ResponseMessage.MixedAudio;

                        /**
                         * Verifies a MixedAudio 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 MixedAudio message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns MixedAudio
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.ResponseMessage.MixedAudio;

                        /**
                         * Creates a plain object from a MixedAudio message. Also converts values to other types if specified.
                         * @param message MixedAudio
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.dialogflow.v2beta1.ResponseMessage.MixedAudio, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this MixedAudio to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for MixedAudio
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    namespace MixedAudio {

                        /** Properties of a Segment. */
                        interface ISegment {

                            /** Segment audio */
                            audio?: (Uint8Array|Buffer|string|null);

                            /** Segment uri */
                            uri?: (string|null);

                            /** Segment allowPlaybackInterruption */
                            allowPlaybackInterruption?: (boolean|null);
                        }

                        /** Represents a Segment. */
                        class Segment implements ISegment {

                            /**
                             * Constructs a new Segment.
                             * @param [properties] Properties to set
                             */
                            constructor(properties?: google.cloud.dialogflow.v2beta1.ResponseMessage.MixedAudio.ISegment);

                            /** Segment audio. */
                            public audio?: (Uint8Array|Buffer|string|null);

                            /** Segment uri. */
                            public uri?: (string|null);

                            /** Segment allowPlaybackInterruption. */
                            public allowPlaybackInterruption: boolean;

                            /** Segment content. */
                            public content?: ("audio"|"uri");

                            /**
                             * Creates a new Segment instance using the specified properties.
                             * @param [properties] Properties to set
                             * @returns Segment instance
                             */
                            public static create(properties?: google.cloud.dialogflow.v2beta1.ResponseMessage.MixedAudio.ISegment): google.cloud.dialogflow.v2beta1.ResponseMessage.MixedAudio.Segment;

                            /**
                             * Encodes the specified Segment message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.ResponseMessage.MixedAudio.Segment.verify|verify} messages.
                             * @param message Segment message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encode(message: google.cloud.dialogflow.v2beta1.ResponseMessage.MixedAudio.ISegment, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Encodes the specified Segment message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.ResponseMessage.MixedAudio.Segment.verify|verify} messages.
                             * @param message Segment message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.ResponseMessage.MixedAudio.ISegment, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Decodes a Segment message from the specified reader or buffer.
                             * @param reader Reader or buffer to decode from
                             * @param [length] Message length if known beforehand
                             * @returns Segment
                             * @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.cloud.dialogflow.v2beta1.ResponseMessage.MixedAudio.Segment;

                            /**
                             * Decodes a Segment message from the specified reader or buffer, length delimited.
                             * @param reader Reader or buffer to decode from
                             * @returns Segment
                             * @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.cloud.dialogflow.v2beta1.ResponseMessage.MixedAudio.Segment;

                            /**
                             * Verifies a Segment 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 Segment message from a plain object. Also converts values to their respective internal types.
                             * @param object Plain object
                             * @returns Segment
                             */
                            public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.ResponseMessage.MixedAudio.Segment;

                            /**
                             * Creates a plain object from a Segment message. Also converts values to other types if specified.
                             * @param message Segment
                             * @param [options] Conversion options
                             * @returns Plain object
                             */
                            public static toObject(message: google.cloud.dialogflow.v2beta1.ResponseMessage.MixedAudio.Segment, options?: $protobuf.IConversionOptions): { [k: string]: any };

                            /**
                             * Converts this Segment to JSON.
                             * @returns JSON object
                             */
                            public toJSON(): { [k: string]: any };

                            /**
                             * Gets the default type url for Segment
                             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                             * @returns The default type url
                             */
                            public static getTypeUrl(typeUrlPrefix?: string): string;
                        }
                    }

                    /** Properties of a TelephonyTransferCall. */
                    interface ITelephonyTransferCall {

                        /** TelephonyTransferCall phoneNumber */
                        phoneNumber?: (string|null);

                        /** TelephonyTransferCall sipUri */
                        sipUri?: (string|null);
                    }

                    /** Represents a TelephonyTransferCall. */
                    class TelephonyTransferCall implements ITelephonyTransferCall {

                        /**
                         * Constructs a new TelephonyTransferCall.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2beta1.ResponseMessage.ITelephonyTransferCall);

                        /** TelephonyTransferCall phoneNumber. */
                        public phoneNumber?: (string|null);

                        /** TelephonyTransferCall sipUri. */
                        public sipUri?: (string|null);

                        /** TelephonyTransferCall endpoint. */
                        public endpoint?: ("phoneNumber"|"sipUri");

                        /**
                         * Creates a new TelephonyTransferCall instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns TelephonyTransferCall instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2beta1.ResponseMessage.ITelephonyTransferCall): google.cloud.dialogflow.v2beta1.ResponseMessage.TelephonyTransferCall;

                        /**
                         * Encodes the specified TelephonyTransferCall message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.ResponseMessage.TelephonyTransferCall.verify|verify} messages.
                         * @param message TelephonyTransferCall message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2beta1.ResponseMessage.ITelephonyTransferCall, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified TelephonyTransferCall message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.ResponseMessage.TelephonyTransferCall.verify|verify} messages.
                         * @param message TelephonyTransferCall message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.ResponseMessage.ITelephonyTransferCall, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a TelephonyTransferCall message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns TelephonyTransferCall
                         * @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.cloud.dialogflow.v2beta1.ResponseMessage.TelephonyTransferCall;

                        /**
                         * Decodes a TelephonyTransferCall message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns TelephonyTransferCall
                         * @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.cloud.dialogflow.v2beta1.ResponseMessage.TelephonyTransferCall;

                        /**
                         * Verifies a TelephonyTransferCall 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 TelephonyTransferCall message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns TelephonyTransferCall
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.ResponseMessage.TelephonyTransferCall;

                        /**
                         * Creates a plain object from a TelephonyTransferCall message. Also converts values to other types if specified.
                         * @param message TelephonyTransferCall
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.dialogflow.v2beta1.ResponseMessage.TelephonyTransferCall, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this TelephonyTransferCall to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for TelephonyTransferCall
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }
                }

                /** Properties of a SuggestKnowledgeAssistRequest. */
                interface ISuggestKnowledgeAssistRequest {

                    /** SuggestKnowledgeAssistRequest parent */
                    parent?: (string|null);

                    /** SuggestKnowledgeAssistRequest latestMessage */
                    latestMessage?: (string|null);

                    /** SuggestKnowledgeAssistRequest contextSize */
                    contextSize?: (number|null);

                    /** SuggestKnowledgeAssistRequest previousSuggestedQuery */
                    previousSuggestedQuery?: (string|null);
                }

                /** Represents a SuggestKnowledgeAssistRequest. */
                class SuggestKnowledgeAssistRequest implements ISuggestKnowledgeAssistRequest {

                    /**
                     * Constructs a new SuggestKnowledgeAssistRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.ISuggestKnowledgeAssistRequest);

                    /** SuggestKnowledgeAssistRequest parent. */
                    public parent: string;

                    /** SuggestKnowledgeAssistRequest latestMessage. */
                    public latestMessage: string;

                    /** SuggestKnowledgeAssistRequest contextSize. */
                    public contextSize: number;

                    /** SuggestKnowledgeAssistRequest previousSuggestedQuery. */
                    public previousSuggestedQuery: string;

                    /**
                     * Creates a new SuggestKnowledgeAssistRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SuggestKnowledgeAssistRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.ISuggestKnowledgeAssistRequest): google.cloud.dialogflow.v2beta1.SuggestKnowledgeAssistRequest;

                    /**
                     * Encodes the specified SuggestKnowledgeAssistRequest message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.SuggestKnowledgeAssistRequest.verify|verify} messages.
                     * @param message SuggestKnowledgeAssistRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.ISuggestKnowledgeAssistRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SuggestKnowledgeAssistRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.SuggestKnowledgeAssistRequest.verify|verify} messages.
                     * @param message SuggestKnowledgeAssistRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.ISuggestKnowledgeAssistRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SuggestKnowledgeAssistRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SuggestKnowledgeAssistRequest
                     * @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.cloud.dialogflow.v2beta1.SuggestKnowledgeAssistRequest;

                    /**
                     * Decodes a SuggestKnowledgeAssistRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SuggestKnowledgeAssistRequest
                     * @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.cloud.dialogflow.v2beta1.SuggestKnowledgeAssistRequest;

                    /**
                     * Verifies a SuggestKnowledgeAssistRequest 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 SuggestKnowledgeAssistRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SuggestKnowledgeAssistRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.SuggestKnowledgeAssistRequest;

                    /**
                     * Creates a plain object from a SuggestKnowledgeAssistRequest message. Also converts values to other types if specified.
                     * @param message SuggestKnowledgeAssistRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.SuggestKnowledgeAssistRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SuggestKnowledgeAssistRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SuggestKnowledgeAssistRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SuggestKnowledgeAssistResponse. */
                interface ISuggestKnowledgeAssistResponse {

                    /** SuggestKnowledgeAssistResponse knowledgeAssistAnswer */
                    knowledgeAssistAnswer?: (google.cloud.dialogflow.v2beta1.IKnowledgeAssistAnswer|null);

                    /** SuggestKnowledgeAssistResponse latestMessage */
                    latestMessage?: (string|null);

                    /** SuggestKnowledgeAssistResponse contextSize */
                    contextSize?: (number|null);
                }

                /** Represents a SuggestKnowledgeAssistResponse. */
                class SuggestKnowledgeAssistResponse implements ISuggestKnowledgeAssistResponse {

                    /**
                     * Constructs a new SuggestKnowledgeAssistResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.ISuggestKnowledgeAssistResponse);

                    /** SuggestKnowledgeAssistResponse knowledgeAssistAnswer. */
                    public knowledgeAssistAnswer?: (google.cloud.dialogflow.v2beta1.IKnowledgeAssistAnswer|null);

                    /** SuggestKnowledgeAssistResponse latestMessage. */
                    public latestMessage: string;

                    /** SuggestKnowledgeAssistResponse contextSize. */
                    public contextSize: number;

                    /**
                     * Creates a new SuggestKnowledgeAssistResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SuggestKnowledgeAssistResponse instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.ISuggestKnowledgeAssistResponse): google.cloud.dialogflow.v2beta1.SuggestKnowledgeAssistResponse;

                    /**
                     * Encodes the specified SuggestKnowledgeAssistResponse message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.SuggestKnowledgeAssistResponse.verify|verify} messages.
                     * @param message SuggestKnowledgeAssistResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.ISuggestKnowledgeAssistResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SuggestKnowledgeAssistResponse message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.SuggestKnowledgeAssistResponse.verify|verify} messages.
                     * @param message SuggestKnowledgeAssistResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.ISuggestKnowledgeAssistResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SuggestKnowledgeAssistResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SuggestKnowledgeAssistResponse
                     * @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.cloud.dialogflow.v2beta1.SuggestKnowledgeAssistResponse;

                    /**
                     * Decodes a SuggestKnowledgeAssistResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SuggestKnowledgeAssistResponse
                     * @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.cloud.dialogflow.v2beta1.SuggestKnowledgeAssistResponse;

                    /**
                     * Verifies a SuggestKnowledgeAssistResponse 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 SuggestKnowledgeAssistResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SuggestKnowledgeAssistResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.SuggestKnowledgeAssistResponse;

                    /**
                     * Creates a plain object from a SuggestKnowledgeAssistResponse message. Also converts values to other types if specified.
                     * @param message SuggestKnowledgeAssistResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.SuggestKnowledgeAssistResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SuggestKnowledgeAssistResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SuggestKnowledgeAssistResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an IngestedContextReferenceDebugInfo. */
                interface IIngestedContextReferenceDebugInfo {

                    /** IngestedContextReferenceDebugInfo projectNotAllowlisted */
                    projectNotAllowlisted?: (boolean|null);

                    /** IngestedContextReferenceDebugInfo contextReferenceRetrieved */
                    contextReferenceRetrieved?: (boolean|null);

                    /** IngestedContextReferenceDebugInfo ingestedParametersDebugInfo */
                    ingestedParametersDebugInfo?: (google.cloud.dialogflow.v2beta1.IngestedContextReferenceDebugInfo.IIngestedParameterDebugInfo[]|null);
                }

                /** Represents an IngestedContextReferenceDebugInfo. */
                class IngestedContextReferenceDebugInfo implements IIngestedContextReferenceDebugInfo {

                    /**
                     * Constructs a new IngestedContextReferenceDebugInfo.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IIngestedContextReferenceDebugInfo);

                    /** IngestedContextReferenceDebugInfo projectNotAllowlisted. */
                    public projectNotAllowlisted: boolean;

                    /** IngestedContextReferenceDebugInfo contextReferenceRetrieved. */
                    public contextReferenceRetrieved: boolean;

                    /** IngestedContextReferenceDebugInfo ingestedParametersDebugInfo. */
                    public ingestedParametersDebugInfo: google.cloud.dialogflow.v2beta1.IngestedContextReferenceDebugInfo.IIngestedParameterDebugInfo[];

                    /**
                     * Creates a new IngestedContextReferenceDebugInfo instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns IngestedContextReferenceDebugInfo instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IIngestedContextReferenceDebugInfo): google.cloud.dialogflow.v2beta1.IngestedContextReferenceDebugInfo;

                    /**
                     * Encodes the specified IngestedContextReferenceDebugInfo message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.IngestedContextReferenceDebugInfo.verify|verify} messages.
                     * @param message IngestedContextReferenceDebugInfo message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IIngestedContextReferenceDebugInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified IngestedContextReferenceDebugInfo message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.IngestedContextReferenceDebugInfo.verify|verify} messages.
                     * @param message IngestedContextReferenceDebugInfo message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IIngestedContextReferenceDebugInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an IngestedContextReferenceDebugInfo message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns IngestedContextReferenceDebugInfo
                     * @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.cloud.dialogflow.v2beta1.IngestedContextReferenceDebugInfo;

                    /**
                     * Decodes an IngestedContextReferenceDebugInfo message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns IngestedContextReferenceDebugInfo
                     * @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.cloud.dialogflow.v2beta1.IngestedContextReferenceDebugInfo;

                    /**
                     * Verifies an IngestedContextReferenceDebugInfo 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 IngestedContextReferenceDebugInfo message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns IngestedContextReferenceDebugInfo
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.IngestedContextReferenceDebugInfo;

                    /**
                     * Creates a plain object from an IngestedContextReferenceDebugInfo message. Also converts values to other types if specified.
                     * @param message IngestedContextReferenceDebugInfo
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.IngestedContextReferenceDebugInfo, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this IngestedContextReferenceDebugInfo to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for IngestedContextReferenceDebugInfo
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace IngestedContextReferenceDebugInfo {

                    /** Properties of an IngestedParameterDebugInfo. */
                    interface IIngestedParameterDebugInfo {

                        /** IngestedParameterDebugInfo parameter */
                        parameter?: (string|null);

                        /** IngestedParameterDebugInfo ingestionStatus */
                        ingestionStatus?: (google.cloud.dialogflow.v2beta1.IngestedContextReferenceDebugInfo.IngestedParameterDebugInfo.IngestionStatus|keyof typeof google.cloud.dialogflow.v2beta1.IngestedContextReferenceDebugInfo.IngestedParameterDebugInfo.IngestionStatus|null);
                    }

                    /** Represents an IngestedParameterDebugInfo. */
                    class IngestedParameterDebugInfo implements IIngestedParameterDebugInfo {

                        /**
                         * Constructs a new IngestedParameterDebugInfo.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2beta1.IngestedContextReferenceDebugInfo.IIngestedParameterDebugInfo);

                        /** IngestedParameterDebugInfo parameter. */
                        public parameter: string;

                        /** IngestedParameterDebugInfo ingestionStatus. */
                        public ingestionStatus: (google.cloud.dialogflow.v2beta1.IngestedContextReferenceDebugInfo.IngestedParameterDebugInfo.IngestionStatus|keyof typeof google.cloud.dialogflow.v2beta1.IngestedContextReferenceDebugInfo.IngestedParameterDebugInfo.IngestionStatus);

                        /**
                         * Creates a new IngestedParameterDebugInfo instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns IngestedParameterDebugInfo instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2beta1.IngestedContextReferenceDebugInfo.IIngestedParameterDebugInfo): google.cloud.dialogflow.v2beta1.IngestedContextReferenceDebugInfo.IngestedParameterDebugInfo;

                        /**
                         * Encodes the specified IngestedParameterDebugInfo message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.IngestedContextReferenceDebugInfo.IngestedParameterDebugInfo.verify|verify} messages.
                         * @param message IngestedParameterDebugInfo message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2beta1.IngestedContextReferenceDebugInfo.IIngestedParameterDebugInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified IngestedParameterDebugInfo message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.IngestedContextReferenceDebugInfo.IngestedParameterDebugInfo.verify|verify} messages.
                         * @param message IngestedParameterDebugInfo message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IngestedContextReferenceDebugInfo.IIngestedParameterDebugInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes an IngestedParameterDebugInfo message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns IngestedParameterDebugInfo
                         * @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.cloud.dialogflow.v2beta1.IngestedContextReferenceDebugInfo.IngestedParameterDebugInfo;

                        /**
                         * Decodes an IngestedParameterDebugInfo message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns IngestedParameterDebugInfo
                         * @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.cloud.dialogflow.v2beta1.IngestedContextReferenceDebugInfo.IngestedParameterDebugInfo;

                        /**
                         * Verifies an IngestedParameterDebugInfo 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 IngestedParameterDebugInfo message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns IngestedParameterDebugInfo
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.IngestedContextReferenceDebugInfo.IngestedParameterDebugInfo;

                        /**
                         * Creates a plain object from an IngestedParameterDebugInfo message. Also converts values to other types if specified.
                         * @param message IngestedParameterDebugInfo
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.dialogflow.v2beta1.IngestedContextReferenceDebugInfo.IngestedParameterDebugInfo, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this IngestedParameterDebugInfo to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for IngestedParameterDebugInfo
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    namespace IngestedParameterDebugInfo {

                        /** IngestionStatus enum. */
                        enum IngestionStatus {
                            INGESTION_STATUS_UNSPECIFIED = 0,
                            INGESTION_STATUS_SUCCEEDED = 1,
                            INGESTION_STATUS_CONTEXT_NOT_AVAILABLE = 2,
                            INGESTION_STATUS_PARSE_FAILED = 3,
                            INGESTION_STATUS_INVALID_ENTRY = 4,
                            INGESTION_STATUS_INVALID_FORMAT = 5,
                            INGESTION_STATUS_LANGUAGE_MISMATCH = 6
                        }
                    }
                }

                /** Properties of a ServiceLatency. */
                interface IServiceLatency {

                    /** ServiceLatency internalServiceLatencies */
                    internalServiceLatencies?: (google.cloud.dialogflow.v2beta1.ServiceLatency.IInternalServiceLatency[]|null);
                }

                /** Represents a ServiceLatency. */
                class ServiceLatency implements IServiceLatency {

                    /**
                     * Constructs a new ServiceLatency.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IServiceLatency);

                    /** ServiceLatency internalServiceLatencies. */
                    public internalServiceLatencies: google.cloud.dialogflow.v2beta1.ServiceLatency.IInternalServiceLatency[];

                    /**
                     * Creates a new ServiceLatency instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ServiceLatency instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IServiceLatency): google.cloud.dialogflow.v2beta1.ServiceLatency;

                    /**
                     * Encodes the specified ServiceLatency message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.ServiceLatency.verify|verify} messages.
                     * @param message ServiceLatency message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IServiceLatency, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ServiceLatency message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.ServiceLatency.verify|verify} messages.
                     * @param message ServiceLatency message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IServiceLatency, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ServiceLatency message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ServiceLatency
                     * @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.cloud.dialogflow.v2beta1.ServiceLatency;

                    /**
                     * Decodes a ServiceLatency message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ServiceLatency
                     * @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.cloud.dialogflow.v2beta1.ServiceLatency;

                    /**
                     * Verifies a ServiceLatency 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 ServiceLatency message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ServiceLatency
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.ServiceLatency;

                    /**
                     * Creates a plain object from a ServiceLatency message. Also converts values to other types if specified.
                     * @param message ServiceLatency
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.ServiceLatency, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ServiceLatency to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ServiceLatency
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace ServiceLatency {

                    /** Properties of an InternalServiceLatency. */
                    interface IInternalServiceLatency {

                        /** InternalServiceLatency step */
                        step?: (string|null);

                        /** InternalServiceLatency latencyMs */
                        latencyMs?: (number|null);

                        /** InternalServiceLatency startTime */
                        startTime?: (google.protobuf.ITimestamp|null);

                        /** InternalServiceLatency completeTime */
                        completeTime?: (google.protobuf.ITimestamp|null);
                    }

                    /** Represents an InternalServiceLatency. */
                    class InternalServiceLatency implements IInternalServiceLatency {

                        /**
                         * Constructs a new InternalServiceLatency.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2beta1.ServiceLatency.IInternalServiceLatency);

                        /** InternalServiceLatency step. */
                        public step: string;

                        /** InternalServiceLatency latencyMs. */
                        public latencyMs: number;

                        /** InternalServiceLatency startTime. */
                        public startTime?: (google.protobuf.ITimestamp|null);

                        /** InternalServiceLatency completeTime. */
                        public completeTime?: (google.protobuf.ITimestamp|null);

                        /**
                         * Creates a new InternalServiceLatency instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns InternalServiceLatency instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2beta1.ServiceLatency.IInternalServiceLatency): google.cloud.dialogflow.v2beta1.ServiceLatency.InternalServiceLatency;

                        /**
                         * Encodes the specified InternalServiceLatency message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.ServiceLatency.InternalServiceLatency.verify|verify} messages.
                         * @param message InternalServiceLatency message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2beta1.ServiceLatency.IInternalServiceLatency, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified InternalServiceLatency message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.ServiceLatency.InternalServiceLatency.verify|verify} messages.
                         * @param message InternalServiceLatency message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.ServiceLatency.IInternalServiceLatency, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes an InternalServiceLatency message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns InternalServiceLatency
                         * @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.cloud.dialogflow.v2beta1.ServiceLatency.InternalServiceLatency;

                        /**
                         * Decodes an InternalServiceLatency message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns InternalServiceLatency
                         * @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.cloud.dialogflow.v2beta1.ServiceLatency.InternalServiceLatency;

                        /**
                         * Verifies an InternalServiceLatency 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 InternalServiceLatency message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns InternalServiceLatency
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.ServiceLatency.InternalServiceLatency;

                        /**
                         * Creates a plain object from an InternalServiceLatency message. Also converts values to other types if specified.
                         * @param message InternalServiceLatency
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.dialogflow.v2beta1.ServiceLatency.InternalServiceLatency, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this InternalServiceLatency to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for InternalServiceLatency
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }
                }

                /** Properties of a KnowledgeAssistDebugInfo. */
                interface IKnowledgeAssistDebugInfo {

                    /** KnowledgeAssistDebugInfo queryGenerationFailureReason */
                    queryGenerationFailureReason?: (google.cloud.dialogflow.v2beta1.KnowledgeAssistDebugInfo.QueryGenerationFailureReason|keyof typeof google.cloud.dialogflow.v2beta1.KnowledgeAssistDebugInfo.QueryGenerationFailureReason|null);

                    /** KnowledgeAssistDebugInfo queryCategorizationFailureReason */
                    queryCategorizationFailureReason?: (google.cloud.dialogflow.v2beta1.KnowledgeAssistDebugInfo.QueryCategorizationFailureReason|keyof typeof google.cloud.dialogflow.v2beta1.KnowledgeAssistDebugInfo.QueryCategorizationFailureReason|null);

                    /** KnowledgeAssistDebugInfo datastoreResponseReason */
                    datastoreResponseReason?: (google.cloud.dialogflow.v2beta1.DatastoreResponseReason|keyof typeof google.cloud.dialogflow.v2beta1.DatastoreResponseReason|null);

                    /** KnowledgeAssistDebugInfo knowledgeAssistBehavior */
                    knowledgeAssistBehavior?: (google.cloud.dialogflow.v2beta1.KnowledgeAssistDebugInfo.IKnowledgeAssistBehavior|null);

                    /** KnowledgeAssistDebugInfo ingestedContextReferenceDebugInfo */
                    ingestedContextReferenceDebugInfo?: (google.cloud.dialogflow.v2beta1.IIngestedContextReferenceDebugInfo|null);

                    /** KnowledgeAssistDebugInfo serviceLatency */
                    serviceLatency?: (google.cloud.dialogflow.v2beta1.IServiceLatency|null);
                }

                /** Represents a KnowledgeAssistDebugInfo. */
                class KnowledgeAssistDebugInfo implements IKnowledgeAssistDebugInfo {

                    /**
                     * Constructs a new KnowledgeAssistDebugInfo.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IKnowledgeAssistDebugInfo);

                    /** KnowledgeAssistDebugInfo queryGenerationFailureReason. */
                    public queryGenerationFailureReason: (google.cloud.dialogflow.v2beta1.KnowledgeAssistDebugInfo.QueryGenerationFailureReason|keyof typeof google.cloud.dialogflow.v2beta1.KnowledgeAssistDebugInfo.QueryGenerationFailureReason);

                    /** KnowledgeAssistDebugInfo queryCategorizationFailureReason. */
                    public queryCategorizationFailureReason: (google.cloud.dialogflow.v2beta1.KnowledgeAssistDebugInfo.QueryCategorizationFailureReason|keyof typeof google.cloud.dialogflow.v2beta1.KnowledgeAssistDebugInfo.QueryCategorizationFailureReason);

                    /** KnowledgeAssistDebugInfo datastoreResponseReason. */
                    public datastoreResponseReason: (google.cloud.dialogflow.v2beta1.DatastoreResponseReason|keyof typeof google.cloud.dialogflow.v2beta1.DatastoreResponseReason);

                    /** KnowledgeAssistDebugInfo knowledgeAssistBehavior. */
                    public knowledgeAssistBehavior?: (google.cloud.dialogflow.v2beta1.KnowledgeAssistDebugInfo.IKnowledgeAssistBehavior|null);

                    /** KnowledgeAssistDebugInfo ingestedContextReferenceDebugInfo. */
                    public ingestedContextReferenceDebugInfo?: (google.cloud.dialogflow.v2beta1.IIngestedContextReferenceDebugInfo|null);

                    /** KnowledgeAssistDebugInfo serviceLatency. */
                    public serviceLatency?: (google.cloud.dialogflow.v2beta1.IServiceLatency|null);

                    /**
                     * Creates a new KnowledgeAssistDebugInfo instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns KnowledgeAssistDebugInfo instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IKnowledgeAssistDebugInfo): google.cloud.dialogflow.v2beta1.KnowledgeAssistDebugInfo;

                    /**
                     * Encodes the specified KnowledgeAssistDebugInfo message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.KnowledgeAssistDebugInfo.verify|verify} messages.
                     * @param message KnowledgeAssistDebugInfo message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IKnowledgeAssistDebugInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified KnowledgeAssistDebugInfo message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.KnowledgeAssistDebugInfo.verify|verify} messages.
                     * @param message KnowledgeAssistDebugInfo message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IKnowledgeAssistDebugInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a KnowledgeAssistDebugInfo message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns KnowledgeAssistDebugInfo
                     * @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.cloud.dialogflow.v2beta1.KnowledgeAssistDebugInfo;

                    /**
                     * Decodes a KnowledgeAssistDebugInfo message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns KnowledgeAssistDebugInfo
                     * @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.cloud.dialogflow.v2beta1.KnowledgeAssistDebugInfo;

                    /**
                     * Verifies a KnowledgeAssistDebugInfo 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 KnowledgeAssistDebugInfo message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns KnowledgeAssistDebugInfo
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.KnowledgeAssistDebugInfo;

                    /**
                     * Creates a plain object from a KnowledgeAssistDebugInfo message. Also converts values to other types if specified.
                     * @param message KnowledgeAssistDebugInfo
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.KnowledgeAssistDebugInfo, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this KnowledgeAssistDebugInfo to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for KnowledgeAssistDebugInfo
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace KnowledgeAssistDebugInfo {

                    /** QueryGenerationFailureReason enum. */
                    enum QueryGenerationFailureReason {
                        QUERY_GENERATION_FAILURE_REASON_UNSPECIFIED = 0,
                        QUERY_GENERATION_OUT_OF_QUOTA = 1,
                        QUERY_GENERATION_FAILED = 2,
                        QUERY_GENERATION_NO_QUERY_GENERATED = 3,
                        QUERY_GENERATION_RAI_FAILED = 4,
                        NOT_IN_ALLOWLIST = 5,
                        QUERY_GENERATION_QUERY_REDACTED = 6,
                        QUERY_GENERATION_LLM_RESPONSE_PARSE_FAILED = 10,
                        QUERY_GENERATION_EMPTY_CONVERSATION = 11,
                        QUERY_GENERATION_EMPTY_LAST_MESSAGE = 12,
                        QUERY_GENERATION_TRIGGERING_EVENT_CONDITION_NOT_MET = 13
                    }

                    /** QueryCategorizationFailureReason enum. */
                    enum QueryCategorizationFailureReason {
                        QUERY_CATEGORIZATION_FAILURE_REASON_UNSPECIFIED = 0,
                        QUERY_CATEGORIZATION_INVALID_CONFIG = 1,
                        QUERY_CATEGORIZATION_RESULT_NOT_FOUND = 2,
                        QUERY_CATEGORIZATION_FAILED = 3
                    }

                    /** Properties of a KnowledgeAssistBehavior. */
                    interface IKnowledgeAssistBehavior {

                        /** KnowledgeAssistBehavior answerGenerationRewriterOn */
                        answerGenerationRewriterOn?: (boolean|null);

                        /** KnowledgeAssistBehavior endUserMetadataIncluded */
                        endUserMetadataIncluded?: (boolean|null);

                        /** KnowledgeAssistBehavior returnQueryOnly */
                        returnQueryOnly?: (boolean|null);

                        /** KnowledgeAssistBehavior usePubsubDelivery */
                        usePubsubDelivery?: (boolean|null);

                        /** KnowledgeAssistBehavior disableSyncDelivery */
                        disableSyncDelivery?: (boolean|null);

                        /** KnowledgeAssistBehavior previousQueriesIncluded */
                        previousQueriesIncluded?: (boolean|null);

                        /** KnowledgeAssistBehavior useTranslatedMessage */
                        useTranslatedMessage?: (boolean|null);

                        /** KnowledgeAssistBehavior useCustomSafetyFilterLevel */
                        useCustomSafetyFilterLevel?: (boolean|null);

                        /** KnowledgeAssistBehavior conversationTranscriptHasMixedLanguages */
                        conversationTranscriptHasMixedLanguages?: (boolean|null);

                        /** KnowledgeAssistBehavior queryGenerationAgentLanguageMismatch */
                        queryGenerationAgentLanguageMismatch?: (boolean|null);

                        /** KnowledgeAssistBehavior queryGenerationEndUserLanguageMismatch */
                        queryGenerationEndUserLanguageMismatch?: (boolean|null);

                        /** KnowledgeAssistBehavior thirdPartyConnectorAllowed */
                        thirdPartyConnectorAllowed?: (boolean|null);

                        /** KnowledgeAssistBehavior multipleQueriesGenerated */
                        multipleQueriesGenerated?: (boolean|null);

                        /** KnowledgeAssistBehavior queryContainedSearchContext */
                        queryContainedSearchContext?: (boolean|null);

                        /** KnowledgeAssistBehavior invalidItemsQuerySuggestionSkipped */
                        invalidItemsQuerySuggestionSkipped?: (boolean|null);

                        /** KnowledgeAssistBehavior primaryQueryRedactedAndReplaced */
                        primaryQueryRedactedAndReplaced?: (boolean|null);

                        /** KnowledgeAssistBehavior appendedSearchContextCount */
                        appendedSearchContextCount?: (number|null);
                    }

                    /** Represents a KnowledgeAssistBehavior. */
                    class KnowledgeAssistBehavior implements IKnowledgeAssistBehavior {

                        /**
                         * Constructs a new KnowledgeAssistBehavior.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2beta1.KnowledgeAssistDebugInfo.IKnowledgeAssistBehavior);

                        /** KnowledgeAssistBehavior answerGenerationRewriterOn. */
                        public answerGenerationRewriterOn: boolean;

                        /** KnowledgeAssistBehavior endUserMetadataIncluded. */
                        public endUserMetadataIncluded: boolean;

                        /** KnowledgeAssistBehavior returnQueryOnly. */
                        public returnQueryOnly: boolean;

                        /** KnowledgeAssistBehavior usePubsubDelivery. */
                        public usePubsubDelivery: boolean;

                        /** KnowledgeAssistBehavior disableSyncDelivery. */
                        public disableSyncDelivery: boolean;

                        /** KnowledgeAssistBehavior previousQueriesIncluded. */
                        public previousQueriesIncluded: boolean;

                        /** KnowledgeAssistBehavior useTranslatedMessage. */
                        public useTranslatedMessage: boolean;

                        /** KnowledgeAssistBehavior useCustomSafetyFilterLevel. */
                        public useCustomSafetyFilterLevel: boolean;

                        /** KnowledgeAssistBehavior conversationTranscriptHasMixedLanguages. */
                        public conversationTranscriptHasMixedLanguages: boolean;

                        /** KnowledgeAssistBehavior queryGenerationAgentLanguageMismatch. */
                        public queryGenerationAgentLanguageMismatch: boolean;

                        /** KnowledgeAssistBehavior queryGenerationEndUserLanguageMismatch. */
                        public queryGenerationEndUserLanguageMismatch: boolean;

                        /** KnowledgeAssistBehavior thirdPartyConnectorAllowed. */
                        public thirdPartyConnectorAllowed: boolean;

                        /** KnowledgeAssistBehavior multipleQueriesGenerated. */
                        public multipleQueriesGenerated: boolean;

                        /** KnowledgeAssistBehavior queryContainedSearchContext. */
                        public queryContainedSearchContext: boolean;

                        /** KnowledgeAssistBehavior invalidItemsQuerySuggestionSkipped. */
                        public invalidItemsQuerySuggestionSkipped: boolean;

                        /** KnowledgeAssistBehavior primaryQueryRedactedAndReplaced. */
                        public primaryQueryRedactedAndReplaced: boolean;

                        /** KnowledgeAssistBehavior appendedSearchContextCount. */
                        public appendedSearchContextCount: number;

                        /**
                         * Creates a new KnowledgeAssistBehavior instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns KnowledgeAssistBehavior instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2beta1.KnowledgeAssistDebugInfo.IKnowledgeAssistBehavior): google.cloud.dialogflow.v2beta1.KnowledgeAssistDebugInfo.KnowledgeAssistBehavior;

                        /**
                         * Encodes the specified KnowledgeAssistBehavior message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.KnowledgeAssistDebugInfo.KnowledgeAssistBehavior.verify|verify} messages.
                         * @param message KnowledgeAssistBehavior message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2beta1.KnowledgeAssistDebugInfo.IKnowledgeAssistBehavior, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified KnowledgeAssistBehavior message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.KnowledgeAssistDebugInfo.KnowledgeAssistBehavior.verify|verify} messages.
                         * @param message KnowledgeAssistBehavior message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.KnowledgeAssistDebugInfo.IKnowledgeAssistBehavior, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a KnowledgeAssistBehavior message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns KnowledgeAssistBehavior
                         * @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.cloud.dialogflow.v2beta1.KnowledgeAssistDebugInfo.KnowledgeAssistBehavior;

                        /**
                         * Decodes a KnowledgeAssistBehavior message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns KnowledgeAssistBehavior
                         * @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.cloud.dialogflow.v2beta1.KnowledgeAssistDebugInfo.KnowledgeAssistBehavior;

                        /**
                         * Verifies a KnowledgeAssistBehavior 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 KnowledgeAssistBehavior message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns KnowledgeAssistBehavior
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.KnowledgeAssistDebugInfo.KnowledgeAssistBehavior;

                        /**
                         * Creates a plain object from a KnowledgeAssistBehavior message. Also converts values to other types if specified.
                         * @param message KnowledgeAssistBehavior
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.dialogflow.v2beta1.KnowledgeAssistDebugInfo.KnowledgeAssistBehavior, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this KnowledgeAssistBehavior to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for KnowledgeAssistBehavior
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }
                }

                /** Properties of a KnowledgeAssistAnswer. */
                interface IKnowledgeAssistAnswer {

                    /** KnowledgeAssistAnswer suggestedQuery */
                    suggestedQuery?: (google.cloud.dialogflow.v2beta1.KnowledgeAssistAnswer.ISuggestedQuery|null);

                    /** KnowledgeAssistAnswer suggestedQueryAnswer */
                    suggestedQueryAnswer?: (google.cloud.dialogflow.v2beta1.KnowledgeAssistAnswer.IKnowledgeAnswer|null);

                    /** KnowledgeAssistAnswer answerRecord */
                    answerRecord?: (string|null);

                    /** KnowledgeAssistAnswer knowledgeAssistDebugInfo */
                    knowledgeAssistDebugInfo?: (google.cloud.dialogflow.v2beta1.IKnowledgeAssistDebugInfo|null);
                }

                /** Represents a KnowledgeAssistAnswer. */
                class KnowledgeAssistAnswer implements IKnowledgeAssistAnswer {

                    /**
                     * Constructs a new KnowledgeAssistAnswer.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IKnowledgeAssistAnswer);

                    /** KnowledgeAssistAnswer suggestedQuery. */
                    public suggestedQuery?: (google.cloud.dialogflow.v2beta1.KnowledgeAssistAnswer.ISuggestedQuery|null);

                    /** KnowledgeAssistAnswer suggestedQueryAnswer. */
                    public suggestedQueryAnswer?: (google.cloud.dialogflow.v2beta1.KnowledgeAssistAnswer.IKnowledgeAnswer|null);

                    /** KnowledgeAssistAnswer answerRecord. */
                    public answerRecord: string;

                    /** KnowledgeAssistAnswer knowledgeAssistDebugInfo. */
                    public knowledgeAssistDebugInfo?: (google.cloud.dialogflow.v2beta1.IKnowledgeAssistDebugInfo|null);

                    /**
                     * Creates a new KnowledgeAssistAnswer instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns KnowledgeAssistAnswer instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IKnowledgeAssistAnswer): google.cloud.dialogflow.v2beta1.KnowledgeAssistAnswer;

                    /**
                     * Encodes the specified KnowledgeAssistAnswer message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.KnowledgeAssistAnswer.verify|verify} messages.
                     * @param message KnowledgeAssistAnswer message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IKnowledgeAssistAnswer, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified KnowledgeAssistAnswer message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.KnowledgeAssistAnswer.verify|verify} messages.
                     * @param message KnowledgeAssistAnswer message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IKnowledgeAssistAnswer, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a KnowledgeAssistAnswer message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns KnowledgeAssistAnswer
                     * @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.cloud.dialogflow.v2beta1.KnowledgeAssistAnswer;

                    /**
                     * Decodes a KnowledgeAssistAnswer message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns KnowledgeAssistAnswer
                     * @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.cloud.dialogflow.v2beta1.KnowledgeAssistAnswer;

                    /**
                     * Verifies a KnowledgeAssistAnswer 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 KnowledgeAssistAnswer message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns KnowledgeAssistAnswer
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.KnowledgeAssistAnswer;

                    /**
                     * Creates a plain object from a KnowledgeAssistAnswer message. Also converts values to other types if specified.
                     * @param message KnowledgeAssistAnswer
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.KnowledgeAssistAnswer, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this KnowledgeAssistAnswer to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for KnowledgeAssistAnswer
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace KnowledgeAssistAnswer {

                    /** Properties of a SuggestedQuery. */
                    interface ISuggestedQuery {

                        /** SuggestedQuery queryText */
                        queryText?: (string|null);
                    }

                    /** Represents a SuggestedQuery. */
                    class SuggestedQuery implements ISuggestedQuery {

                        /**
                         * Constructs a new SuggestedQuery.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2beta1.KnowledgeAssistAnswer.ISuggestedQuery);

                        /** SuggestedQuery queryText. */
                        public queryText: string;

                        /**
                         * Creates a new SuggestedQuery instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns SuggestedQuery instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2beta1.KnowledgeAssistAnswer.ISuggestedQuery): google.cloud.dialogflow.v2beta1.KnowledgeAssistAnswer.SuggestedQuery;

                        /**
                         * Encodes the specified SuggestedQuery message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.KnowledgeAssistAnswer.SuggestedQuery.verify|verify} messages.
                         * @param message SuggestedQuery message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2beta1.KnowledgeAssistAnswer.ISuggestedQuery, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified SuggestedQuery message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.KnowledgeAssistAnswer.SuggestedQuery.verify|verify} messages.
                         * @param message SuggestedQuery message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.KnowledgeAssistAnswer.ISuggestedQuery, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a SuggestedQuery message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns SuggestedQuery
                         * @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.cloud.dialogflow.v2beta1.KnowledgeAssistAnswer.SuggestedQuery;

                        /**
                         * Decodes a SuggestedQuery message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns SuggestedQuery
                         * @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.cloud.dialogflow.v2beta1.KnowledgeAssistAnswer.SuggestedQuery;

                        /**
                         * Verifies a SuggestedQuery 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 SuggestedQuery message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns SuggestedQuery
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.KnowledgeAssistAnswer.SuggestedQuery;

                        /**
                         * Creates a plain object from a SuggestedQuery message. Also converts values to other types if specified.
                         * @param message SuggestedQuery
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.dialogflow.v2beta1.KnowledgeAssistAnswer.SuggestedQuery, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this SuggestedQuery to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for SuggestedQuery
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    /** Properties of a KnowledgeAnswer. */
                    interface IKnowledgeAnswer {

                        /** KnowledgeAnswer answerText */
                        answerText?: (string|null);

                        /** KnowledgeAnswer faqSource */
                        faqSource?: (google.cloud.dialogflow.v2beta1.KnowledgeAssistAnswer.KnowledgeAnswer.IFaqSource|null);

                        /** KnowledgeAnswer generativeSource */
                        generativeSource?: (google.cloud.dialogflow.v2beta1.KnowledgeAssistAnswer.KnowledgeAnswer.IGenerativeSource|null);
                    }

                    /** Represents a KnowledgeAnswer. */
                    class KnowledgeAnswer implements IKnowledgeAnswer {

                        /**
                         * Constructs a new KnowledgeAnswer.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2beta1.KnowledgeAssistAnswer.IKnowledgeAnswer);

                        /** KnowledgeAnswer answerText. */
                        public answerText: string;

                        /** KnowledgeAnswer faqSource. */
                        public faqSource?: (google.cloud.dialogflow.v2beta1.KnowledgeAssistAnswer.KnowledgeAnswer.IFaqSource|null);

                        /** KnowledgeAnswer generativeSource. */
                        public generativeSource?: (google.cloud.dialogflow.v2beta1.KnowledgeAssistAnswer.KnowledgeAnswer.IGenerativeSource|null);

                        /** KnowledgeAnswer source. */
                        public source?: ("faqSource"|"generativeSource");

                        /**
                         * Creates a new KnowledgeAnswer instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns KnowledgeAnswer instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2beta1.KnowledgeAssistAnswer.IKnowledgeAnswer): google.cloud.dialogflow.v2beta1.KnowledgeAssistAnswer.KnowledgeAnswer;

                        /**
                         * Encodes the specified KnowledgeAnswer message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.KnowledgeAssistAnswer.KnowledgeAnswer.verify|verify} messages.
                         * @param message KnowledgeAnswer message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2beta1.KnowledgeAssistAnswer.IKnowledgeAnswer, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified KnowledgeAnswer message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.KnowledgeAssistAnswer.KnowledgeAnswer.verify|verify} messages.
                         * @param message KnowledgeAnswer message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.KnowledgeAssistAnswer.IKnowledgeAnswer, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a KnowledgeAnswer message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns KnowledgeAnswer
                         * @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.cloud.dialogflow.v2beta1.KnowledgeAssistAnswer.KnowledgeAnswer;

                        /**
                         * Decodes a KnowledgeAnswer message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns KnowledgeAnswer
                         * @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.cloud.dialogflow.v2beta1.KnowledgeAssistAnswer.KnowledgeAnswer;

                        /**
                         * Verifies a KnowledgeAnswer 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 KnowledgeAnswer message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns KnowledgeAnswer
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.KnowledgeAssistAnswer.KnowledgeAnswer;

                        /**
                         * Creates a plain object from a KnowledgeAnswer message. Also converts values to other types if specified.
                         * @param message KnowledgeAnswer
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.dialogflow.v2beta1.KnowledgeAssistAnswer.KnowledgeAnswer, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this KnowledgeAnswer to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for KnowledgeAnswer
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    namespace KnowledgeAnswer {

                        /** Properties of a FaqSource. */
                        interface IFaqSource {

                            /** FaqSource question */
                            question?: (string|null);
                        }

                        /** Represents a FaqSource. */
                        class FaqSource implements IFaqSource {

                            /**
                             * Constructs a new FaqSource.
                             * @param [properties] Properties to set
                             */
                            constructor(properties?: google.cloud.dialogflow.v2beta1.KnowledgeAssistAnswer.KnowledgeAnswer.IFaqSource);

                            /** FaqSource question. */
                            public question: string;

                            /**
                             * Creates a new FaqSource instance using the specified properties.
                             * @param [properties] Properties to set
                             * @returns FaqSource instance
                             */
                            public static create(properties?: google.cloud.dialogflow.v2beta1.KnowledgeAssistAnswer.KnowledgeAnswer.IFaqSource): google.cloud.dialogflow.v2beta1.KnowledgeAssistAnswer.KnowledgeAnswer.FaqSource;

                            /**
                             * Encodes the specified FaqSource message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.KnowledgeAssistAnswer.KnowledgeAnswer.FaqSource.verify|verify} messages.
                             * @param message FaqSource message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encode(message: google.cloud.dialogflow.v2beta1.KnowledgeAssistAnswer.KnowledgeAnswer.IFaqSource, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Encodes the specified FaqSource message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.KnowledgeAssistAnswer.KnowledgeAnswer.FaqSource.verify|verify} messages.
                             * @param message FaqSource message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.KnowledgeAssistAnswer.KnowledgeAnswer.IFaqSource, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Decodes a FaqSource message from the specified reader or buffer.
                             * @param reader Reader or buffer to decode from
                             * @param [length] Message length if known beforehand
                             * @returns FaqSource
                             * @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.cloud.dialogflow.v2beta1.KnowledgeAssistAnswer.KnowledgeAnswer.FaqSource;

                            /**
                             * Decodes a FaqSource message from the specified reader or buffer, length delimited.
                             * @param reader Reader or buffer to decode from
                             * @returns FaqSource
                             * @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.cloud.dialogflow.v2beta1.KnowledgeAssistAnswer.KnowledgeAnswer.FaqSource;

                            /**
                             * Verifies a FaqSource 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 FaqSource message from a plain object. Also converts values to their respective internal types.
                             * @param object Plain object
                             * @returns FaqSource
                             */
                            public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.KnowledgeAssistAnswer.KnowledgeAnswer.FaqSource;

                            /**
                             * Creates a plain object from a FaqSource message. Also converts values to other types if specified.
                             * @param message FaqSource
                             * @param [options] Conversion options
                             * @returns Plain object
                             */
                            public static toObject(message: google.cloud.dialogflow.v2beta1.KnowledgeAssistAnswer.KnowledgeAnswer.FaqSource, options?: $protobuf.IConversionOptions): { [k: string]: any };

                            /**
                             * Converts this FaqSource to JSON.
                             * @returns JSON object
                             */
                            public toJSON(): { [k: string]: any };

                            /**
                             * Gets the default type url for FaqSource
                             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                             * @returns The default type url
                             */
                            public static getTypeUrl(typeUrlPrefix?: string): string;
                        }

                        /** Properties of a GenerativeSource. */
                        interface IGenerativeSource {

                            /** GenerativeSource snippets */
                            snippets?: (google.cloud.dialogflow.v2beta1.KnowledgeAssistAnswer.KnowledgeAnswer.GenerativeSource.ISnippet[]|null);
                        }

                        /** Represents a GenerativeSource. */
                        class GenerativeSource implements IGenerativeSource {

                            /**
                             * Constructs a new GenerativeSource.
                             * @param [properties] Properties to set
                             */
                            constructor(properties?: google.cloud.dialogflow.v2beta1.KnowledgeAssistAnswer.KnowledgeAnswer.IGenerativeSource);

                            /** GenerativeSource snippets. */
                            public snippets: google.cloud.dialogflow.v2beta1.KnowledgeAssistAnswer.KnowledgeAnswer.GenerativeSource.ISnippet[];

                            /**
                             * Creates a new GenerativeSource instance using the specified properties.
                             * @param [properties] Properties to set
                             * @returns GenerativeSource instance
                             */
                            public static create(properties?: google.cloud.dialogflow.v2beta1.KnowledgeAssistAnswer.KnowledgeAnswer.IGenerativeSource): google.cloud.dialogflow.v2beta1.KnowledgeAssistAnswer.KnowledgeAnswer.GenerativeSource;

                            /**
                             * Encodes the specified GenerativeSource message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.KnowledgeAssistAnswer.KnowledgeAnswer.GenerativeSource.verify|verify} messages.
                             * @param message GenerativeSource message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encode(message: google.cloud.dialogflow.v2beta1.KnowledgeAssistAnswer.KnowledgeAnswer.IGenerativeSource, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Encodes the specified GenerativeSource message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.KnowledgeAssistAnswer.KnowledgeAnswer.GenerativeSource.verify|verify} messages.
                             * @param message GenerativeSource message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.KnowledgeAssistAnswer.KnowledgeAnswer.IGenerativeSource, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Decodes a GenerativeSource message from the specified reader or buffer.
                             * @param reader Reader or buffer to decode from
                             * @param [length] Message length if known beforehand
                             * @returns GenerativeSource
                             * @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.cloud.dialogflow.v2beta1.KnowledgeAssistAnswer.KnowledgeAnswer.GenerativeSource;

                            /**
                             * Decodes a GenerativeSource message from the specified reader or buffer, length delimited.
                             * @param reader Reader or buffer to decode from
                             * @returns GenerativeSource
                             * @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.cloud.dialogflow.v2beta1.KnowledgeAssistAnswer.KnowledgeAnswer.GenerativeSource;

                            /**
                             * Verifies a GenerativeSource 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 GenerativeSource message from a plain object. Also converts values to their respective internal types.
                             * @param object Plain object
                             * @returns GenerativeSource
                             */
                            public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.KnowledgeAssistAnswer.KnowledgeAnswer.GenerativeSource;

                            /**
                             * Creates a plain object from a GenerativeSource message. Also converts values to other types if specified.
                             * @param message GenerativeSource
                             * @param [options] Conversion options
                             * @returns Plain object
                             */
                            public static toObject(message: google.cloud.dialogflow.v2beta1.KnowledgeAssistAnswer.KnowledgeAnswer.GenerativeSource, options?: $protobuf.IConversionOptions): { [k: string]: any };

                            /**
                             * Converts this GenerativeSource to JSON.
                             * @returns JSON object
                             */
                            public toJSON(): { [k: string]: any };

                            /**
                             * Gets the default type url for GenerativeSource
                             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                             * @returns The default type url
                             */
                            public static getTypeUrl(typeUrlPrefix?: string): string;
                        }

                        namespace GenerativeSource {

                            /** Properties of a Snippet. */
                            interface ISnippet {

                                /** Snippet uri */
                                uri?: (string|null);

                                /** Snippet text */
                                text?: (string|null);

                                /** Snippet title */
                                title?: (string|null);

                                /** Snippet metadata */
                                metadata?: (google.protobuf.IStruct|null);
                            }

                            /** Represents a Snippet. */
                            class Snippet implements ISnippet {

                                /**
                                 * Constructs a new Snippet.
                                 * @param [properties] Properties to set
                                 */
                                constructor(properties?: google.cloud.dialogflow.v2beta1.KnowledgeAssistAnswer.KnowledgeAnswer.GenerativeSource.ISnippet);

                                /** Snippet uri. */
                                public uri: string;

                                /** Snippet text. */
                                public text: string;

                                /** Snippet title. */
                                public title: string;

                                /** Snippet metadata. */
                                public metadata?: (google.protobuf.IStruct|null);

                                /**
                                 * Creates a new Snippet instance using the specified properties.
                                 * @param [properties] Properties to set
                                 * @returns Snippet instance
                                 */
                                public static create(properties?: google.cloud.dialogflow.v2beta1.KnowledgeAssistAnswer.KnowledgeAnswer.GenerativeSource.ISnippet): google.cloud.dialogflow.v2beta1.KnowledgeAssistAnswer.KnowledgeAnswer.GenerativeSource.Snippet;

                                /**
                                 * Encodes the specified Snippet message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.KnowledgeAssistAnswer.KnowledgeAnswer.GenerativeSource.Snippet.verify|verify} messages.
                                 * @param message Snippet message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encode(message: google.cloud.dialogflow.v2beta1.KnowledgeAssistAnswer.KnowledgeAnswer.GenerativeSource.ISnippet, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Encodes the specified Snippet message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.KnowledgeAssistAnswer.KnowledgeAnswer.GenerativeSource.Snippet.verify|verify} messages.
                                 * @param message Snippet message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.KnowledgeAssistAnswer.KnowledgeAnswer.GenerativeSource.ISnippet, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Decodes a Snippet message from the specified reader or buffer.
                                 * @param reader Reader or buffer to decode from
                                 * @param [length] Message length if known beforehand
                                 * @returns Snippet
                                 * @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.cloud.dialogflow.v2beta1.KnowledgeAssistAnswer.KnowledgeAnswer.GenerativeSource.Snippet;

                                /**
                                 * Decodes a Snippet message from the specified reader or buffer, length delimited.
                                 * @param reader Reader or buffer to decode from
                                 * @returns Snippet
                                 * @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.cloud.dialogflow.v2beta1.KnowledgeAssistAnswer.KnowledgeAnswer.GenerativeSource.Snippet;

                                /**
                                 * Verifies a Snippet 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 Snippet message from a plain object. Also converts values to their respective internal types.
                                 * @param object Plain object
                                 * @returns Snippet
                                 */
                                public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.KnowledgeAssistAnswer.KnowledgeAnswer.GenerativeSource.Snippet;

                                /**
                                 * Creates a plain object from a Snippet message. Also converts values to other types if specified.
                                 * @param message Snippet
                                 * @param [options] Conversion options
                                 * @returns Plain object
                                 */
                                public static toObject(message: google.cloud.dialogflow.v2beta1.KnowledgeAssistAnswer.KnowledgeAnswer.GenerativeSource.Snippet, options?: $protobuf.IConversionOptions): { [k: string]: any };

                                /**
                                 * Converts this Snippet to JSON.
                                 * @returns JSON object
                                 */
                                public toJSON(): { [k: string]: any };

                                /**
                                 * Gets the default type url for Snippet
                                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                                 * @returns The default type url
                                 */
                                public static getTypeUrl(typeUrlPrefix?: string): string;
                            }
                        }
                    }
                }

                /** Properties of a BidiStreamingAnalyzeContentRequest. */
                interface IBidiStreamingAnalyzeContentRequest {

                    /** BidiStreamingAnalyzeContentRequest config */
                    config?: (google.cloud.dialogflow.v2beta1.BidiStreamingAnalyzeContentRequest.IConfig|null);

                    /** BidiStreamingAnalyzeContentRequest input */
                    input?: (google.cloud.dialogflow.v2beta1.BidiStreamingAnalyzeContentRequest.IInput|null);
                }

                /** Represents a BidiStreamingAnalyzeContentRequest. */
                class BidiStreamingAnalyzeContentRequest implements IBidiStreamingAnalyzeContentRequest {

                    /**
                     * Constructs a new BidiStreamingAnalyzeContentRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IBidiStreamingAnalyzeContentRequest);

                    /** BidiStreamingAnalyzeContentRequest config. */
                    public config?: (google.cloud.dialogflow.v2beta1.BidiStreamingAnalyzeContentRequest.IConfig|null);

                    /** BidiStreamingAnalyzeContentRequest input. */
                    public input?: (google.cloud.dialogflow.v2beta1.BidiStreamingAnalyzeContentRequest.IInput|null);

                    /** BidiStreamingAnalyzeContentRequest request. */
                    public request?: ("config"|"input");

                    /**
                     * Creates a new BidiStreamingAnalyzeContentRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BidiStreamingAnalyzeContentRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IBidiStreamingAnalyzeContentRequest): google.cloud.dialogflow.v2beta1.BidiStreamingAnalyzeContentRequest;

                    /**
                     * Encodes the specified BidiStreamingAnalyzeContentRequest message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.BidiStreamingAnalyzeContentRequest.verify|verify} messages.
                     * @param message BidiStreamingAnalyzeContentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IBidiStreamingAnalyzeContentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BidiStreamingAnalyzeContentRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.BidiStreamingAnalyzeContentRequest.verify|verify} messages.
                     * @param message BidiStreamingAnalyzeContentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IBidiStreamingAnalyzeContentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BidiStreamingAnalyzeContentRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BidiStreamingAnalyzeContentRequest
                     * @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.cloud.dialogflow.v2beta1.BidiStreamingAnalyzeContentRequest;

                    /**
                     * Decodes a BidiStreamingAnalyzeContentRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BidiStreamingAnalyzeContentRequest
                     * @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.cloud.dialogflow.v2beta1.BidiStreamingAnalyzeContentRequest;

                    /**
                     * Verifies a BidiStreamingAnalyzeContentRequest 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 BidiStreamingAnalyzeContentRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BidiStreamingAnalyzeContentRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.BidiStreamingAnalyzeContentRequest;

                    /**
                     * Creates a plain object from a BidiStreamingAnalyzeContentRequest message. Also converts values to other types if specified.
                     * @param message BidiStreamingAnalyzeContentRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.BidiStreamingAnalyzeContentRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BidiStreamingAnalyzeContentRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BidiStreamingAnalyzeContentRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace BidiStreamingAnalyzeContentRequest {

                    /** Properties of a Config. */
                    interface IConfig {

                        /** Config participant */
                        participant?: (string|null);

                        /** Config voiceSessionConfig */
                        voiceSessionConfig?: (google.cloud.dialogflow.v2beta1.BidiStreamingAnalyzeContentRequest.Config.IVoiceSessionConfig|null);

                        /** Config initialVirtualAgentParameters */
                        initialVirtualAgentParameters?: (google.protobuf.IStruct|null);

                        /** Config initialVirtualAgentQueryParams */
                        initialVirtualAgentQueryParams?: (google.cloud.dialogflow.v2beta1.IQueryParameters|null);
                    }

                    /** Represents a Config. */
                    class Config implements IConfig {

                        /**
                         * Constructs a new Config.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2beta1.BidiStreamingAnalyzeContentRequest.IConfig);

                        /** Config participant. */
                        public participant: string;

                        /** Config voiceSessionConfig. */
                        public voiceSessionConfig?: (google.cloud.dialogflow.v2beta1.BidiStreamingAnalyzeContentRequest.Config.IVoiceSessionConfig|null);

                        /** Config initialVirtualAgentParameters. */
                        public initialVirtualAgentParameters?: (google.protobuf.IStruct|null);

                        /** Config initialVirtualAgentQueryParams. */
                        public initialVirtualAgentQueryParams?: (google.cloud.dialogflow.v2beta1.IQueryParameters|null);

                        /** Config config. */
                        public config?: "voiceSessionConfig";

                        /**
                         * Creates a new Config instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns Config instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2beta1.BidiStreamingAnalyzeContentRequest.IConfig): google.cloud.dialogflow.v2beta1.BidiStreamingAnalyzeContentRequest.Config;

                        /**
                         * Encodes the specified Config message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.BidiStreamingAnalyzeContentRequest.Config.verify|verify} messages.
                         * @param message Config message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2beta1.BidiStreamingAnalyzeContentRequest.IConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified Config message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.BidiStreamingAnalyzeContentRequest.Config.verify|verify} messages.
                         * @param message Config message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.BidiStreamingAnalyzeContentRequest.IConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a Config message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns Config
                         * @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.cloud.dialogflow.v2beta1.BidiStreamingAnalyzeContentRequest.Config;

                        /**
                         * Decodes a Config message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns Config
                         * @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.cloud.dialogflow.v2beta1.BidiStreamingAnalyzeContentRequest.Config;

                        /**
                         * Verifies a Config 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 Config message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns Config
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.BidiStreamingAnalyzeContentRequest.Config;

                        /**
                         * Creates a plain object from a Config message. Also converts values to other types if specified.
                         * @param message Config
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.dialogflow.v2beta1.BidiStreamingAnalyzeContentRequest.Config, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this Config to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for Config
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    namespace Config {

                        /** Properties of a VoiceSessionConfig. */
                        interface IVoiceSessionConfig {

                            /** VoiceSessionConfig inputAudioEncoding */
                            inputAudioEncoding?: (google.cloud.dialogflow.v2beta1.AudioEncoding|keyof typeof google.cloud.dialogflow.v2beta1.AudioEncoding|null);

                            /** VoiceSessionConfig inputAudioSampleRateHertz */
                            inputAudioSampleRateHertz?: (number|null);

                            /** VoiceSessionConfig outputAudioEncoding */
                            outputAudioEncoding?: (google.cloud.dialogflow.v2beta1.OutputAudioEncoding|keyof typeof google.cloud.dialogflow.v2beta1.OutputAudioEncoding|null);

                            /** VoiceSessionConfig outputAudioSampleRateHertz */
                            outputAudioSampleRateHertz?: (number|null);

                            /** VoiceSessionConfig enableCxProactiveProcessing */
                            enableCxProactiveProcessing?: (boolean|null);

                            /** VoiceSessionConfig enableStreamingSynthesize */
                            enableStreamingSynthesize?: (boolean|null);
                        }

                        /** Represents a VoiceSessionConfig. */
                        class VoiceSessionConfig implements IVoiceSessionConfig {

                            /**
                             * Constructs a new VoiceSessionConfig.
                             * @param [properties] Properties to set
                             */
                            constructor(properties?: google.cloud.dialogflow.v2beta1.BidiStreamingAnalyzeContentRequest.Config.IVoiceSessionConfig);

                            /** VoiceSessionConfig inputAudioEncoding. */
                            public inputAudioEncoding: (google.cloud.dialogflow.v2beta1.AudioEncoding|keyof typeof google.cloud.dialogflow.v2beta1.AudioEncoding);

                            /** VoiceSessionConfig inputAudioSampleRateHertz. */
                            public inputAudioSampleRateHertz: number;

                            /** VoiceSessionConfig outputAudioEncoding. */
                            public outputAudioEncoding: (google.cloud.dialogflow.v2beta1.OutputAudioEncoding|keyof typeof google.cloud.dialogflow.v2beta1.OutputAudioEncoding);

                            /** VoiceSessionConfig outputAudioSampleRateHertz. */
                            public outputAudioSampleRateHertz: number;

                            /** VoiceSessionConfig enableCxProactiveProcessing. */
                            public enableCxProactiveProcessing: boolean;

                            /** VoiceSessionConfig enableStreamingSynthesize. */
                            public enableStreamingSynthesize: boolean;

                            /**
                             * Creates a new VoiceSessionConfig instance using the specified properties.
                             * @param [properties] Properties to set
                             * @returns VoiceSessionConfig instance
                             */
                            public static create(properties?: google.cloud.dialogflow.v2beta1.BidiStreamingAnalyzeContentRequest.Config.IVoiceSessionConfig): google.cloud.dialogflow.v2beta1.BidiStreamingAnalyzeContentRequest.Config.VoiceSessionConfig;

                            /**
                             * Encodes the specified VoiceSessionConfig message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.BidiStreamingAnalyzeContentRequest.Config.VoiceSessionConfig.verify|verify} messages.
                             * @param message VoiceSessionConfig message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encode(message: google.cloud.dialogflow.v2beta1.BidiStreamingAnalyzeContentRequest.Config.IVoiceSessionConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Encodes the specified VoiceSessionConfig message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.BidiStreamingAnalyzeContentRequest.Config.VoiceSessionConfig.verify|verify} messages.
                             * @param message VoiceSessionConfig message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.BidiStreamingAnalyzeContentRequest.Config.IVoiceSessionConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Decodes a VoiceSessionConfig message from the specified reader or buffer.
                             * @param reader Reader or buffer to decode from
                             * @param [length] Message length if known beforehand
                             * @returns VoiceSessionConfig
                             * @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.cloud.dialogflow.v2beta1.BidiStreamingAnalyzeContentRequest.Config.VoiceSessionConfig;

                            /**
                             * Decodes a VoiceSessionConfig message from the specified reader or buffer, length delimited.
                             * @param reader Reader or buffer to decode from
                             * @returns VoiceSessionConfig
                             * @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.cloud.dialogflow.v2beta1.BidiStreamingAnalyzeContentRequest.Config.VoiceSessionConfig;

                            /**
                             * Verifies a VoiceSessionConfig 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 VoiceSessionConfig message from a plain object. Also converts values to their respective internal types.
                             * @param object Plain object
                             * @returns VoiceSessionConfig
                             */
                            public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.BidiStreamingAnalyzeContentRequest.Config.VoiceSessionConfig;

                            /**
                             * Creates a plain object from a VoiceSessionConfig message. Also converts values to other types if specified.
                             * @param message VoiceSessionConfig
                             * @param [options] Conversion options
                             * @returns Plain object
                             */
                            public static toObject(message: google.cloud.dialogflow.v2beta1.BidiStreamingAnalyzeContentRequest.Config.VoiceSessionConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                            /**
                             * Converts this VoiceSessionConfig to JSON.
                             * @returns JSON object
                             */
                            public toJSON(): { [k: string]: any };

                            /**
                             * Gets the default type url for VoiceSessionConfig
                             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                             * @returns The default type url
                             */
                            public static getTypeUrl(typeUrlPrefix?: string): string;
                        }
                    }

                    /** Properties of a TurnInput. */
                    interface ITurnInput {

                        /** TurnInput text */
                        text?: (string|null);

                        /** TurnInput intent */
                        intent?: (string|null);

                        /** TurnInput event */
                        event?: (string|null);

                        /** TurnInput virtualAgentParameters */
                        virtualAgentParameters?: (google.protobuf.IStruct|null);
                    }

                    /** Represents a TurnInput. */
                    class TurnInput implements ITurnInput {

                        /**
                         * Constructs a new TurnInput.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2beta1.BidiStreamingAnalyzeContentRequest.ITurnInput);

                        /** TurnInput text. */
                        public text?: (string|null);

                        /** TurnInput intent. */
                        public intent?: (string|null);

                        /** TurnInput event. */
                        public event?: (string|null);

                        /** TurnInput virtualAgentParameters. */
                        public virtualAgentParameters?: (google.protobuf.IStruct|null);

                        /** TurnInput mainContent. */
                        public mainContent?: ("text"|"intent"|"event");

                        /**
                         * Creates a new TurnInput instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns TurnInput instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2beta1.BidiStreamingAnalyzeContentRequest.ITurnInput): google.cloud.dialogflow.v2beta1.BidiStreamingAnalyzeContentRequest.TurnInput;

                        /**
                         * Encodes the specified TurnInput message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.BidiStreamingAnalyzeContentRequest.TurnInput.verify|verify} messages.
                         * @param message TurnInput message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2beta1.BidiStreamingAnalyzeContentRequest.ITurnInput, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified TurnInput message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.BidiStreamingAnalyzeContentRequest.TurnInput.verify|verify} messages.
                         * @param message TurnInput message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.BidiStreamingAnalyzeContentRequest.ITurnInput, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a TurnInput message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns TurnInput
                         * @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.cloud.dialogflow.v2beta1.BidiStreamingAnalyzeContentRequest.TurnInput;

                        /**
                         * Decodes a TurnInput message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns TurnInput
                         * @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.cloud.dialogflow.v2beta1.BidiStreamingAnalyzeContentRequest.TurnInput;

                        /**
                         * Verifies a TurnInput 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 TurnInput message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns TurnInput
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.BidiStreamingAnalyzeContentRequest.TurnInput;

                        /**
                         * Creates a plain object from a TurnInput message. Also converts values to other types if specified.
                         * @param message TurnInput
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.dialogflow.v2beta1.BidiStreamingAnalyzeContentRequest.TurnInput, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this TurnInput to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for TurnInput
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    /** Properties of an Input. */
                    interface IInput {

                        /** Input audio */
                        audio?: (Uint8Array|Buffer|string|null);

                        /** Input dtmf */
                        dtmf?: (google.cloud.dialogflow.v2beta1.ITelephonyDtmfEvents|null);

                        /** Input turn */
                        turn?: (google.cloud.dialogflow.v2beta1.BidiStreamingAnalyzeContentRequest.ITurnInput|null);
                    }

                    /** Represents an Input. */
                    class Input implements IInput {

                        /**
                         * Constructs a new Input.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2beta1.BidiStreamingAnalyzeContentRequest.IInput);

                        /** Input audio. */
                        public audio?: (Uint8Array|Buffer|string|null);

                        /** Input dtmf. */
                        public dtmf?: (google.cloud.dialogflow.v2beta1.ITelephonyDtmfEvents|null);

                        /** Input turn. */
                        public turn?: (google.cloud.dialogflow.v2beta1.BidiStreamingAnalyzeContentRequest.ITurnInput|null);

                        /** Input input. */
                        public input?: ("audio"|"dtmf"|"turn");

                        /**
                         * Creates a new Input instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns Input instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2beta1.BidiStreamingAnalyzeContentRequest.IInput): google.cloud.dialogflow.v2beta1.BidiStreamingAnalyzeContentRequest.Input;

                        /**
                         * Encodes the specified Input message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.BidiStreamingAnalyzeContentRequest.Input.verify|verify} messages.
                         * @param message Input message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2beta1.BidiStreamingAnalyzeContentRequest.IInput, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified Input message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.BidiStreamingAnalyzeContentRequest.Input.verify|verify} messages.
                         * @param message Input message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.BidiStreamingAnalyzeContentRequest.IInput, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes an Input message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns Input
                         * @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.cloud.dialogflow.v2beta1.BidiStreamingAnalyzeContentRequest.Input;

                        /**
                         * Decodes an Input message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns Input
                         * @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.cloud.dialogflow.v2beta1.BidiStreamingAnalyzeContentRequest.Input;

                        /**
                         * Verifies an Input 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 Input message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns Input
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.BidiStreamingAnalyzeContentRequest.Input;

                        /**
                         * Creates a plain object from an Input message. Also converts values to other types if specified.
                         * @param message Input
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.dialogflow.v2beta1.BidiStreamingAnalyzeContentRequest.Input, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this Input to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for Input
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }
                }

                /** Properties of a BidiStreamingAnalyzeContentResponse. */
                interface IBidiStreamingAnalyzeContentResponse {

                    /** BidiStreamingAnalyzeContentResponse recognitionResult */
                    recognitionResult?: (google.cloud.dialogflow.v2beta1.IStreamingRecognitionResult|null);

                    /** BidiStreamingAnalyzeContentResponse bargeInSignal */
                    bargeInSignal?: (google.cloud.dialogflow.v2beta1.BidiStreamingAnalyzeContentResponse.IBargeInSignal|null);

                    /** BidiStreamingAnalyzeContentResponse analyzeContentResponse */
                    analyzeContentResponse?: (google.cloud.dialogflow.v2beta1.IAnalyzeContentResponse|null);

                    /** BidiStreamingAnalyzeContentResponse turnComplete */
                    turnComplete?: (google.cloud.dialogflow.v2beta1.BidiStreamingAnalyzeContentResponse.ITurnComplete|null);
                }

                /** Represents a BidiStreamingAnalyzeContentResponse. */
                class BidiStreamingAnalyzeContentResponse implements IBidiStreamingAnalyzeContentResponse {

                    /**
                     * Constructs a new BidiStreamingAnalyzeContentResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IBidiStreamingAnalyzeContentResponse);

                    /** BidiStreamingAnalyzeContentResponse recognitionResult. */
                    public recognitionResult?: (google.cloud.dialogflow.v2beta1.IStreamingRecognitionResult|null);

                    /** BidiStreamingAnalyzeContentResponse bargeInSignal. */
                    public bargeInSignal?: (google.cloud.dialogflow.v2beta1.BidiStreamingAnalyzeContentResponse.IBargeInSignal|null);

                    /** BidiStreamingAnalyzeContentResponse analyzeContentResponse. */
                    public analyzeContentResponse?: (google.cloud.dialogflow.v2beta1.IAnalyzeContentResponse|null);

                    /** BidiStreamingAnalyzeContentResponse turnComplete. */
                    public turnComplete?: (google.cloud.dialogflow.v2beta1.BidiStreamingAnalyzeContentResponse.ITurnComplete|null);

                    /** BidiStreamingAnalyzeContentResponse response. */
                    public response?: ("recognitionResult"|"bargeInSignal"|"analyzeContentResponse"|"turnComplete");

                    /**
                     * Creates a new BidiStreamingAnalyzeContentResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BidiStreamingAnalyzeContentResponse instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IBidiStreamingAnalyzeContentResponse): google.cloud.dialogflow.v2beta1.BidiStreamingAnalyzeContentResponse;

                    /**
                     * Encodes the specified BidiStreamingAnalyzeContentResponse message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.BidiStreamingAnalyzeContentResponse.verify|verify} messages.
                     * @param message BidiStreamingAnalyzeContentResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IBidiStreamingAnalyzeContentResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BidiStreamingAnalyzeContentResponse message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.BidiStreamingAnalyzeContentResponse.verify|verify} messages.
                     * @param message BidiStreamingAnalyzeContentResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IBidiStreamingAnalyzeContentResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BidiStreamingAnalyzeContentResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BidiStreamingAnalyzeContentResponse
                     * @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.cloud.dialogflow.v2beta1.BidiStreamingAnalyzeContentResponse;

                    /**
                     * Decodes a BidiStreamingAnalyzeContentResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BidiStreamingAnalyzeContentResponse
                     * @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.cloud.dialogflow.v2beta1.BidiStreamingAnalyzeContentResponse;

                    /**
                     * Verifies a BidiStreamingAnalyzeContentResponse 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 BidiStreamingAnalyzeContentResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BidiStreamingAnalyzeContentResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.BidiStreamingAnalyzeContentResponse;

                    /**
                     * Creates a plain object from a BidiStreamingAnalyzeContentResponse message. Also converts values to other types if specified.
                     * @param message BidiStreamingAnalyzeContentResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.BidiStreamingAnalyzeContentResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BidiStreamingAnalyzeContentResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BidiStreamingAnalyzeContentResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace BidiStreamingAnalyzeContentResponse {

                    /** Properties of a BargeInSignal. */
                    interface IBargeInSignal {
                    }

                    /** Represents a BargeInSignal. */
                    class BargeInSignal implements IBargeInSignal {

                        /**
                         * Constructs a new BargeInSignal.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2beta1.BidiStreamingAnalyzeContentResponse.IBargeInSignal);

                        /**
                         * Creates a new BargeInSignal instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns BargeInSignal instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2beta1.BidiStreamingAnalyzeContentResponse.IBargeInSignal): google.cloud.dialogflow.v2beta1.BidiStreamingAnalyzeContentResponse.BargeInSignal;

                        /**
                         * Encodes the specified BargeInSignal message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.BidiStreamingAnalyzeContentResponse.BargeInSignal.verify|verify} messages.
                         * @param message BargeInSignal message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2beta1.BidiStreamingAnalyzeContentResponse.IBargeInSignal, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified BargeInSignal message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.BidiStreamingAnalyzeContentResponse.BargeInSignal.verify|verify} messages.
                         * @param message BargeInSignal message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.BidiStreamingAnalyzeContentResponse.IBargeInSignal, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a BargeInSignal message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns BargeInSignal
                         * @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.cloud.dialogflow.v2beta1.BidiStreamingAnalyzeContentResponse.BargeInSignal;

                        /**
                         * Decodes a BargeInSignal message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns BargeInSignal
                         * @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.cloud.dialogflow.v2beta1.BidiStreamingAnalyzeContentResponse.BargeInSignal;

                        /**
                         * Verifies a BargeInSignal 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 BargeInSignal message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns BargeInSignal
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.BidiStreamingAnalyzeContentResponse.BargeInSignal;

                        /**
                         * Creates a plain object from a BargeInSignal message. Also converts values to other types if specified.
                         * @param message BargeInSignal
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.dialogflow.v2beta1.BidiStreamingAnalyzeContentResponse.BargeInSignal, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this BargeInSignal to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for BargeInSignal
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    /** Properties of a TurnComplete. */
                    interface ITurnComplete {
                    }

                    /** Represents a TurnComplete. */
                    class TurnComplete implements ITurnComplete {

                        /**
                         * Constructs a new TurnComplete.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2beta1.BidiStreamingAnalyzeContentResponse.ITurnComplete);

                        /**
                         * Creates a new TurnComplete instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns TurnComplete instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2beta1.BidiStreamingAnalyzeContentResponse.ITurnComplete): google.cloud.dialogflow.v2beta1.BidiStreamingAnalyzeContentResponse.TurnComplete;

                        /**
                         * Encodes the specified TurnComplete message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.BidiStreamingAnalyzeContentResponse.TurnComplete.verify|verify} messages.
                         * @param message TurnComplete message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2beta1.BidiStreamingAnalyzeContentResponse.ITurnComplete, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified TurnComplete message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.BidiStreamingAnalyzeContentResponse.TurnComplete.verify|verify} messages.
                         * @param message TurnComplete message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.BidiStreamingAnalyzeContentResponse.ITurnComplete, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a TurnComplete message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns TurnComplete
                         * @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.cloud.dialogflow.v2beta1.BidiStreamingAnalyzeContentResponse.TurnComplete;

                        /**
                         * Decodes a TurnComplete message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns TurnComplete
                         * @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.cloud.dialogflow.v2beta1.BidiStreamingAnalyzeContentResponse.TurnComplete;

                        /**
                         * Verifies a TurnComplete 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 TurnComplete message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns TurnComplete
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.BidiStreamingAnalyzeContentResponse.TurnComplete;

                        /**
                         * Creates a plain object from a TurnComplete message. Also converts values to other types if specified.
                         * @param message TurnComplete
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.dialogflow.v2beta1.BidiStreamingAnalyzeContentResponse.TurnComplete, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this TurnComplete to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for TurnComplete
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }
                }

                /** DatastoreResponseReason enum. */
                enum DatastoreResponseReason {
                    DATASTORE_RESPONSE_REASON_UNSPECIFIED = 0,
                    NONE = 1,
                    SEARCH_OUT_OF_QUOTA = 2,
                    SEARCH_EMPTY_RESULTS = 3,
                    ANSWER_GENERATION_GEN_AI_DISABLED = 4,
                    ANSWER_GENERATION_OUT_OF_QUOTA = 5,
                    ANSWER_GENERATION_ERROR = 6,
                    ANSWER_GENERATION_NOT_ENOUGH_INFO = 7,
                    ANSWER_GENERATION_RAI_FAILED = 8,
                    ANSWER_GENERATION_NOT_GROUNDED = 9
                }

                /** Properties of a SpeechContext. */
                interface ISpeechContext {

                    /** SpeechContext phrases */
                    phrases?: (string[]|null);

                    /** SpeechContext boost */
                    boost?: (number|null);
                }

                /** Represents a SpeechContext. */
                class SpeechContext implements ISpeechContext {

                    /**
                     * Constructs a new SpeechContext.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.ISpeechContext);

                    /** SpeechContext phrases. */
                    public phrases: string[];

                    /** SpeechContext boost. */
                    public boost: number;

                    /**
                     * Creates a new SpeechContext instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SpeechContext instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.ISpeechContext): google.cloud.dialogflow.v2beta1.SpeechContext;

                    /**
                     * Encodes the specified SpeechContext message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.SpeechContext.verify|verify} messages.
                     * @param message SpeechContext message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.ISpeechContext, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SpeechContext message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.SpeechContext.verify|verify} messages.
                     * @param message SpeechContext message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.ISpeechContext, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SpeechContext message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SpeechContext
                     * @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.cloud.dialogflow.v2beta1.SpeechContext;

                    /**
                     * Decodes a SpeechContext message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SpeechContext
                     * @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.cloud.dialogflow.v2beta1.SpeechContext;

                    /**
                     * Verifies a SpeechContext 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 SpeechContext message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SpeechContext
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.SpeechContext;

                    /**
                     * Creates a plain object from a SpeechContext message. Also converts values to other types if specified.
                     * @param message SpeechContext
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.SpeechContext, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SpeechContext to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SpeechContext
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SpeechWordInfo. */
                interface ISpeechWordInfo {

                    /** SpeechWordInfo word */
                    word?: (string|null);

                    /** SpeechWordInfo startOffset */
                    startOffset?: (google.protobuf.IDuration|null);

                    /** SpeechWordInfo endOffset */
                    endOffset?: (google.protobuf.IDuration|null);

                    /** SpeechWordInfo confidence */
                    confidence?: (number|null);
                }

                /** Represents a SpeechWordInfo. */
                class SpeechWordInfo implements ISpeechWordInfo {

                    /**
                     * Constructs a new SpeechWordInfo.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.ISpeechWordInfo);

                    /** SpeechWordInfo word. */
                    public word: string;

                    /** SpeechWordInfo startOffset. */
                    public startOffset?: (google.protobuf.IDuration|null);

                    /** SpeechWordInfo endOffset. */
                    public endOffset?: (google.protobuf.IDuration|null);

                    /** SpeechWordInfo confidence. */
                    public confidence: number;

                    /**
                     * Creates a new SpeechWordInfo instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SpeechWordInfo instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.ISpeechWordInfo): google.cloud.dialogflow.v2beta1.SpeechWordInfo;

                    /**
                     * Encodes the specified SpeechWordInfo message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.SpeechWordInfo.verify|verify} messages.
                     * @param message SpeechWordInfo message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.ISpeechWordInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SpeechWordInfo message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.SpeechWordInfo.verify|verify} messages.
                     * @param message SpeechWordInfo message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.ISpeechWordInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SpeechWordInfo message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SpeechWordInfo
                     * @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.cloud.dialogflow.v2beta1.SpeechWordInfo;

                    /**
                     * Decodes a SpeechWordInfo message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SpeechWordInfo
                     * @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.cloud.dialogflow.v2beta1.SpeechWordInfo;

                    /**
                     * Verifies a SpeechWordInfo 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 SpeechWordInfo message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SpeechWordInfo
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.SpeechWordInfo;

                    /**
                     * Creates a plain object from a SpeechWordInfo message. Also converts values to other types if specified.
                     * @param message SpeechWordInfo
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.SpeechWordInfo, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SpeechWordInfo to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SpeechWordInfo
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a BargeInConfig. */
                interface IBargeInConfig {

                    /** BargeInConfig noBargeInDuration */
                    noBargeInDuration?: (google.protobuf.IDuration|null);

                    /** BargeInConfig totalDuration */
                    totalDuration?: (google.protobuf.IDuration|null);
                }

                /** Represents a BargeInConfig. */
                class BargeInConfig implements IBargeInConfig {

                    /**
                     * Constructs a new BargeInConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IBargeInConfig);

                    /** BargeInConfig noBargeInDuration. */
                    public noBargeInDuration?: (google.protobuf.IDuration|null);

                    /** BargeInConfig totalDuration. */
                    public totalDuration?: (google.protobuf.IDuration|null);

                    /**
                     * Creates a new BargeInConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BargeInConfig instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IBargeInConfig): google.cloud.dialogflow.v2beta1.BargeInConfig;

                    /**
                     * Encodes the specified BargeInConfig message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.BargeInConfig.verify|verify} messages.
                     * @param message BargeInConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IBargeInConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BargeInConfig message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.BargeInConfig.verify|verify} messages.
                     * @param message BargeInConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IBargeInConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BargeInConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BargeInConfig
                     * @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.cloud.dialogflow.v2beta1.BargeInConfig;

                    /**
                     * Decodes a BargeInConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BargeInConfig
                     * @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.cloud.dialogflow.v2beta1.BargeInConfig;

                    /**
                     * Verifies a BargeInConfig 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 BargeInConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BargeInConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.BargeInConfig;

                    /**
                     * Creates a plain object from a BargeInConfig message. Also converts values to other types if specified.
                     * @param message BargeInConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.BargeInConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BargeInConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BargeInConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InputAudioConfig. */
                interface IInputAudioConfig {

                    /** InputAudioConfig audioEncoding */
                    audioEncoding?: (google.cloud.dialogflow.v2beta1.AudioEncoding|keyof typeof google.cloud.dialogflow.v2beta1.AudioEncoding|null);

                    /** InputAudioConfig sampleRateHertz */
                    sampleRateHertz?: (number|null);

                    /** InputAudioConfig languageCode */
                    languageCode?: (string|null);

                    /** InputAudioConfig enableWordInfo */
                    enableWordInfo?: (boolean|null);

                    /** InputAudioConfig phraseHints */
                    phraseHints?: (string[]|null);

                    /** InputAudioConfig speechContexts */
                    speechContexts?: (google.cloud.dialogflow.v2beta1.ISpeechContext[]|null);

                    /** InputAudioConfig model */
                    model?: (string|null);

                    /** InputAudioConfig modelVariant */
                    modelVariant?: (google.cloud.dialogflow.v2beta1.SpeechModelVariant|keyof typeof google.cloud.dialogflow.v2beta1.SpeechModelVariant|null);

                    /** InputAudioConfig singleUtterance */
                    singleUtterance?: (boolean|null);

                    /** InputAudioConfig disableNoSpeechRecognizedEvent */
                    disableNoSpeechRecognizedEvent?: (boolean|null);

                    /** InputAudioConfig bargeInConfig */
                    bargeInConfig?: (google.cloud.dialogflow.v2beta1.IBargeInConfig|null);

                    /** InputAudioConfig enableAutomaticPunctuation */
                    enableAutomaticPunctuation?: (boolean|null);

                    /** InputAudioConfig defaultNoSpeechTimeout */
                    defaultNoSpeechTimeout?: (google.protobuf.IDuration|null);

                    /** InputAudioConfig phraseSets */
                    phraseSets?: (string[]|null);

                    /** InputAudioConfig optOutConformerModelMigration */
                    optOutConformerModelMigration?: (boolean|null);
                }

                /** Represents an InputAudioConfig. */
                class InputAudioConfig implements IInputAudioConfig {

                    /**
                     * Constructs a new InputAudioConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IInputAudioConfig);

                    /** InputAudioConfig audioEncoding. */
                    public audioEncoding: (google.cloud.dialogflow.v2beta1.AudioEncoding|keyof typeof google.cloud.dialogflow.v2beta1.AudioEncoding);

                    /** InputAudioConfig sampleRateHertz. */
                    public sampleRateHertz: number;

                    /** InputAudioConfig languageCode. */
                    public languageCode: string;

                    /** InputAudioConfig enableWordInfo. */
                    public enableWordInfo: boolean;

                    /** InputAudioConfig phraseHints. */
                    public phraseHints: string[];

                    /** InputAudioConfig speechContexts. */
                    public speechContexts: google.cloud.dialogflow.v2beta1.ISpeechContext[];

                    /** InputAudioConfig model. */
                    public model: string;

                    /** InputAudioConfig modelVariant. */
                    public modelVariant: (google.cloud.dialogflow.v2beta1.SpeechModelVariant|keyof typeof google.cloud.dialogflow.v2beta1.SpeechModelVariant);

                    /** InputAudioConfig singleUtterance. */
                    public singleUtterance: boolean;

                    /** InputAudioConfig disableNoSpeechRecognizedEvent. */
                    public disableNoSpeechRecognizedEvent: boolean;

                    /** InputAudioConfig bargeInConfig. */
                    public bargeInConfig?: (google.cloud.dialogflow.v2beta1.IBargeInConfig|null);

                    /** InputAudioConfig enableAutomaticPunctuation. */
                    public enableAutomaticPunctuation: boolean;

                    /** InputAudioConfig defaultNoSpeechTimeout. */
                    public defaultNoSpeechTimeout?: (google.protobuf.IDuration|null);

                    /** InputAudioConfig phraseSets. */
                    public phraseSets: string[];

                    /** InputAudioConfig optOutConformerModelMigration. */
                    public optOutConformerModelMigration: boolean;

                    /**
                     * Creates a new InputAudioConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InputAudioConfig instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IInputAudioConfig): google.cloud.dialogflow.v2beta1.InputAudioConfig;

                    /**
                     * Encodes the specified InputAudioConfig message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.InputAudioConfig.verify|verify} messages.
                     * @param message InputAudioConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IInputAudioConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InputAudioConfig message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.InputAudioConfig.verify|verify} messages.
                     * @param message InputAudioConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IInputAudioConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InputAudioConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InputAudioConfig
                     * @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.cloud.dialogflow.v2beta1.InputAudioConfig;

                    /**
                     * Decodes an InputAudioConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InputAudioConfig
                     * @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.cloud.dialogflow.v2beta1.InputAudioConfig;

                    /**
                     * Verifies an InputAudioConfig 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 InputAudioConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InputAudioConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.InputAudioConfig;

                    /**
                     * Creates a plain object from an InputAudioConfig message. Also converts values to other types if specified.
                     * @param message InputAudioConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.InputAudioConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InputAudioConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InputAudioConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a VoiceSelectionParams. */
                interface IVoiceSelectionParams {

                    /** VoiceSelectionParams name */
                    name?: (string|null);

                    /** VoiceSelectionParams ssmlGender */
                    ssmlGender?: (google.cloud.dialogflow.v2beta1.SsmlVoiceGender|keyof typeof google.cloud.dialogflow.v2beta1.SsmlVoiceGender|null);
                }

                /** Represents a VoiceSelectionParams. */
                class VoiceSelectionParams implements IVoiceSelectionParams {

                    /**
                     * Constructs a new VoiceSelectionParams.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IVoiceSelectionParams);

                    /** VoiceSelectionParams name. */
                    public name: string;

                    /** VoiceSelectionParams ssmlGender. */
                    public ssmlGender: (google.cloud.dialogflow.v2beta1.SsmlVoiceGender|keyof typeof google.cloud.dialogflow.v2beta1.SsmlVoiceGender);

                    /**
                     * Creates a new VoiceSelectionParams instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns VoiceSelectionParams instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IVoiceSelectionParams): google.cloud.dialogflow.v2beta1.VoiceSelectionParams;

                    /**
                     * Encodes the specified VoiceSelectionParams message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.VoiceSelectionParams.verify|verify} messages.
                     * @param message VoiceSelectionParams message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IVoiceSelectionParams, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified VoiceSelectionParams message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.VoiceSelectionParams.verify|verify} messages.
                     * @param message VoiceSelectionParams message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IVoiceSelectionParams, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a VoiceSelectionParams message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns VoiceSelectionParams
                     * @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.cloud.dialogflow.v2beta1.VoiceSelectionParams;

                    /**
                     * Decodes a VoiceSelectionParams message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns VoiceSelectionParams
                     * @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.cloud.dialogflow.v2beta1.VoiceSelectionParams;

                    /**
                     * Verifies a VoiceSelectionParams 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 VoiceSelectionParams message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns VoiceSelectionParams
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.VoiceSelectionParams;

                    /**
                     * Creates a plain object from a VoiceSelectionParams message. Also converts values to other types if specified.
                     * @param message VoiceSelectionParams
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.VoiceSelectionParams, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this VoiceSelectionParams to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for VoiceSelectionParams
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SynthesizeSpeechConfig. */
                interface ISynthesizeSpeechConfig {

                    /** SynthesizeSpeechConfig speakingRate */
                    speakingRate?: (number|null);

                    /** SynthesizeSpeechConfig pitch */
                    pitch?: (number|null);

                    /** SynthesizeSpeechConfig volumeGainDb */
                    volumeGainDb?: (number|null);

                    /** SynthesizeSpeechConfig effectsProfileId */
                    effectsProfileId?: (string[]|null);

                    /** SynthesizeSpeechConfig voice */
                    voice?: (google.cloud.dialogflow.v2beta1.IVoiceSelectionParams|null);

                    /** SynthesizeSpeechConfig pronunciations */
                    pronunciations?: (google.cloud.dialogflow.v2beta1.ICustomPronunciationParams[]|null);
                }

                /** Represents a SynthesizeSpeechConfig. */
                class SynthesizeSpeechConfig implements ISynthesizeSpeechConfig {

                    /**
                     * Constructs a new SynthesizeSpeechConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.ISynthesizeSpeechConfig);

                    /** SynthesizeSpeechConfig speakingRate. */
                    public speakingRate: number;

                    /** SynthesizeSpeechConfig pitch. */
                    public pitch: number;

                    /** SynthesizeSpeechConfig volumeGainDb. */
                    public volumeGainDb: number;

                    /** SynthesizeSpeechConfig effectsProfileId. */
                    public effectsProfileId: string[];

                    /** SynthesizeSpeechConfig voice. */
                    public voice?: (google.cloud.dialogflow.v2beta1.IVoiceSelectionParams|null);

                    /** SynthesizeSpeechConfig pronunciations. */
                    public pronunciations: google.cloud.dialogflow.v2beta1.ICustomPronunciationParams[];

                    /**
                     * Creates a new SynthesizeSpeechConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SynthesizeSpeechConfig instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.ISynthesizeSpeechConfig): google.cloud.dialogflow.v2beta1.SynthesizeSpeechConfig;

                    /**
                     * Encodes the specified SynthesizeSpeechConfig message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.SynthesizeSpeechConfig.verify|verify} messages.
                     * @param message SynthesizeSpeechConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.ISynthesizeSpeechConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SynthesizeSpeechConfig message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.SynthesizeSpeechConfig.verify|verify} messages.
                     * @param message SynthesizeSpeechConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.ISynthesizeSpeechConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SynthesizeSpeechConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SynthesizeSpeechConfig
                     * @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.cloud.dialogflow.v2beta1.SynthesizeSpeechConfig;

                    /**
                     * Decodes a SynthesizeSpeechConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SynthesizeSpeechConfig
                     * @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.cloud.dialogflow.v2beta1.SynthesizeSpeechConfig;

                    /**
                     * Verifies a SynthesizeSpeechConfig 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 SynthesizeSpeechConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SynthesizeSpeechConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.SynthesizeSpeechConfig;

                    /**
                     * Creates a plain object from a SynthesizeSpeechConfig message. Also converts values to other types if specified.
                     * @param message SynthesizeSpeechConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.SynthesizeSpeechConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SynthesizeSpeechConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SynthesizeSpeechConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a CustomPronunciationParams. */
                interface ICustomPronunciationParams {

                    /** CustomPronunciationParams phrase */
                    phrase?: (string|null);

                    /** CustomPronunciationParams phoneticEncoding */
                    phoneticEncoding?: (google.cloud.dialogflow.v2beta1.CustomPronunciationParams.PhoneticEncoding|keyof typeof google.cloud.dialogflow.v2beta1.CustomPronunciationParams.PhoneticEncoding|null);

                    /** CustomPronunciationParams pronunciation */
                    pronunciation?: (string|null);
                }

                /** Represents a CustomPronunciationParams. */
                class CustomPronunciationParams implements ICustomPronunciationParams {

                    /**
                     * Constructs a new CustomPronunciationParams.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.ICustomPronunciationParams);

                    /** CustomPronunciationParams phrase. */
                    public phrase: string;

                    /** CustomPronunciationParams phoneticEncoding. */
                    public phoneticEncoding: (google.cloud.dialogflow.v2beta1.CustomPronunciationParams.PhoneticEncoding|keyof typeof google.cloud.dialogflow.v2beta1.CustomPronunciationParams.PhoneticEncoding);

                    /** CustomPronunciationParams pronunciation. */
                    public pronunciation: string;

                    /**
                     * Creates a new CustomPronunciationParams instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CustomPronunciationParams instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.ICustomPronunciationParams): google.cloud.dialogflow.v2beta1.CustomPronunciationParams;

                    /**
                     * Encodes the specified CustomPronunciationParams message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.CustomPronunciationParams.verify|verify} messages.
                     * @param message CustomPronunciationParams message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.ICustomPronunciationParams, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CustomPronunciationParams message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.CustomPronunciationParams.verify|verify} messages.
                     * @param message CustomPronunciationParams message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.ICustomPronunciationParams, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CustomPronunciationParams message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CustomPronunciationParams
                     * @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.cloud.dialogflow.v2beta1.CustomPronunciationParams;

                    /**
                     * Decodes a CustomPronunciationParams message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CustomPronunciationParams
                     * @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.cloud.dialogflow.v2beta1.CustomPronunciationParams;

                    /**
                     * Verifies a CustomPronunciationParams 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 CustomPronunciationParams message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CustomPronunciationParams
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.CustomPronunciationParams;

                    /**
                     * Creates a plain object from a CustomPronunciationParams message. Also converts values to other types if specified.
                     * @param message CustomPronunciationParams
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.CustomPronunciationParams, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CustomPronunciationParams to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CustomPronunciationParams
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace CustomPronunciationParams {

                    /** PhoneticEncoding enum. */
                    enum PhoneticEncoding {
                        PHONETIC_ENCODING_UNSPECIFIED = 0,
                        PHONETIC_ENCODING_IPA = 1,
                        PHONETIC_ENCODING_X_SAMPA = 2
                    }
                }

                /** Properties of an OutputAudioConfig. */
                interface IOutputAudioConfig {

                    /** OutputAudioConfig audioEncoding */
                    audioEncoding?: (google.cloud.dialogflow.v2beta1.OutputAudioEncoding|keyof typeof google.cloud.dialogflow.v2beta1.OutputAudioEncoding|null);

                    /** OutputAudioConfig sampleRateHertz */
                    sampleRateHertz?: (number|null);

                    /** OutputAudioConfig synthesizeSpeechConfig */
                    synthesizeSpeechConfig?: (google.cloud.dialogflow.v2beta1.ISynthesizeSpeechConfig|null);
                }

                /** Represents an OutputAudioConfig. */
                class OutputAudioConfig implements IOutputAudioConfig {

                    /**
                     * Constructs a new OutputAudioConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IOutputAudioConfig);

                    /** OutputAudioConfig audioEncoding. */
                    public audioEncoding: (google.cloud.dialogflow.v2beta1.OutputAudioEncoding|keyof typeof google.cloud.dialogflow.v2beta1.OutputAudioEncoding);

                    /** OutputAudioConfig sampleRateHertz. */
                    public sampleRateHertz: number;

                    /** OutputAudioConfig synthesizeSpeechConfig. */
                    public synthesizeSpeechConfig?: (google.cloud.dialogflow.v2beta1.ISynthesizeSpeechConfig|null);

                    /**
                     * Creates a new OutputAudioConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns OutputAudioConfig instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IOutputAudioConfig): google.cloud.dialogflow.v2beta1.OutputAudioConfig;

                    /**
                     * Encodes the specified OutputAudioConfig message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.OutputAudioConfig.verify|verify} messages.
                     * @param message OutputAudioConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IOutputAudioConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified OutputAudioConfig message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.OutputAudioConfig.verify|verify} messages.
                     * @param message OutputAudioConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IOutputAudioConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an OutputAudioConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns OutputAudioConfig
                     * @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.cloud.dialogflow.v2beta1.OutputAudioConfig;

                    /**
                     * Decodes an OutputAudioConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns OutputAudioConfig
                     * @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.cloud.dialogflow.v2beta1.OutputAudioConfig;

                    /**
                     * Verifies an OutputAudioConfig 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 OutputAudioConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns OutputAudioConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.OutputAudioConfig;

                    /**
                     * Creates a plain object from an OutputAudioConfig message. Also converts values to other types if specified.
                     * @param message OutputAudioConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.OutputAudioConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this OutputAudioConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for OutputAudioConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TelephonyDtmfEvents. */
                interface ITelephonyDtmfEvents {

                    /** TelephonyDtmfEvents dtmfEvents */
                    dtmfEvents?: (google.cloud.dialogflow.v2beta1.TelephonyDtmf[]|null);
                }

                /** Represents a TelephonyDtmfEvents. */
                class TelephonyDtmfEvents implements ITelephonyDtmfEvents {

                    /**
                     * Constructs a new TelephonyDtmfEvents.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.ITelephonyDtmfEvents);

                    /** TelephonyDtmfEvents dtmfEvents. */
                    public dtmfEvents: google.cloud.dialogflow.v2beta1.TelephonyDtmf[];

                    /**
                     * Creates a new TelephonyDtmfEvents instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TelephonyDtmfEvents instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.ITelephonyDtmfEvents): google.cloud.dialogflow.v2beta1.TelephonyDtmfEvents;

                    /**
                     * Encodes the specified TelephonyDtmfEvents message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.TelephonyDtmfEvents.verify|verify} messages.
                     * @param message TelephonyDtmfEvents message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.ITelephonyDtmfEvents, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TelephonyDtmfEvents message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.TelephonyDtmfEvents.verify|verify} messages.
                     * @param message TelephonyDtmfEvents message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.ITelephonyDtmfEvents, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TelephonyDtmfEvents message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TelephonyDtmfEvents
                     * @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.cloud.dialogflow.v2beta1.TelephonyDtmfEvents;

                    /**
                     * Decodes a TelephonyDtmfEvents message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TelephonyDtmfEvents
                     * @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.cloud.dialogflow.v2beta1.TelephonyDtmfEvents;

                    /**
                     * Verifies a TelephonyDtmfEvents 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 TelephonyDtmfEvents message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TelephonyDtmfEvents
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.TelephonyDtmfEvents;

                    /**
                     * Creates a plain object from a TelephonyDtmfEvents message. Also converts values to other types if specified.
                     * @param message TelephonyDtmfEvents
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.TelephonyDtmfEvents, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TelephonyDtmfEvents to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TelephonyDtmfEvents
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SpeechToTextConfig. */
                interface ISpeechToTextConfig {

                    /** SpeechToTextConfig speechModelVariant */
                    speechModelVariant?: (google.cloud.dialogflow.v2beta1.SpeechModelVariant|keyof typeof google.cloud.dialogflow.v2beta1.SpeechModelVariant|null);

                    /** SpeechToTextConfig model */
                    model?: (string|null);

                    /** SpeechToTextConfig phraseSets */
                    phraseSets?: (string[]|null);

                    /** SpeechToTextConfig audioEncoding */
                    audioEncoding?: (google.cloud.dialogflow.v2beta1.AudioEncoding|keyof typeof google.cloud.dialogflow.v2beta1.AudioEncoding|null);

                    /** SpeechToTextConfig sampleRateHertz */
                    sampleRateHertz?: (number|null);

                    /** SpeechToTextConfig languageCode */
                    languageCode?: (string|null);

                    /** SpeechToTextConfig enableWordInfo */
                    enableWordInfo?: (boolean|null);

                    /** SpeechToTextConfig useTimeoutBasedEndpointing */
                    useTimeoutBasedEndpointing?: (boolean|null);
                }

                /** Represents a SpeechToTextConfig. */
                class SpeechToTextConfig implements ISpeechToTextConfig {

                    /**
                     * Constructs a new SpeechToTextConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.ISpeechToTextConfig);

                    /** SpeechToTextConfig speechModelVariant. */
                    public speechModelVariant: (google.cloud.dialogflow.v2beta1.SpeechModelVariant|keyof typeof google.cloud.dialogflow.v2beta1.SpeechModelVariant);

                    /** SpeechToTextConfig model. */
                    public model: string;

                    /** SpeechToTextConfig phraseSets. */
                    public phraseSets: string[];

                    /** SpeechToTextConfig audioEncoding. */
                    public audioEncoding: (google.cloud.dialogflow.v2beta1.AudioEncoding|keyof typeof google.cloud.dialogflow.v2beta1.AudioEncoding);

                    /** SpeechToTextConfig sampleRateHertz. */
                    public sampleRateHertz: number;

                    /** SpeechToTextConfig languageCode. */
                    public languageCode: string;

                    /** SpeechToTextConfig enableWordInfo. */
                    public enableWordInfo: boolean;

                    /** SpeechToTextConfig useTimeoutBasedEndpointing. */
                    public useTimeoutBasedEndpointing: boolean;

                    /**
                     * Creates a new SpeechToTextConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SpeechToTextConfig instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.ISpeechToTextConfig): google.cloud.dialogflow.v2beta1.SpeechToTextConfig;

                    /**
                     * Encodes the specified SpeechToTextConfig message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.SpeechToTextConfig.verify|verify} messages.
                     * @param message SpeechToTextConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.ISpeechToTextConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SpeechToTextConfig message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.SpeechToTextConfig.verify|verify} messages.
                     * @param message SpeechToTextConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.ISpeechToTextConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SpeechToTextConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SpeechToTextConfig
                     * @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.cloud.dialogflow.v2beta1.SpeechToTextConfig;

                    /**
                     * Decodes a SpeechToTextConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SpeechToTextConfig
                     * @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.cloud.dialogflow.v2beta1.SpeechToTextConfig;

                    /**
                     * Verifies a SpeechToTextConfig 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 SpeechToTextConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SpeechToTextConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.SpeechToTextConfig;

                    /**
                     * Creates a plain object from a SpeechToTextConfig message. Also converts values to other types if specified.
                     * @param message SpeechToTextConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.SpeechToTextConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SpeechToTextConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SpeechToTextConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** TelephonyDtmf enum. */
                enum TelephonyDtmf {
                    TELEPHONY_DTMF_UNSPECIFIED = 0,
                    DTMF_ONE = 1,
                    DTMF_TWO = 2,
                    DTMF_THREE = 3,
                    DTMF_FOUR = 4,
                    DTMF_FIVE = 5,
                    DTMF_SIX = 6,
                    DTMF_SEVEN = 7,
                    DTMF_EIGHT = 8,
                    DTMF_NINE = 9,
                    DTMF_ZERO = 10,
                    DTMF_A = 11,
                    DTMF_B = 12,
                    DTMF_C = 13,
                    DTMF_D = 14,
                    DTMF_STAR = 15,
                    DTMF_POUND = 16
                }

                /** AudioEncoding enum. */
                enum AudioEncoding {
                    AUDIO_ENCODING_UNSPECIFIED = 0,
                    AUDIO_ENCODING_LINEAR_16 = 1,
                    AUDIO_ENCODING_FLAC = 2,
                    AUDIO_ENCODING_MULAW = 3,
                    AUDIO_ENCODING_AMR = 4,
                    AUDIO_ENCODING_AMR_WB = 5,
                    AUDIO_ENCODING_OGG_OPUS = 6,
                    AUDIO_ENCODING_SPEEX_WITH_HEADER_BYTE = 7,
                    AUDIO_ENCODING_ALAW = 8
                }

                /** SpeechModelVariant enum. */
                enum SpeechModelVariant {
                    SPEECH_MODEL_VARIANT_UNSPECIFIED = 0,
                    USE_BEST_AVAILABLE = 1,
                    USE_STANDARD = 2,
                    USE_ENHANCED = 3
                }

                /** SsmlVoiceGender enum. */
                enum SsmlVoiceGender {
                    SSML_VOICE_GENDER_UNSPECIFIED = 0,
                    SSML_VOICE_GENDER_MALE = 1,
                    SSML_VOICE_GENDER_FEMALE = 2,
                    SSML_VOICE_GENDER_NEUTRAL = 3
                }

                /** OutputAudioEncoding enum. */
                enum OutputAudioEncoding {
                    OUTPUT_AUDIO_ENCODING_UNSPECIFIED = 0,
                    OUTPUT_AUDIO_ENCODING_LINEAR_16 = 1,
                    OUTPUT_AUDIO_ENCODING_MP3 = 2,
                    OUTPUT_AUDIO_ENCODING_MP3_64_KBPS = 4,
                    OUTPUT_AUDIO_ENCODING_OGG_OPUS = 3,
                    OUTPUT_AUDIO_ENCODING_MULAW = 5,
                    OUTPUT_AUDIO_ENCODING_ALAW = 6
                }

                /** Represents a Sessions */
                class Sessions extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new Sessions 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 Sessions 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): Sessions;

                    /**
                     * Calls DetectIntent.
                     * @param request DetectIntentRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and DetectIntentResponse
                     */
                    public detectIntent(request: google.cloud.dialogflow.v2beta1.IDetectIntentRequest, callback: google.cloud.dialogflow.v2beta1.Sessions.DetectIntentCallback): void;

                    /**
                     * Calls DetectIntent.
                     * @param request DetectIntentRequest message or plain object
                     * @returns Promise
                     */
                    public detectIntent(request: google.cloud.dialogflow.v2beta1.IDetectIntentRequest): Promise<google.cloud.dialogflow.v2beta1.DetectIntentResponse>;

                    /**
                     * Calls StreamingDetectIntent.
                     * @param request StreamingDetectIntentRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and StreamingDetectIntentResponse
                     */
                    public streamingDetectIntent(request: google.cloud.dialogflow.v2beta1.IStreamingDetectIntentRequest, callback: google.cloud.dialogflow.v2beta1.Sessions.StreamingDetectIntentCallback): void;

                    /**
                     * Calls StreamingDetectIntent.
                     * @param request StreamingDetectIntentRequest message or plain object
                     * @returns Promise
                     */
                    public streamingDetectIntent(request: google.cloud.dialogflow.v2beta1.IStreamingDetectIntentRequest): Promise<google.cloud.dialogflow.v2beta1.StreamingDetectIntentResponse>;
                }

                namespace Sessions {

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2beta1.Sessions|detectIntent}.
                     * @param error Error, if any
                     * @param [response] DetectIntentResponse
                     */
                    type DetectIntentCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2beta1.DetectIntentResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2beta1.Sessions|streamingDetectIntent}.
                     * @param error Error, if any
                     * @param [response] StreamingDetectIntentResponse
                     */
                    type StreamingDetectIntentCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2beta1.StreamingDetectIntentResponse) => void;
                }

                /** Properties of a DetectIntentRequest. */
                interface IDetectIntentRequest {

                    /** DetectIntentRequest session */
                    session?: (string|null);

                    /** DetectIntentRequest queryParams */
                    queryParams?: (google.cloud.dialogflow.v2beta1.IQueryParameters|null);

                    /** DetectIntentRequest queryInput */
                    queryInput?: (google.cloud.dialogflow.v2beta1.IQueryInput|null);

                    /** DetectIntentRequest outputAudioConfig */
                    outputAudioConfig?: (google.cloud.dialogflow.v2beta1.IOutputAudioConfig|null);

                    /** DetectIntentRequest outputAudioConfigMask */
                    outputAudioConfigMask?: (google.protobuf.IFieldMask|null);

                    /** DetectIntentRequest inputAudio */
                    inputAudio?: (Uint8Array|Buffer|string|null);
                }

                /** Represents a DetectIntentRequest. */
                class DetectIntentRequest implements IDetectIntentRequest {

                    /**
                     * Constructs a new DetectIntentRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IDetectIntentRequest);

                    /** DetectIntentRequest session. */
                    public session: string;

                    /** DetectIntentRequest queryParams. */
                    public queryParams?: (google.cloud.dialogflow.v2beta1.IQueryParameters|null);

                    /** DetectIntentRequest queryInput. */
                    public queryInput?: (google.cloud.dialogflow.v2beta1.IQueryInput|null);

                    /** DetectIntentRequest outputAudioConfig. */
                    public outputAudioConfig?: (google.cloud.dialogflow.v2beta1.IOutputAudioConfig|null);

                    /** DetectIntentRequest outputAudioConfigMask. */
                    public outputAudioConfigMask?: (google.protobuf.IFieldMask|null);

                    /** DetectIntentRequest inputAudio. */
                    public inputAudio: (Uint8Array|Buffer|string);

                    /**
                     * Creates a new DetectIntentRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DetectIntentRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IDetectIntentRequest): google.cloud.dialogflow.v2beta1.DetectIntentRequest;

                    /**
                     * Encodes the specified DetectIntentRequest message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.DetectIntentRequest.verify|verify} messages.
                     * @param message DetectIntentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IDetectIntentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DetectIntentRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.DetectIntentRequest.verify|verify} messages.
                     * @param message DetectIntentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IDetectIntentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DetectIntentRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DetectIntentRequest
                     * @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.cloud.dialogflow.v2beta1.DetectIntentRequest;

                    /**
                     * Decodes a DetectIntentRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DetectIntentRequest
                     * @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.cloud.dialogflow.v2beta1.DetectIntentRequest;

                    /**
                     * Verifies a DetectIntentRequest 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 DetectIntentRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DetectIntentRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.DetectIntentRequest;

                    /**
                     * Creates a plain object from a DetectIntentRequest message. Also converts values to other types if specified.
                     * @param message DetectIntentRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.DetectIntentRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DetectIntentRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DetectIntentRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DetectIntentResponse. */
                interface IDetectIntentResponse {

                    /** DetectIntentResponse responseId */
                    responseId?: (string|null);

                    /** DetectIntentResponse queryResult */
                    queryResult?: (google.cloud.dialogflow.v2beta1.IQueryResult|null);

                    /** DetectIntentResponse alternativeQueryResults */
                    alternativeQueryResults?: (google.cloud.dialogflow.v2beta1.IQueryResult[]|null);

                    /** DetectIntentResponse webhookStatus */
                    webhookStatus?: (google.rpc.IStatus|null);

                    /** DetectIntentResponse outputAudio */
                    outputAudio?: (Uint8Array|Buffer|string|null);

                    /** DetectIntentResponse outputAudioConfig */
                    outputAudioConfig?: (google.cloud.dialogflow.v2beta1.IOutputAudioConfig|null);
                }

                /** Represents a DetectIntentResponse. */
                class DetectIntentResponse implements IDetectIntentResponse {

                    /**
                     * Constructs a new DetectIntentResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IDetectIntentResponse);

                    /** DetectIntentResponse responseId. */
                    public responseId: string;

                    /** DetectIntentResponse queryResult. */
                    public queryResult?: (google.cloud.dialogflow.v2beta1.IQueryResult|null);

                    /** DetectIntentResponse alternativeQueryResults. */
                    public alternativeQueryResults: google.cloud.dialogflow.v2beta1.IQueryResult[];

                    /** DetectIntentResponse webhookStatus. */
                    public webhookStatus?: (google.rpc.IStatus|null);

                    /** DetectIntentResponse outputAudio. */
                    public outputAudio: (Uint8Array|Buffer|string);

                    /** DetectIntentResponse outputAudioConfig. */
                    public outputAudioConfig?: (google.cloud.dialogflow.v2beta1.IOutputAudioConfig|null);

                    /**
                     * Creates a new DetectIntentResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DetectIntentResponse instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IDetectIntentResponse): google.cloud.dialogflow.v2beta1.DetectIntentResponse;

                    /**
                     * Encodes the specified DetectIntentResponse message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.DetectIntentResponse.verify|verify} messages.
                     * @param message DetectIntentResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IDetectIntentResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DetectIntentResponse message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.DetectIntentResponse.verify|verify} messages.
                     * @param message DetectIntentResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IDetectIntentResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DetectIntentResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DetectIntentResponse
                     * @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.cloud.dialogflow.v2beta1.DetectIntentResponse;

                    /**
                     * Decodes a DetectIntentResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DetectIntentResponse
                     * @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.cloud.dialogflow.v2beta1.DetectIntentResponse;

                    /**
                     * Verifies a DetectIntentResponse 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 DetectIntentResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DetectIntentResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.DetectIntentResponse;

                    /**
                     * Creates a plain object from a DetectIntentResponse message. Also converts values to other types if specified.
                     * @param message DetectIntentResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.DetectIntentResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DetectIntentResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DetectIntentResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a QueryParameters. */
                interface IQueryParameters {

                    /** QueryParameters timeZone */
                    timeZone?: (string|null);

                    /** QueryParameters geoLocation */
                    geoLocation?: (google.type.ILatLng|null);

                    /** QueryParameters contexts */
                    contexts?: (google.cloud.dialogflow.v2beta1.IContext[]|null);

                    /** QueryParameters resetContexts */
                    resetContexts?: (boolean|null);

                    /** QueryParameters sessionEntityTypes */
                    sessionEntityTypes?: (google.cloud.dialogflow.v2beta1.ISessionEntityType[]|null);

                    /** QueryParameters payload */
                    payload?: (google.protobuf.IStruct|null);

                    /** QueryParameters knowledgeBaseNames */
                    knowledgeBaseNames?: (string[]|null);

                    /** QueryParameters sentimentAnalysisRequestConfig */
                    sentimentAnalysisRequestConfig?: (google.cloud.dialogflow.v2beta1.ISentimentAnalysisRequestConfig|null);

                    /** QueryParameters subAgents */
                    subAgents?: (google.cloud.dialogflow.v2beta1.ISubAgent[]|null);

                    /** QueryParameters webhookHeaders */
                    webhookHeaders?: ({ [k: string]: string }|null);

                    /** QueryParameters platform */
                    platform?: (string|null);
                }

                /** Represents a QueryParameters. */
                class QueryParameters implements IQueryParameters {

                    /**
                     * Constructs a new QueryParameters.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IQueryParameters);

                    /** QueryParameters timeZone. */
                    public timeZone: string;

                    /** QueryParameters geoLocation. */
                    public geoLocation?: (google.type.ILatLng|null);

                    /** QueryParameters contexts. */
                    public contexts: google.cloud.dialogflow.v2beta1.IContext[];

                    /** QueryParameters resetContexts. */
                    public resetContexts: boolean;

                    /** QueryParameters sessionEntityTypes. */
                    public sessionEntityTypes: google.cloud.dialogflow.v2beta1.ISessionEntityType[];

                    /** QueryParameters payload. */
                    public payload?: (google.protobuf.IStruct|null);

                    /** QueryParameters knowledgeBaseNames. */
                    public knowledgeBaseNames: string[];

                    /** QueryParameters sentimentAnalysisRequestConfig. */
                    public sentimentAnalysisRequestConfig?: (google.cloud.dialogflow.v2beta1.ISentimentAnalysisRequestConfig|null);

                    /** QueryParameters subAgents. */
                    public subAgents: google.cloud.dialogflow.v2beta1.ISubAgent[];

                    /** QueryParameters webhookHeaders. */
                    public webhookHeaders: { [k: string]: string };

                    /** QueryParameters platform. */
                    public platform: string;

                    /**
                     * Creates a new QueryParameters instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns QueryParameters instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IQueryParameters): google.cloud.dialogflow.v2beta1.QueryParameters;

                    /**
                     * Encodes the specified QueryParameters message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.QueryParameters.verify|verify} messages.
                     * @param message QueryParameters message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IQueryParameters, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified QueryParameters message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.QueryParameters.verify|verify} messages.
                     * @param message QueryParameters message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IQueryParameters, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a QueryParameters message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns QueryParameters
                     * @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.cloud.dialogflow.v2beta1.QueryParameters;

                    /**
                     * Decodes a QueryParameters message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns QueryParameters
                     * @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.cloud.dialogflow.v2beta1.QueryParameters;

                    /**
                     * Verifies a QueryParameters 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 QueryParameters message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns QueryParameters
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.QueryParameters;

                    /**
                     * Creates a plain object from a QueryParameters message. Also converts values to other types if specified.
                     * @param message QueryParameters
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.QueryParameters, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this QueryParameters to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for QueryParameters
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a QueryInput. */
                interface IQueryInput {

                    /** QueryInput audioConfig */
                    audioConfig?: (google.cloud.dialogflow.v2beta1.IInputAudioConfig|null);

                    /** QueryInput text */
                    text?: (google.cloud.dialogflow.v2beta1.ITextInput|null);

                    /** QueryInput event */
                    event?: (google.cloud.dialogflow.v2beta1.IEventInput|null);

                    /** QueryInput dtmf */
                    dtmf?: (google.cloud.dialogflow.v2beta1.ITelephonyDtmfEvents|null);
                }

                /** Represents a QueryInput. */
                class QueryInput implements IQueryInput {

                    /**
                     * Constructs a new QueryInput.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IQueryInput);

                    /** QueryInput audioConfig. */
                    public audioConfig?: (google.cloud.dialogflow.v2beta1.IInputAudioConfig|null);

                    /** QueryInput text. */
                    public text?: (google.cloud.dialogflow.v2beta1.ITextInput|null);

                    /** QueryInput event. */
                    public event?: (google.cloud.dialogflow.v2beta1.IEventInput|null);

                    /** QueryInput dtmf. */
                    public dtmf?: (google.cloud.dialogflow.v2beta1.ITelephonyDtmfEvents|null);

                    /** QueryInput input. */
                    public input?: ("audioConfig"|"text"|"event"|"dtmf");

                    /**
                     * Creates a new QueryInput instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns QueryInput instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IQueryInput): google.cloud.dialogflow.v2beta1.QueryInput;

                    /**
                     * Encodes the specified QueryInput message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.QueryInput.verify|verify} messages.
                     * @param message QueryInput message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IQueryInput, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified QueryInput message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.QueryInput.verify|verify} messages.
                     * @param message QueryInput message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IQueryInput, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a QueryInput message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns QueryInput
                     * @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.cloud.dialogflow.v2beta1.QueryInput;

                    /**
                     * Decodes a QueryInput message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns QueryInput
                     * @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.cloud.dialogflow.v2beta1.QueryInput;

                    /**
                     * Verifies a QueryInput 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 QueryInput message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns QueryInput
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.QueryInput;

                    /**
                     * Creates a plain object from a QueryInput message. Also converts values to other types if specified.
                     * @param message QueryInput
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.QueryInput, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this QueryInput to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for QueryInput
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a QueryResult. */
                interface IQueryResult {

                    /** QueryResult queryText */
                    queryText?: (string|null);

                    /** QueryResult languageCode */
                    languageCode?: (string|null);

                    /** QueryResult speechRecognitionConfidence */
                    speechRecognitionConfidence?: (number|null);

                    /** QueryResult action */
                    action?: (string|null);

                    /** QueryResult parameters */
                    parameters?: (google.protobuf.IStruct|null);

                    /** QueryResult allRequiredParamsPresent */
                    allRequiredParamsPresent?: (boolean|null);

                    /** QueryResult cancelsSlotFilling */
                    cancelsSlotFilling?: (boolean|null);

                    /** QueryResult fulfillmentText */
                    fulfillmentText?: (string|null);

                    /** QueryResult fulfillmentMessages */
                    fulfillmentMessages?: (google.cloud.dialogflow.v2beta1.Intent.IMessage[]|null);

                    /** QueryResult webhookSource */
                    webhookSource?: (string|null);

                    /** QueryResult webhookPayload */
                    webhookPayload?: (google.protobuf.IStruct|null);

                    /** QueryResult outputContexts */
                    outputContexts?: (google.cloud.dialogflow.v2beta1.IContext[]|null);

                    /** QueryResult intent */
                    intent?: (google.cloud.dialogflow.v2beta1.IIntent|null);

                    /** QueryResult intentDetectionConfidence */
                    intentDetectionConfidence?: (number|null);

                    /** QueryResult diagnosticInfo */
                    diagnosticInfo?: (google.protobuf.IStruct|null);

                    /** QueryResult sentimentAnalysisResult */
                    sentimentAnalysisResult?: (google.cloud.dialogflow.v2beta1.ISentimentAnalysisResult|null);

                    /** QueryResult knowledgeAnswers */
                    knowledgeAnswers?: (google.cloud.dialogflow.v2beta1.IKnowledgeAnswers|null);
                }

                /** Represents a QueryResult. */
                class QueryResult implements IQueryResult {

                    /**
                     * Constructs a new QueryResult.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IQueryResult);

                    /** QueryResult queryText. */
                    public queryText: string;

                    /** QueryResult languageCode. */
                    public languageCode: string;

                    /** QueryResult speechRecognitionConfidence. */
                    public speechRecognitionConfidence: number;

                    /** QueryResult action. */
                    public action: string;

                    /** QueryResult parameters. */
                    public parameters?: (google.protobuf.IStruct|null);

                    /** QueryResult allRequiredParamsPresent. */
                    public allRequiredParamsPresent: boolean;

                    /** QueryResult cancelsSlotFilling. */
                    public cancelsSlotFilling: boolean;

                    /** QueryResult fulfillmentText. */
                    public fulfillmentText: string;

                    /** QueryResult fulfillmentMessages. */
                    public fulfillmentMessages: google.cloud.dialogflow.v2beta1.Intent.IMessage[];

                    /** QueryResult webhookSource. */
                    public webhookSource: string;

                    /** QueryResult webhookPayload. */
                    public webhookPayload?: (google.protobuf.IStruct|null);

                    /** QueryResult outputContexts. */
                    public outputContexts: google.cloud.dialogflow.v2beta1.IContext[];

                    /** QueryResult intent. */
                    public intent?: (google.cloud.dialogflow.v2beta1.IIntent|null);

                    /** QueryResult intentDetectionConfidence. */
                    public intentDetectionConfidence: number;

                    /** QueryResult diagnosticInfo. */
                    public diagnosticInfo?: (google.protobuf.IStruct|null);

                    /** QueryResult sentimentAnalysisResult. */
                    public sentimentAnalysisResult?: (google.cloud.dialogflow.v2beta1.ISentimentAnalysisResult|null);

                    /** QueryResult knowledgeAnswers. */
                    public knowledgeAnswers?: (google.cloud.dialogflow.v2beta1.IKnowledgeAnswers|null);

                    /**
                     * Creates a new QueryResult instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns QueryResult instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IQueryResult): google.cloud.dialogflow.v2beta1.QueryResult;

                    /**
                     * Encodes the specified QueryResult message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.QueryResult.verify|verify} messages.
                     * @param message QueryResult message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IQueryResult, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified QueryResult message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.QueryResult.verify|verify} messages.
                     * @param message QueryResult message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IQueryResult, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a QueryResult message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns QueryResult
                     * @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.cloud.dialogflow.v2beta1.QueryResult;

                    /**
                     * Decodes a QueryResult message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns QueryResult
                     * @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.cloud.dialogflow.v2beta1.QueryResult;

                    /**
                     * Verifies a QueryResult 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 QueryResult message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns QueryResult
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.QueryResult;

                    /**
                     * Creates a plain object from a QueryResult message. Also converts values to other types if specified.
                     * @param message QueryResult
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.QueryResult, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this QueryResult to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for QueryResult
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a KnowledgeAnswers. */
                interface IKnowledgeAnswers {

                    /** KnowledgeAnswers answers */
                    answers?: (google.cloud.dialogflow.v2beta1.KnowledgeAnswers.IAnswer[]|null);
                }

                /** Represents a KnowledgeAnswers. */
                class KnowledgeAnswers implements IKnowledgeAnswers {

                    /**
                     * Constructs a new KnowledgeAnswers.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IKnowledgeAnswers);

                    /** KnowledgeAnswers answers. */
                    public answers: google.cloud.dialogflow.v2beta1.KnowledgeAnswers.IAnswer[];

                    /**
                     * Creates a new KnowledgeAnswers instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns KnowledgeAnswers instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IKnowledgeAnswers): google.cloud.dialogflow.v2beta1.KnowledgeAnswers;

                    /**
                     * Encodes the specified KnowledgeAnswers message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.KnowledgeAnswers.verify|verify} messages.
                     * @param message KnowledgeAnswers message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IKnowledgeAnswers, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified KnowledgeAnswers message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.KnowledgeAnswers.verify|verify} messages.
                     * @param message KnowledgeAnswers message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IKnowledgeAnswers, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a KnowledgeAnswers message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns KnowledgeAnswers
                     * @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.cloud.dialogflow.v2beta1.KnowledgeAnswers;

                    /**
                     * Decodes a KnowledgeAnswers message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns KnowledgeAnswers
                     * @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.cloud.dialogflow.v2beta1.KnowledgeAnswers;

                    /**
                     * Verifies a KnowledgeAnswers 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 KnowledgeAnswers message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns KnowledgeAnswers
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.KnowledgeAnswers;

                    /**
                     * Creates a plain object from a KnowledgeAnswers message. Also converts values to other types if specified.
                     * @param message KnowledgeAnswers
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.KnowledgeAnswers, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this KnowledgeAnswers to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for KnowledgeAnswers
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace KnowledgeAnswers {

                    /** Properties of an Answer. */
                    interface IAnswer {

                        /** Answer source */
                        source?: (string|null);

                        /** Answer faqQuestion */
                        faqQuestion?: (string|null);

                        /** Answer answer */
                        answer?: (string|null);

                        /** Answer matchConfidenceLevel */
                        matchConfidenceLevel?: (google.cloud.dialogflow.v2beta1.KnowledgeAnswers.Answer.MatchConfidenceLevel|keyof typeof google.cloud.dialogflow.v2beta1.KnowledgeAnswers.Answer.MatchConfidenceLevel|null);

                        /** Answer matchConfidence */
                        matchConfidence?: (number|null);
                    }

                    /** Represents an Answer. */
                    class Answer implements IAnswer {

                        /**
                         * Constructs a new Answer.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2beta1.KnowledgeAnswers.IAnswer);

                        /** Answer source. */
                        public source: string;

                        /** Answer faqQuestion. */
                        public faqQuestion: string;

                        /** Answer answer. */
                        public answer: string;

                        /** Answer matchConfidenceLevel. */
                        public matchConfidenceLevel: (google.cloud.dialogflow.v2beta1.KnowledgeAnswers.Answer.MatchConfidenceLevel|keyof typeof google.cloud.dialogflow.v2beta1.KnowledgeAnswers.Answer.MatchConfidenceLevel);

                        /** Answer matchConfidence. */
                        public matchConfidence: number;

                        /**
                         * Creates a new Answer instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns Answer instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2beta1.KnowledgeAnswers.IAnswer): google.cloud.dialogflow.v2beta1.KnowledgeAnswers.Answer;

                        /**
                         * Encodes the specified Answer message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.KnowledgeAnswers.Answer.verify|verify} messages.
                         * @param message Answer message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2beta1.KnowledgeAnswers.IAnswer, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified Answer message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.KnowledgeAnswers.Answer.verify|verify} messages.
                         * @param message Answer message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.KnowledgeAnswers.IAnswer, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes an Answer message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns Answer
                         * @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.cloud.dialogflow.v2beta1.KnowledgeAnswers.Answer;

                        /**
                         * Decodes an Answer message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns Answer
                         * @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.cloud.dialogflow.v2beta1.KnowledgeAnswers.Answer;

                        /**
                         * Verifies an Answer 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 Answer message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns Answer
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.KnowledgeAnswers.Answer;

                        /**
                         * Creates a plain object from an Answer message. Also converts values to other types if specified.
                         * @param message Answer
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.dialogflow.v2beta1.KnowledgeAnswers.Answer, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this Answer to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for Answer
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    namespace Answer {

                        /** MatchConfidenceLevel enum. */
                        enum MatchConfidenceLevel {
                            MATCH_CONFIDENCE_LEVEL_UNSPECIFIED = 0,
                            LOW = 1,
                            MEDIUM = 2,
                            HIGH = 3
                        }
                    }
                }

                /** Properties of a StreamingDetectIntentRequest. */
                interface IStreamingDetectIntentRequest {

                    /** StreamingDetectIntentRequest session */
                    session?: (string|null);

                    /** StreamingDetectIntentRequest queryParams */
                    queryParams?: (google.cloud.dialogflow.v2beta1.IQueryParameters|null);

                    /** StreamingDetectIntentRequest queryInput */
                    queryInput?: (google.cloud.dialogflow.v2beta1.IQueryInput|null);

                    /** StreamingDetectIntentRequest singleUtterance */
                    singleUtterance?: (boolean|null);

                    /** StreamingDetectIntentRequest outputAudioConfig */
                    outputAudioConfig?: (google.cloud.dialogflow.v2beta1.IOutputAudioConfig|null);

                    /** StreamingDetectIntentRequest outputAudioConfigMask */
                    outputAudioConfigMask?: (google.protobuf.IFieldMask|null);

                    /** StreamingDetectIntentRequest inputAudio */
                    inputAudio?: (Uint8Array|Buffer|string|null);

                    /** StreamingDetectIntentRequest enableDebuggingInfo */
                    enableDebuggingInfo?: (boolean|null);
                }

                /** Represents a StreamingDetectIntentRequest. */
                class StreamingDetectIntentRequest implements IStreamingDetectIntentRequest {

                    /**
                     * Constructs a new StreamingDetectIntentRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IStreamingDetectIntentRequest);

                    /** StreamingDetectIntentRequest session. */
                    public session: string;

                    /** StreamingDetectIntentRequest queryParams. */
                    public queryParams?: (google.cloud.dialogflow.v2beta1.IQueryParameters|null);

                    /** StreamingDetectIntentRequest queryInput. */
                    public queryInput?: (google.cloud.dialogflow.v2beta1.IQueryInput|null);

                    /** StreamingDetectIntentRequest singleUtterance. */
                    public singleUtterance: boolean;

                    /** StreamingDetectIntentRequest outputAudioConfig. */
                    public outputAudioConfig?: (google.cloud.dialogflow.v2beta1.IOutputAudioConfig|null);

                    /** StreamingDetectIntentRequest outputAudioConfigMask. */
                    public outputAudioConfigMask?: (google.protobuf.IFieldMask|null);

                    /** StreamingDetectIntentRequest inputAudio. */
                    public inputAudio: (Uint8Array|Buffer|string);

                    /** StreamingDetectIntentRequest enableDebuggingInfo. */
                    public enableDebuggingInfo: boolean;

                    /**
                     * Creates a new StreamingDetectIntentRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns StreamingDetectIntentRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IStreamingDetectIntentRequest): google.cloud.dialogflow.v2beta1.StreamingDetectIntentRequest;

                    /**
                     * Encodes the specified StreamingDetectIntentRequest message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.StreamingDetectIntentRequest.verify|verify} messages.
                     * @param message StreamingDetectIntentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IStreamingDetectIntentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified StreamingDetectIntentRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.StreamingDetectIntentRequest.verify|verify} messages.
                     * @param message StreamingDetectIntentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IStreamingDetectIntentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a StreamingDetectIntentRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns StreamingDetectIntentRequest
                     * @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.cloud.dialogflow.v2beta1.StreamingDetectIntentRequest;

                    /**
                     * Decodes a StreamingDetectIntentRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns StreamingDetectIntentRequest
                     * @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.cloud.dialogflow.v2beta1.StreamingDetectIntentRequest;

                    /**
                     * Verifies a StreamingDetectIntentRequest 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 StreamingDetectIntentRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns StreamingDetectIntentRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.StreamingDetectIntentRequest;

                    /**
                     * Creates a plain object from a StreamingDetectIntentRequest message. Also converts values to other types if specified.
                     * @param message StreamingDetectIntentRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.StreamingDetectIntentRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this StreamingDetectIntentRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for StreamingDetectIntentRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a CloudConversationDebuggingInfo. */
                interface ICloudConversationDebuggingInfo {

                    /** CloudConversationDebuggingInfo audioDataChunks */
                    audioDataChunks?: (number|null);

                    /** CloudConversationDebuggingInfo resultEndTimeOffset */
                    resultEndTimeOffset?: (google.protobuf.IDuration|null);

                    /** CloudConversationDebuggingInfo firstAudioDuration */
                    firstAudioDuration?: (google.protobuf.IDuration|null);

                    /** CloudConversationDebuggingInfo singleUtterance */
                    singleUtterance?: (boolean|null);

                    /** CloudConversationDebuggingInfo speechPartialResultsEndTimes */
                    speechPartialResultsEndTimes?: (google.protobuf.IDuration[]|null);

                    /** CloudConversationDebuggingInfo speechFinalResultsEndTimes */
                    speechFinalResultsEndTimes?: (google.protobuf.IDuration[]|null);

                    /** CloudConversationDebuggingInfo partialResponses */
                    partialResponses?: (number|null);

                    /** CloudConversationDebuggingInfo speakerIdPassiveLatencyMsOffset */
                    speakerIdPassiveLatencyMsOffset?: (number|null);

                    /** CloudConversationDebuggingInfo bargeinEventTriggered */
                    bargeinEventTriggered?: (boolean|null);

                    /** CloudConversationDebuggingInfo speechSingleUtterance */
                    speechSingleUtterance?: (boolean|null);

                    /** CloudConversationDebuggingInfo dtmfPartialResultsTimes */
                    dtmfPartialResultsTimes?: (google.protobuf.IDuration[]|null);

                    /** CloudConversationDebuggingInfo dtmfFinalResultsTimes */
                    dtmfFinalResultsTimes?: (google.protobuf.IDuration[]|null);

                    /** CloudConversationDebuggingInfo singleUtteranceEndTimeOffset */
                    singleUtteranceEndTimeOffset?: (google.protobuf.IDuration|null);

                    /** CloudConversationDebuggingInfo noSpeechTimeout */
                    noSpeechTimeout?: (google.protobuf.IDuration|null);

                    /** CloudConversationDebuggingInfo endpointingTimeout */
                    endpointingTimeout?: (google.protobuf.IDuration|null);

                    /** CloudConversationDebuggingInfo isInputText */
                    isInputText?: (boolean|null);

                    /** CloudConversationDebuggingInfo clientHalfCloseTimeOffset */
                    clientHalfCloseTimeOffset?: (google.protobuf.IDuration|null);

                    /** CloudConversationDebuggingInfo clientHalfCloseStreamingTimeOffset */
                    clientHalfCloseStreamingTimeOffset?: (google.protobuf.IDuration|null);
                }

                /** Represents a CloudConversationDebuggingInfo. */
                class CloudConversationDebuggingInfo implements ICloudConversationDebuggingInfo {

                    /**
                     * Constructs a new CloudConversationDebuggingInfo.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.ICloudConversationDebuggingInfo);

                    /** CloudConversationDebuggingInfo audioDataChunks. */
                    public audioDataChunks: number;

                    /** CloudConversationDebuggingInfo resultEndTimeOffset. */
                    public resultEndTimeOffset?: (google.protobuf.IDuration|null);

                    /** CloudConversationDebuggingInfo firstAudioDuration. */
                    public firstAudioDuration?: (google.protobuf.IDuration|null);

                    /** CloudConversationDebuggingInfo singleUtterance. */
                    public singleUtterance: boolean;

                    /** CloudConversationDebuggingInfo speechPartialResultsEndTimes. */
                    public speechPartialResultsEndTimes: google.protobuf.IDuration[];

                    /** CloudConversationDebuggingInfo speechFinalResultsEndTimes. */
                    public speechFinalResultsEndTimes: google.protobuf.IDuration[];

                    /** CloudConversationDebuggingInfo partialResponses. */
                    public partialResponses: number;

                    /** CloudConversationDebuggingInfo speakerIdPassiveLatencyMsOffset. */
                    public speakerIdPassiveLatencyMsOffset: number;

                    /** CloudConversationDebuggingInfo bargeinEventTriggered. */
                    public bargeinEventTriggered: boolean;

                    /** CloudConversationDebuggingInfo speechSingleUtterance. */
                    public speechSingleUtterance: boolean;

                    /** CloudConversationDebuggingInfo dtmfPartialResultsTimes. */
                    public dtmfPartialResultsTimes: google.protobuf.IDuration[];

                    /** CloudConversationDebuggingInfo dtmfFinalResultsTimes. */
                    public dtmfFinalResultsTimes: google.protobuf.IDuration[];

                    /** CloudConversationDebuggingInfo singleUtteranceEndTimeOffset. */
                    public singleUtteranceEndTimeOffset?: (google.protobuf.IDuration|null);

                    /** CloudConversationDebuggingInfo noSpeechTimeout. */
                    public noSpeechTimeout?: (google.protobuf.IDuration|null);

                    /** CloudConversationDebuggingInfo endpointingTimeout. */
                    public endpointingTimeout?: (google.protobuf.IDuration|null);

                    /** CloudConversationDebuggingInfo isInputText. */
                    public isInputText: boolean;

                    /** CloudConversationDebuggingInfo clientHalfCloseTimeOffset. */
                    public clientHalfCloseTimeOffset?: (google.protobuf.IDuration|null);

                    /** CloudConversationDebuggingInfo clientHalfCloseStreamingTimeOffset. */
                    public clientHalfCloseStreamingTimeOffset?: (google.protobuf.IDuration|null);

                    /**
                     * Creates a new CloudConversationDebuggingInfo instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CloudConversationDebuggingInfo instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.ICloudConversationDebuggingInfo): google.cloud.dialogflow.v2beta1.CloudConversationDebuggingInfo;

                    /**
                     * Encodes the specified CloudConversationDebuggingInfo message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.CloudConversationDebuggingInfo.verify|verify} messages.
                     * @param message CloudConversationDebuggingInfo message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.ICloudConversationDebuggingInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CloudConversationDebuggingInfo message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.CloudConversationDebuggingInfo.verify|verify} messages.
                     * @param message CloudConversationDebuggingInfo message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.ICloudConversationDebuggingInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CloudConversationDebuggingInfo message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CloudConversationDebuggingInfo
                     * @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.cloud.dialogflow.v2beta1.CloudConversationDebuggingInfo;

                    /**
                     * Decodes a CloudConversationDebuggingInfo message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CloudConversationDebuggingInfo
                     * @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.cloud.dialogflow.v2beta1.CloudConversationDebuggingInfo;

                    /**
                     * Verifies a CloudConversationDebuggingInfo 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 CloudConversationDebuggingInfo message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CloudConversationDebuggingInfo
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.CloudConversationDebuggingInfo;

                    /**
                     * Creates a plain object from a CloudConversationDebuggingInfo message. Also converts values to other types if specified.
                     * @param message CloudConversationDebuggingInfo
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.CloudConversationDebuggingInfo, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CloudConversationDebuggingInfo to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CloudConversationDebuggingInfo
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a StreamingDetectIntentResponse. */
                interface IStreamingDetectIntentResponse {

                    /** StreamingDetectIntentResponse responseId */
                    responseId?: (string|null);

                    /** StreamingDetectIntentResponse recognitionResult */
                    recognitionResult?: (google.cloud.dialogflow.v2beta1.IStreamingRecognitionResult|null);

                    /** StreamingDetectIntentResponse queryResult */
                    queryResult?: (google.cloud.dialogflow.v2beta1.IQueryResult|null);

                    /** StreamingDetectIntentResponse alternativeQueryResults */
                    alternativeQueryResults?: (google.cloud.dialogflow.v2beta1.IQueryResult[]|null);

                    /** StreamingDetectIntentResponse webhookStatus */
                    webhookStatus?: (google.rpc.IStatus|null);

                    /** StreamingDetectIntentResponse outputAudio */
                    outputAudio?: (Uint8Array|Buffer|string|null);

                    /** StreamingDetectIntentResponse outputAudioConfig */
                    outputAudioConfig?: (google.cloud.dialogflow.v2beta1.IOutputAudioConfig|null);

                    /** StreamingDetectIntentResponse debuggingInfo */
                    debuggingInfo?: (google.cloud.dialogflow.v2beta1.ICloudConversationDebuggingInfo|null);
                }

                /** Represents a StreamingDetectIntentResponse. */
                class StreamingDetectIntentResponse implements IStreamingDetectIntentResponse {

                    /**
                     * Constructs a new StreamingDetectIntentResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IStreamingDetectIntentResponse);

                    /** StreamingDetectIntentResponse responseId. */
                    public responseId: string;

                    /** StreamingDetectIntentResponse recognitionResult. */
                    public recognitionResult?: (google.cloud.dialogflow.v2beta1.IStreamingRecognitionResult|null);

                    /** StreamingDetectIntentResponse queryResult. */
                    public queryResult?: (google.cloud.dialogflow.v2beta1.IQueryResult|null);

                    /** StreamingDetectIntentResponse alternativeQueryResults. */
                    public alternativeQueryResults: google.cloud.dialogflow.v2beta1.IQueryResult[];

                    /** StreamingDetectIntentResponse webhookStatus. */
                    public webhookStatus?: (google.rpc.IStatus|null);

                    /** StreamingDetectIntentResponse outputAudio. */
                    public outputAudio: (Uint8Array|Buffer|string);

                    /** StreamingDetectIntentResponse outputAudioConfig. */
                    public outputAudioConfig?: (google.cloud.dialogflow.v2beta1.IOutputAudioConfig|null);

                    /** StreamingDetectIntentResponse debuggingInfo. */
                    public debuggingInfo?: (google.cloud.dialogflow.v2beta1.ICloudConversationDebuggingInfo|null);

                    /**
                     * Creates a new StreamingDetectIntentResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns StreamingDetectIntentResponse instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IStreamingDetectIntentResponse): google.cloud.dialogflow.v2beta1.StreamingDetectIntentResponse;

                    /**
                     * Encodes the specified StreamingDetectIntentResponse message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.StreamingDetectIntentResponse.verify|verify} messages.
                     * @param message StreamingDetectIntentResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IStreamingDetectIntentResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified StreamingDetectIntentResponse message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.StreamingDetectIntentResponse.verify|verify} messages.
                     * @param message StreamingDetectIntentResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IStreamingDetectIntentResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a StreamingDetectIntentResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns StreamingDetectIntentResponse
                     * @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.cloud.dialogflow.v2beta1.StreamingDetectIntentResponse;

                    /**
                     * Decodes a StreamingDetectIntentResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns StreamingDetectIntentResponse
                     * @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.cloud.dialogflow.v2beta1.StreamingDetectIntentResponse;

                    /**
                     * Verifies a StreamingDetectIntentResponse 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 StreamingDetectIntentResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns StreamingDetectIntentResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.StreamingDetectIntentResponse;

                    /**
                     * Creates a plain object from a StreamingDetectIntentResponse message. Also converts values to other types if specified.
                     * @param message StreamingDetectIntentResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.StreamingDetectIntentResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this StreamingDetectIntentResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for StreamingDetectIntentResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a StreamingRecognitionResult. */
                interface IStreamingRecognitionResult {

                    /** StreamingRecognitionResult messageType */
                    messageType?: (google.cloud.dialogflow.v2beta1.StreamingRecognitionResult.MessageType|keyof typeof google.cloud.dialogflow.v2beta1.StreamingRecognitionResult.MessageType|null);

                    /** StreamingRecognitionResult transcript */
                    transcript?: (string|null);

                    /** StreamingRecognitionResult isFinal */
                    isFinal?: (boolean|null);

                    /** StreamingRecognitionResult confidence */
                    confidence?: (number|null);

                    /** StreamingRecognitionResult stability */
                    stability?: (number|null);

                    /** StreamingRecognitionResult speechWordInfo */
                    speechWordInfo?: (google.cloud.dialogflow.v2beta1.ISpeechWordInfo[]|null);

                    /** StreamingRecognitionResult speechEndOffset */
                    speechEndOffset?: (google.protobuf.IDuration|null);

                    /** StreamingRecognitionResult languageCode */
                    languageCode?: (string|null);

                    /** StreamingRecognitionResult dtmfDigits */
                    dtmfDigits?: (google.cloud.dialogflow.v2beta1.ITelephonyDtmfEvents|null);
                }

                /** Represents a StreamingRecognitionResult. */
                class StreamingRecognitionResult implements IStreamingRecognitionResult {

                    /**
                     * Constructs a new StreamingRecognitionResult.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IStreamingRecognitionResult);

                    /** StreamingRecognitionResult messageType. */
                    public messageType: (google.cloud.dialogflow.v2beta1.StreamingRecognitionResult.MessageType|keyof typeof google.cloud.dialogflow.v2beta1.StreamingRecognitionResult.MessageType);

                    /** StreamingRecognitionResult transcript. */
                    public transcript: string;

                    /** StreamingRecognitionResult isFinal. */
                    public isFinal: boolean;

                    /** StreamingRecognitionResult confidence. */
                    public confidence: number;

                    /** StreamingRecognitionResult stability. */
                    public stability: number;

                    /** StreamingRecognitionResult speechWordInfo. */
                    public speechWordInfo: google.cloud.dialogflow.v2beta1.ISpeechWordInfo[];

                    /** StreamingRecognitionResult speechEndOffset. */
                    public speechEndOffset?: (google.protobuf.IDuration|null);

                    /** StreamingRecognitionResult languageCode. */
                    public languageCode: string;

                    /** StreamingRecognitionResult dtmfDigits. */
                    public dtmfDigits?: (google.cloud.dialogflow.v2beta1.ITelephonyDtmfEvents|null);

                    /**
                     * Creates a new StreamingRecognitionResult instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns StreamingRecognitionResult instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IStreamingRecognitionResult): google.cloud.dialogflow.v2beta1.StreamingRecognitionResult;

                    /**
                     * Encodes the specified StreamingRecognitionResult message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.StreamingRecognitionResult.verify|verify} messages.
                     * @param message StreamingRecognitionResult message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IStreamingRecognitionResult, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified StreamingRecognitionResult message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.StreamingRecognitionResult.verify|verify} messages.
                     * @param message StreamingRecognitionResult message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IStreamingRecognitionResult, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a StreamingRecognitionResult message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns StreamingRecognitionResult
                     * @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.cloud.dialogflow.v2beta1.StreamingRecognitionResult;

                    /**
                     * Decodes a StreamingRecognitionResult message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns StreamingRecognitionResult
                     * @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.cloud.dialogflow.v2beta1.StreamingRecognitionResult;

                    /**
                     * Verifies a StreamingRecognitionResult 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 StreamingRecognitionResult message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns StreamingRecognitionResult
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.StreamingRecognitionResult;

                    /**
                     * Creates a plain object from a StreamingRecognitionResult message. Also converts values to other types if specified.
                     * @param message StreamingRecognitionResult
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.StreamingRecognitionResult, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this StreamingRecognitionResult to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for StreamingRecognitionResult
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace StreamingRecognitionResult {

                    /** MessageType enum. */
                    enum MessageType {
                        MESSAGE_TYPE_UNSPECIFIED = 0,
                        TRANSCRIPT = 1,
                        END_OF_SINGLE_UTTERANCE = 2,
                        DTMF_DIGITS = 3,
                        PARTIAL_DTMF_DIGITS = 4
                    }
                }

                /** Properties of a TextInput. */
                interface ITextInput {

                    /** TextInput text */
                    text?: (string|null);

                    /** TextInput languageCode */
                    languageCode?: (string|null);
                }

                /** Represents a TextInput. */
                class TextInput implements ITextInput {

                    /**
                     * Constructs a new TextInput.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.ITextInput);

                    /** TextInput text. */
                    public text: string;

                    /** TextInput languageCode. */
                    public languageCode: string;

                    /**
                     * Creates a new TextInput instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TextInput instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.ITextInput): google.cloud.dialogflow.v2beta1.TextInput;

                    /**
                     * Encodes the specified TextInput message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.TextInput.verify|verify} messages.
                     * @param message TextInput message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.ITextInput, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TextInput message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.TextInput.verify|verify} messages.
                     * @param message TextInput message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.ITextInput, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TextInput message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TextInput
                     * @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.cloud.dialogflow.v2beta1.TextInput;

                    /**
                     * Decodes a TextInput message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TextInput
                     * @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.cloud.dialogflow.v2beta1.TextInput;

                    /**
                     * Verifies a TextInput 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 TextInput message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TextInput
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.TextInput;

                    /**
                     * Creates a plain object from a TextInput message. Also converts values to other types if specified.
                     * @param message TextInput
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.TextInput, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TextInput to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TextInput
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an EventInput. */
                interface IEventInput {

                    /** EventInput name */
                    name?: (string|null);

                    /** EventInput parameters */
                    parameters?: (google.protobuf.IStruct|null);

                    /** EventInput languageCode */
                    languageCode?: (string|null);
                }

                /** Represents an EventInput. */
                class EventInput implements IEventInput {

                    /**
                     * Constructs a new EventInput.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IEventInput);

                    /** EventInput name. */
                    public name: string;

                    /** EventInput parameters. */
                    public parameters?: (google.protobuf.IStruct|null);

                    /** EventInput languageCode. */
                    public languageCode: string;

                    /**
                     * Creates a new EventInput instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns EventInput instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IEventInput): google.cloud.dialogflow.v2beta1.EventInput;

                    /**
                     * Encodes the specified EventInput message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.EventInput.verify|verify} messages.
                     * @param message EventInput message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IEventInput, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified EventInput message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.EventInput.verify|verify} messages.
                     * @param message EventInput message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IEventInput, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an EventInput message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns EventInput
                     * @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.cloud.dialogflow.v2beta1.EventInput;

                    /**
                     * Decodes an EventInput message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns EventInput
                     * @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.cloud.dialogflow.v2beta1.EventInput;

                    /**
                     * Verifies an EventInput 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 EventInput message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns EventInput
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.EventInput;

                    /**
                     * Creates a plain object from an EventInput message. Also converts values to other types if specified.
                     * @param message EventInput
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.EventInput, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this EventInput to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for EventInput
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SentimentAnalysisRequestConfig. */
                interface ISentimentAnalysisRequestConfig {

                    /** SentimentAnalysisRequestConfig analyzeQueryTextSentiment */
                    analyzeQueryTextSentiment?: (boolean|null);
                }

                /** Represents a SentimentAnalysisRequestConfig. */
                class SentimentAnalysisRequestConfig implements ISentimentAnalysisRequestConfig {

                    /**
                     * Constructs a new SentimentAnalysisRequestConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.ISentimentAnalysisRequestConfig);

                    /** SentimentAnalysisRequestConfig analyzeQueryTextSentiment. */
                    public analyzeQueryTextSentiment: boolean;

                    /**
                     * Creates a new SentimentAnalysisRequestConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SentimentAnalysisRequestConfig instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.ISentimentAnalysisRequestConfig): google.cloud.dialogflow.v2beta1.SentimentAnalysisRequestConfig;

                    /**
                     * Encodes the specified SentimentAnalysisRequestConfig message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.SentimentAnalysisRequestConfig.verify|verify} messages.
                     * @param message SentimentAnalysisRequestConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.ISentimentAnalysisRequestConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SentimentAnalysisRequestConfig message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.SentimentAnalysisRequestConfig.verify|verify} messages.
                     * @param message SentimentAnalysisRequestConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.ISentimentAnalysisRequestConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SentimentAnalysisRequestConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SentimentAnalysisRequestConfig
                     * @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.cloud.dialogflow.v2beta1.SentimentAnalysisRequestConfig;

                    /**
                     * Decodes a SentimentAnalysisRequestConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SentimentAnalysisRequestConfig
                     * @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.cloud.dialogflow.v2beta1.SentimentAnalysisRequestConfig;

                    /**
                     * Verifies a SentimentAnalysisRequestConfig 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 SentimentAnalysisRequestConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SentimentAnalysisRequestConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.SentimentAnalysisRequestConfig;

                    /**
                     * Creates a plain object from a SentimentAnalysisRequestConfig message. Also converts values to other types if specified.
                     * @param message SentimentAnalysisRequestConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.SentimentAnalysisRequestConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SentimentAnalysisRequestConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SentimentAnalysisRequestConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SentimentAnalysisResult. */
                interface ISentimentAnalysisResult {

                    /** SentimentAnalysisResult queryTextSentiment */
                    queryTextSentiment?: (google.cloud.dialogflow.v2beta1.ISentiment|null);
                }

                /** Represents a SentimentAnalysisResult. */
                class SentimentAnalysisResult implements ISentimentAnalysisResult {

                    /**
                     * Constructs a new SentimentAnalysisResult.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.ISentimentAnalysisResult);

                    /** SentimentAnalysisResult queryTextSentiment. */
                    public queryTextSentiment?: (google.cloud.dialogflow.v2beta1.ISentiment|null);

                    /**
                     * Creates a new SentimentAnalysisResult instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SentimentAnalysisResult instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.ISentimentAnalysisResult): google.cloud.dialogflow.v2beta1.SentimentAnalysisResult;

                    /**
                     * Encodes the specified SentimentAnalysisResult message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.SentimentAnalysisResult.verify|verify} messages.
                     * @param message SentimentAnalysisResult message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.ISentimentAnalysisResult, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SentimentAnalysisResult message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.SentimentAnalysisResult.verify|verify} messages.
                     * @param message SentimentAnalysisResult message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.ISentimentAnalysisResult, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SentimentAnalysisResult message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SentimentAnalysisResult
                     * @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.cloud.dialogflow.v2beta1.SentimentAnalysisResult;

                    /**
                     * Decodes a SentimentAnalysisResult message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SentimentAnalysisResult
                     * @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.cloud.dialogflow.v2beta1.SentimentAnalysisResult;

                    /**
                     * Verifies a SentimentAnalysisResult 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 SentimentAnalysisResult message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SentimentAnalysisResult
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.SentimentAnalysisResult;

                    /**
                     * Creates a plain object from a SentimentAnalysisResult message. Also converts values to other types if specified.
                     * @param message SentimentAnalysisResult
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.SentimentAnalysisResult, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SentimentAnalysisResult to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SentimentAnalysisResult
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a Sentiment. */
                interface ISentiment {

                    /** Sentiment score */
                    score?: (number|null);

                    /** Sentiment magnitude */
                    magnitude?: (number|null);
                }

                /** Represents a Sentiment. */
                class Sentiment implements ISentiment {

                    /**
                     * Constructs a new Sentiment.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.ISentiment);

                    /** Sentiment score. */
                    public score: number;

                    /** Sentiment magnitude. */
                    public magnitude: number;

                    /**
                     * Creates a new Sentiment instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Sentiment instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.ISentiment): google.cloud.dialogflow.v2beta1.Sentiment;

                    /**
                     * Encodes the specified Sentiment message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Sentiment.verify|verify} messages.
                     * @param message Sentiment message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.ISentiment, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Sentiment message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Sentiment.verify|verify} messages.
                     * @param message Sentiment message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.ISentiment, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a Sentiment message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Sentiment
                     * @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.cloud.dialogflow.v2beta1.Sentiment;

                    /**
                     * Decodes a Sentiment message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Sentiment
                     * @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.cloud.dialogflow.v2beta1.Sentiment;

                    /**
                     * Verifies a Sentiment 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 Sentiment message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Sentiment
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.Sentiment;

                    /**
                     * Creates a plain object from a Sentiment message. Also converts values to other types if specified.
                     * @param message Sentiment
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.Sentiment, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Sentiment to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Sentiment
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Represents a Contexts */
                class Contexts extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new Contexts 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 Contexts 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): Contexts;

                    /**
                     * Calls ListContexts.
                     * @param request ListContextsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ListContextsResponse
                     */
                    public listContexts(request: google.cloud.dialogflow.v2beta1.IListContextsRequest, callback: google.cloud.dialogflow.v2beta1.Contexts.ListContextsCallback): void;

                    /**
                     * Calls ListContexts.
                     * @param request ListContextsRequest message or plain object
                     * @returns Promise
                     */
                    public listContexts(request: google.cloud.dialogflow.v2beta1.IListContextsRequest): Promise<google.cloud.dialogflow.v2beta1.ListContextsResponse>;

                    /**
                     * Calls GetContext.
                     * @param request GetContextRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Context
                     */
                    public getContext(request: google.cloud.dialogflow.v2beta1.IGetContextRequest, callback: google.cloud.dialogflow.v2beta1.Contexts.GetContextCallback): void;

                    /**
                     * Calls GetContext.
                     * @param request GetContextRequest message or plain object
                     * @returns Promise
                     */
                    public getContext(request: google.cloud.dialogflow.v2beta1.IGetContextRequest): Promise<google.cloud.dialogflow.v2beta1.Context>;

                    /**
                     * Calls CreateContext.
                     * @param request CreateContextRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Context
                     */
                    public createContext(request: google.cloud.dialogflow.v2beta1.ICreateContextRequest, callback: google.cloud.dialogflow.v2beta1.Contexts.CreateContextCallback): void;

                    /**
                     * Calls CreateContext.
                     * @param request CreateContextRequest message or plain object
                     * @returns Promise
                     */
                    public createContext(request: google.cloud.dialogflow.v2beta1.ICreateContextRequest): Promise<google.cloud.dialogflow.v2beta1.Context>;

                    /**
                     * Calls UpdateContext.
                     * @param request UpdateContextRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Context
                     */
                    public updateContext(request: google.cloud.dialogflow.v2beta1.IUpdateContextRequest, callback: google.cloud.dialogflow.v2beta1.Contexts.UpdateContextCallback): void;

                    /**
                     * Calls UpdateContext.
                     * @param request UpdateContextRequest message or plain object
                     * @returns Promise
                     */
                    public updateContext(request: google.cloud.dialogflow.v2beta1.IUpdateContextRequest): Promise<google.cloud.dialogflow.v2beta1.Context>;

                    /**
                     * Calls DeleteContext.
                     * @param request DeleteContextRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Empty
                     */
                    public deleteContext(request: google.cloud.dialogflow.v2beta1.IDeleteContextRequest, callback: google.cloud.dialogflow.v2beta1.Contexts.DeleteContextCallback): void;

                    /**
                     * Calls DeleteContext.
                     * @param request DeleteContextRequest message or plain object
                     * @returns Promise
                     */
                    public deleteContext(request: google.cloud.dialogflow.v2beta1.IDeleteContextRequest): Promise<google.protobuf.Empty>;

                    /**
                     * Calls DeleteAllContexts.
                     * @param request DeleteAllContextsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Empty
                     */
                    public deleteAllContexts(request: google.cloud.dialogflow.v2beta1.IDeleteAllContextsRequest, callback: google.cloud.dialogflow.v2beta1.Contexts.DeleteAllContextsCallback): void;

                    /**
                     * Calls DeleteAllContexts.
                     * @param request DeleteAllContextsRequest message or plain object
                     * @returns Promise
                     */
                    public deleteAllContexts(request: google.cloud.dialogflow.v2beta1.IDeleteAllContextsRequest): Promise<google.protobuf.Empty>;
                }

                namespace Contexts {

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2beta1.Contexts|listContexts}.
                     * @param error Error, if any
                     * @param [response] ListContextsResponse
                     */
                    type ListContextsCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2beta1.ListContextsResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2beta1.Contexts|getContext}.
                     * @param error Error, if any
                     * @param [response] Context
                     */
                    type GetContextCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2beta1.Context) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2beta1.Contexts|createContext}.
                     * @param error Error, if any
                     * @param [response] Context
                     */
                    type CreateContextCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2beta1.Context) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2beta1.Contexts|updateContext}.
                     * @param error Error, if any
                     * @param [response] Context
                     */
                    type UpdateContextCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2beta1.Context) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2beta1.Contexts|deleteContext}.
                     * @param error Error, if any
                     * @param [response] Empty
                     */
                    type DeleteContextCallback = (error: (Error|null), response?: google.protobuf.Empty) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2beta1.Contexts|deleteAllContexts}.
                     * @param error Error, if any
                     * @param [response] Empty
                     */
                    type DeleteAllContextsCallback = (error: (Error|null), response?: google.protobuf.Empty) => void;
                }

                /** Properties of a Context. */
                interface IContext {

                    /** Context name */
                    name?: (string|null);

                    /** Context lifespanCount */
                    lifespanCount?: (number|null);

                    /** Context parameters */
                    parameters?: (google.protobuf.IStruct|null);
                }

                /** Represents a Context. */
                class Context implements IContext {

                    /**
                     * Constructs a new Context.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IContext);

                    /** Context name. */
                    public name: string;

                    /** Context lifespanCount. */
                    public lifespanCount: number;

                    /** Context parameters. */
                    public parameters?: (google.protobuf.IStruct|null);

                    /**
                     * Creates a new Context instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Context instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IContext): google.cloud.dialogflow.v2beta1.Context;

                    /**
                     * Encodes the specified Context message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Context.verify|verify} messages.
                     * @param message Context message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IContext, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Context message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Context.verify|verify} messages.
                     * @param message Context message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IContext, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a Context message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Context
                     * @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.cloud.dialogflow.v2beta1.Context;

                    /**
                     * Decodes a Context message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Context
                     * @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.cloud.dialogflow.v2beta1.Context;

                    /**
                     * Verifies a Context 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 Context message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Context
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.Context;

                    /**
                     * Creates a plain object from a Context message. Also converts values to other types if specified.
                     * @param message Context
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.Context, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Context to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Context
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListContextsRequest. */
                interface IListContextsRequest {

                    /** ListContextsRequest parent */
                    parent?: (string|null);

                    /** ListContextsRequest pageSize */
                    pageSize?: (number|null);

                    /** ListContextsRequest pageToken */
                    pageToken?: (string|null);
                }

                /** Represents a ListContextsRequest. */
                class ListContextsRequest implements IListContextsRequest {

                    /**
                     * Constructs a new ListContextsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IListContextsRequest);

                    /** ListContextsRequest parent. */
                    public parent: string;

                    /** ListContextsRequest pageSize. */
                    public pageSize: number;

                    /** ListContextsRequest pageToken. */
                    public pageToken: string;

                    /**
                     * Creates a new ListContextsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListContextsRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IListContextsRequest): google.cloud.dialogflow.v2beta1.ListContextsRequest;

                    /**
                     * Encodes the specified ListContextsRequest message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.ListContextsRequest.verify|verify} messages.
                     * @param message ListContextsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IListContextsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListContextsRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.ListContextsRequest.verify|verify} messages.
                     * @param message ListContextsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IListContextsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListContextsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListContextsRequest
                     * @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.cloud.dialogflow.v2beta1.ListContextsRequest;

                    /**
                     * Decodes a ListContextsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListContextsRequest
                     * @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.cloud.dialogflow.v2beta1.ListContextsRequest;

                    /**
                     * Verifies a ListContextsRequest 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 ListContextsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListContextsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.ListContextsRequest;

                    /**
                     * Creates a plain object from a ListContextsRequest message. Also converts values to other types if specified.
                     * @param message ListContextsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.ListContextsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListContextsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListContextsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListContextsResponse. */
                interface IListContextsResponse {

                    /** ListContextsResponse contexts */
                    contexts?: (google.cloud.dialogflow.v2beta1.IContext[]|null);

                    /** ListContextsResponse nextPageToken */
                    nextPageToken?: (string|null);
                }

                /** Represents a ListContextsResponse. */
                class ListContextsResponse implements IListContextsResponse {

                    /**
                     * Constructs a new ListContextsResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IListContextsResponse);

                    /** ListContextsResponse contexts. */
                    public contexts: google.cloud.dialogflow.v2beta1.IContext[];

                    /** ListContextsResponse nextPageToken. */
                    public nextPageToken: string;

                    /**
                     * Creates a new ListContextsResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListContextsResponse instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IListContextsResponse): google.cloud.dialogflow.v2beta1.ListContextsResponse;

                    /**
                     * Encodes the specified ListContextsResponse message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.ListContextsResponse.verify|verify} messages.
                     * @param message ListContextsResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IListContextsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListContextsResponse message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.ListContextsResponse.verify|verify} messages.
                     * @param message ListContextsResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IListContextsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListContextsResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListContextsResponse
                     * @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.cloud.dialogflow.v2beta1.ListContextsResponse;

                    /**
                     * Decodes a ListContextsResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListContextsResponse
                     * @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.cloud.dialogflow.v2beta1.ListContextsResponse;

                    /**
                     * Verifies a ListContextsResponse 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 ListContextsResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListContextsResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.ListContextsResponse;

                    /**
                     * Creates a plain object from a ListContextsResponse message. Also converts values to other types if specified.
                     * @param message ListContextsResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.ListContextsResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListContextsResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListContextsResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetContextRequest. */
                interface IGetContextRequest {

                    /** GetContextRequest name */
                    name?: (string|null);
                }

                /** Represents a GetContextRequest. */
                class GetContextRequest implements IGetContextRequest {

                    /**
                     * Constructs a new GetContextRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IGetContextRequest);

                    /** GetContextRequest name. */
                    public name: string;

                    /**
                     * Creates a new GetContextRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetContextRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IGetContextRequest): google.cloud.dialogflow.v2beta1.GetContextRequest;

                    /**
                     * Encodes the specified GetContextRequest message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.GetContextRequest.verify|verify} messages.
                     * @param message GetContextRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IGetContextRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetContextRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.GetContextRequest.verify|verify} messages.
                     * @param message GetContextRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IGetContextRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetContextRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetContextRequest
                     * @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.cloud.dialogflow.v2beta1.GetContextRequest;

                    /**
                     * Decodes a GetContextRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetContextRequest
                     * @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.cloud.dialogflow.v2beta1.GetContextRequest;

                    /**
                     * Verifies a GetContextRequest 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 GetContextRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetContextRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.GetContextRequest;

                    /**
                     * Creates a plain object from a GetContextRequest message. Also converts values to other types if specified.
                     * @param message GetContextRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.GetContextRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetContextRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetContextRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a CreateContextRequest. */
                interface ICreateContextRequest {

                    /** CreateContextRequest parent */
                    parent?: (string|null);

                    /** CreateContextRequest context */
                    context?: (google.cloud.dialogflow.v2beta1.IContext|null);
                }

                /** Represents a CreateContextRequest. */
                class CreateContextRequest implements ICreateContextRequest {

                    /**
                     * Constructs a new CreateContextRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.ICreateContextRequest);

                    /** CreateContextRequest parent. */
                    public parent: string;

                    /** CreateContextRequest context. */
                    public context?: (google.cloud.dialogflow.v2beta1.IContext|null);

                    /**
                     * Creates a new CreateContextRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CreateContextRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.ICreateContextRequest): google.cloud.dialogflow.v2beta1.CreateContextRequest;

                    /**
                     * Encodes the specified CreateContextRequest message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.CreateContextRequest.verify|verify} messages.
                     * @param message CreateContextRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.ICreateContextRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CreateContextRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.CreateContextRequest.verify|verify} messages.
                     * @param message CreateContextRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.ICreateContextRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CreateContextRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CreateContextRequest
                     * @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.cloud.dialogflow.v2beta1.CreateContextRequest;

                    /**
                     * Decodes a CreateContextRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CreateContextRequest
                     * @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.cloud.dialogflow.v2beta1.CreateContextRequest;

                    /**
                     * Verifies a CreateContextRequest 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 CreateContextRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CreateContextRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.CreateContextRequest;

                    /**
                     * Creates a plain object from a CreateContextRequest message. Also converts values to other types if specified.
                     * @param message CreateContextRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.CreateContextRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CreateContextRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CreateContextRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an UpdateContextRequest. */
                interface IUpdateContextRequest {

                    /** UpdateContextRequest context */
                    context?: (google.cloud.dialogflow.v2beta1.IContext|null);

                    /** UpdateContextRequest updateMask */
                    updateMask?: (google.protobuf.IFieldMask|null);
                }

                /** Represents an UpdateContextRequest. */
                class UpdateContextRequest implements IUpdateContextRequest {

                    /**
                     * Constructs a new UpdateContextRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IUpdateContextRequest);

                    /** UpdateContextRequest context. */
                    public context?: (google.cloud.dialogflow.v2beta1.IContext|null);

                    /** UpdateContextRequest updateMask. */
                    public updateMask?: (google.protobuf.IFieldMask|null);

                    /**
                     * Creates a new UpdateContextRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UpdateContextRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IUpdateContextRequest): google.cloud.dialogflow.v2beta1.UpdateContextRequest;

                    /**
                     * Encodes the specified UpdateContextRequest message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.UpdateContextRequest.verify|verify} messages.
                     * @param message UpdateContextRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IUpdateContextRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified UpdateContextRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.UpdateContextRequest.verify|verify} messages.
                     * @param message UpdateContextRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IUpdateContextRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an UpdateContextRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns UpdateContextRequest
                     * @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.cloud.dialogflow.v2beta1.UpdateContextRequest;

                    /**
                     * Decodes an UpdateContextRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns UpdateContextRequest
                     * @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.cloud.dialogflow.v2beta1.UpdateContextRequest;

                    /**
                     * Verifies an UpdateContextRequest 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 UpdateContextRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UpdateContextRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.UpdateContextRequest;

                    /**
                     * Creates a plain object from an UpdateContextRequest message. Also converts values to other types if specified.
                     * @param message UpdateContextRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.UpdateContextRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this UpdateContextRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for UpdateContextRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteContextRequest. */
                interface IDeleteContextRequest {

                    /** DeleteContextRequest name */
                    name?: (string|null);
                }

                /** Represents a DeleteContextRequest. */
                class DeleteContextRequest implements IDeleteContextRequest {

                    /**
                     * Constructs a new DeleteContextRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IDeleteContextRequest);

                    /** DeleteContextRequest name. */
                    public name: string;

                    /**
                     * Creates a new DeleteContextRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteContextRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IDeleteContextRequest): google.cloud.dialogflow.v2beta1.DeleteContextRequest;

                    /**
                     * Encodes the specified DeleteContextRequest message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.DeleteContextRequest.verify|verify} messages.
                     * @param message DeleteContextRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IDeleteContextRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteContextRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.DeleteContextRequest.verify|verify} messages.
                     * @param message DeleteContextRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IDeleteContextRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteContextRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteContextRequest
                     * @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.cloud.dialogflow.v2beta1.DeleteContextRequest;

                    /**
                     * Decodes a DeleteContextRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteContextRequest
                     * @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.cloud.dialogflow.v2beta1.DeleteContextRequest;

                    /**
                     * Verifies a DeleteContextRequest 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 DeleteContextRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteContextRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.DeleteContextRequest;

                    /**
                     * Creates a plain object from a DeleteContextRequest message. Also converts values to other types if specified.
                     * @param message DeleteContextRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.DeleteContextRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteContextRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteContextRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteAllContextsRequest. */
                interface IDeleteAllContextsRequest {

                    /** DeleteAllContextsRequest parent */
                    parent?: (string|null);
                }

                /** Represents a DeleteAllContextsRequest. */
                class DeleteAllContextsRequest implements IDeleteAllContextsRequest {

                    /**
                     * Constructs a new DeleteAllContextsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IDeleteAllContextsRequest);

                    /** DeleteAllContextsRequest parent. */
                    public parent: string;

                    /**
                     * Creates a new DeleteAllContextsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteAllContextsRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IDeleteAllContextsRequest): google.cloud.dialogflow.v2beta1.DeleteAllContextsRequest;

                    /**
                     * Encodes the specified DeleteAllContextsRequest message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.DeleteAllContextsRequest.verify|verify} messages.
                     * @param message DeleteAllContextsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IDeleteAllContextsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteAllContextsRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.DeleteAllContextsRequest.verify|verify} messages.
                     * @param message DeleteAllContextsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IDeleteAllContextsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteAllContextsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteAllContextsRequest
                     * @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.cloud.dialogflow.v2beta1.DeleteAllContextsRequest;

                    /**
                     * Decodes a DeleteAllContextsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteAllContextsRequest
                     * @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.cloud.dialogflow.v2beta1.DeleteAllContextsRequest;

                    /**
                     * Verifies a DeleteAllContextsRequest 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 DeleteAllContextsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteAllContextsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.DeleteAllContextsRequest;

                    /**
                     * Creates a plain object from a DeleteAllContextsRequest message. Also converts values to other types if specified.
                     * @param message DeleteAllContextsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.DeleteAllContextsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteAllContextsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteAllContextsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Represents an Intents */
                class Intents extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new Intents 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 Intents 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): Intents;

                    /**
                     * Calls ListIntents.
                     * @param request ListIntentsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ListIntentsResponse
                     */
                    public listIntents(request: google.cloud.dialogflow.v2beta1.IListIntentsRequest, callback: google.cloud.dialogflow.v2beta1.Intents.ListIntentsCallback): void;

                    /**
                     * Calls ListIntents.
                     * @param request ListIntentsRequest message or plain object
                     * @returns Promise
                     */
                    public listIntents(request: google.cloud.dialogflow.v2beta1.IListIntentsRequest): Promise<google.cloud.dialogflow.v2beta1.ListIntentsResponse>;

                    /**
                     * Calls GetIntent.
                     * @param request GetIntentRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Intent
                     */
                    public getIntent(request: google.cloud.dialogflow.v2beta1.IGetIntentRequest, callback: google.cloud.dialogflow.v2beta1.Intents.GetIntentCallback): void;

                    /**
                     * Calls GetIntent.
                     * @param request GetIntentRequest message or plain object
                     * @returns Promise
                     */
                    public getIntent(request: google.cloud.dialogflow.v2beta1.IGetIntentRequest): Promise<google.cloud.dialogflow.v2beta1.Intent>;

                    /**
                     * Calls CreateIntent.
                     * @param request CreateIntentRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Intent
                     */
                    public createIntent(request: google.cloud.dialogflow.v2beta1.ICreateIntentRequest, callback: google.cloud.dialogflow.v2beta1.Intents.CreateIntentCallback): void;

                    /**
                     * Calls CreateIntent.
                     * @param request CreateIntentRequest message or plain object
                     * @returns Promise
                     */
                    public createIntent(request: google.cloud.dialogflow.v2beta1.ICreateIntentRequest): Promise<google.cloud.dialogflow.v2beta1.Intent>;

                    /**
                     * Calls UpdateIntent.
                     * @param request UpdateIntentRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Intent
                     */
                    public updateIntent(request: google.cloud.dialogflow.v2beta1.IUpdateIntentRequest, callback: google.cloud.dialogflow.v2beta1.Intents.UpdateIntentCallback): void;

                    /**
                     * Calls UpdateIntent.
                     * @param request UpdateIntentRequest message or plain object
                     * @returns Promise
                     */
                    public updateIntent(request: google.cloud.dialogflow.v2beta1.IUpdateIntentRequest): Promise<google.cloud.dialogflow.v2beta1.Intent>;

                    /**
                     * Calls DeleteIntent.
                     * @param request DeleteIntentRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Empty
                     */
                    public deleteIntent(request: google.cloud.dialogflow.v2beta1.IDeleteIntentRequest, callback: google.cloud.dialogflow.v2beta1.Intents.DeleteIntentCallback): void;

                    /**
                     * Calls DeleteIntent.
                     * @param request DeleteIntentRequest message or plain object
                     * @returns Promise
                     */
                    public deleteIntent(request: google.cloud.dialogflow.v2beta1.IDeleteIntentRequest): Promise<google.protobuf.Empty>;

                    /**
                     * Calls BatchUpdateIntents.
                     * @param request BatchUpdateIntentsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public batchUpdateIntents(request: google.cloud.dialogflow.v2beta1.IBatchUpdateIntentsRequest, callback: google.cloud.dialogflow.v2beta1.Intents.BatchUpdateIntentsCallback): void;

                    /**
                     * Calls BatchUpdateIntents.
                     * @param request BatchUpdateIntentsRequest message or plain object
                     * @returns Promise
                     */
                    public batchUpdateIntents(request: google.cloud.dialogflow.v2beta1.IBatchUpdateIntentsRequest): Promise<google.longrunning.Operation>;

                    /**
                     * Calls BatchDeleteIntents.
                     * @param request BatchDeleteIntentsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public batchDeleteIntents(request: google.cloud.dialogflow.v2beta1.IBatchDeleteIntentsRequest, callback: google.cloud.dialogflow.v2beta1.Intents.BatchDeleteIntentsCallback): void;

                    /**
                     * Calls BatchDeleteIntents.
                     * @param request BatchDeleteIntentsRequest message or plain object
                     * @returns Promise
                     */
                    public batchDeleteIntents(request: google.cloud.dialogflow.v2beta1.IBatchDeleteIntentsRequest): Promise<google.longrunning.Operation>;
                }

                namespace Intents {

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2beta1.Intents|listIntents}.
                     * @param error Error, if any
                     * @param [response] ListIntentsResponse
                     */
                    type ListIntentsCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2beta1.ListIntentsResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2beta1.Intents|getIntent}.
                     * @param error Error, if any
                     * @param [response] Intent
                     */
                    type GetIntentCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2beta1.Intent) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2beta1.Intents|createIntent}.
                     * @param error Error, if any
                     * @param [response] Intent
                     */
                    type CreateIntentCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2beta1.Intent) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2beta1.Intents|updateIntent}.
                     * @param error Error, if any
                     * @param [response] Intent
                     */
                    type UpdateIntentCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2beta1.Intent) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2beta1.Intents|deleteIntent}.
                     * @param error Error, if any
                     * @param [response] Empty
                     */
                    type DeleteIntentCallback = (error: (Error|null), response?: google.protobuf.Empty) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2beta1.Intents|batchUpdateIntents}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type BatchUpdateIntentsCallback = (error: (Error|null), response?: google.longrunning.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2beta1.Intents|batchDeleteIntents}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type BatchDeleteIntentsCallback = (error: (Error|null), response?: google.longrunning.Operation) => void;
                }

                /** Properties of an Intent. */
                interface IIntent {

                    /** Intent name */
                    name?: (string|null);

                    /** Intent displayName */
                    displayName?: (string|null);

                    /** Intent webhookState */
                    webhookState?: (google.cloud.dialogflow.v2beta1.Intent.WebhookState|keyof typeof google.cloud.dialogflow.v2beta1.Intent.WebhookState|null);

                    /** Intent priority */
                    priority?: (number|null);

                    /** Intent isFallback */
                    isFallback?: (boolean|null);

                    /** Intent mlEnabled */
                    mlEnabled?: (boolean|null);

                    /** Intent mlDisabled */
                    mlDisabled?: (boolean|null);

                    /** Intent liveAgentHandoff */
                    liveAgentHandoff?: (boolean|null);

                    /** Intent endInteraction */
                    endInteraction?: (boolean|null);

                    /** Intent inputContextNames */
                    inputContextNames?: (string[]|null);

                    /** Intent events */
                    events?: (string[]|null);

                    /** Intent trainingPhrases */
                    trainingPhrases?: (google.cloud.dialogflow.v2beta1.Intent.ITrainingPhrase[]|null);

                    /** Intent action */
                    action?: (string|null);

                    /** Intent outputContexts */
                    outputContexts?: (google.cloud.dialogflow.v2beta1.IContext[]|null);

                    /** Intent resetContexts */
                    resetContexts?: (boolean|null);

                    /** Intent parameters */
                    parameters?: (google.cloud.dialogflow.v2beta1.Intent.IParameter[]|null);

                    /** Intent messages */
                    messages?: (google.cloud.dialogflow.v2beta1.Intent.IMessage[]|null);

                    /** Intent defaultResponsePlatforms */
                    defaultResponsePlatforms?: (google.cloud.dialogflow.v2beta1.Intent.Message.Platform[]|null);

                    /** Intent rootFollowupIntentName */
                    rootFollowupIntentName?: (string|null);

                    /** Intent parentFollowupIntentName */
                    parentFollowupIntentName?: (string|null);

                    /** Intent followupIntentInfo */
                    followupIntentInfo?: (google.cloud.dialogflow.v2beta1.Intent.IFollowupIntentInfo[]|null);
                }

                /** Represents an Intent. */
                class Intent implements IIntent {

                    /**
                     * Constructs a new Intent.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IIntent);

                    /** Intent name. */
                    public name: string;

                    /** Intent displayName. */
                    public displayName: string;

                    /** Intent webhookState. */
                    public webhookState: (google.cloud.dialogflow.v2beta1.Intent.WebhookState|keyof typeof google.cloud.dialogflow.v2beta1.Intent.WebhookState);

                    /** Intent priority. */
                    public priority: number;

                    /** Intent isFallback. */
                    public isFallback: boolean;

                    /** Intent mlEnabled. */
                    public mlEnabled: boolean;

                    /** Intent mlDisabled. */
                    public mlDisabled: boolean;

                    /** Intent liveAgentHandoff. */
                    public liveAgentHandoff: boolean;

                    /** Intent endInteraction. */
                    public endInteraction: boolean;

                    /** Intent inputContextNames. */
                    public inputContextNames: string[];

                    /** Intent events. */
                    public events: string[];

                    /** Intent trainingPhrases. */
                    public trainingPhrases: google.cloud.dialogflow.v2beta1.Intent.ITrainingPhrase[];

                    /** Intent action. */
                    public action: string;

                    /** Intent outputContexts. */
                    public outputContexts: google.cloud.dialogflow.v2beta1.IContext[];

                    /** Intent resetContexts. */
                    public resetContexts: boolean;

                    /** Intent parameters. */
                    public parameters: google.cloud.dialogflow.v2beta1.Intent.IParameter[];

                    /** Intent messages. */
                    public messages: google.cloud.dialogflow.v2beta1.Intent.IMessage[];

                    /** Intent defaultResponsePlatforms. */
                    public defaultResponsePlatforms: google.cloud.dialogflow.v2beta1.Intent.Message.Platform[];

                    /** Intent rootFollowupIntentName. */
                    public rootFollowupIntentName: string;

                    /** Intent parentFollowupIntentName. */
                    public parentFollowupIntentName: string;

                    /** Intent followupIntentInfo. */
                    public followupIntentInfo: google.cloud.dialogflow.v2beta1.Intent.IFollowupIntentInfo[];

                    /**
                     * Creates a new Intent instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Intent instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IIntent): google.cloud.dialogflow.v2beta1.Intent;

                    /**
                     * Encodes the specified Intent message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Intent.verify|verify} messages.
                     * @param message Intent message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IIntent, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Intent message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Intent.verify|verify} messages.
                     * @param message Intent message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IIntent, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an Intent message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Intent
                     * @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.cloud.dialogflow.v2beta1.Intent;

                    /**
                     * Decodes an Intent message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Intent
                     * @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.cloud.dialogflow.v2beta1.Intent;

                    /**
                     * Verifies an Intent 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 Intent message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Intent
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.Intent;

                    /**
                     * Creates a plain object from an Intent message. Also converts values to other types if specified.
                     * @param message Intent
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.Intent, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Intent to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Intent
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace Intent {

                    /** WebhookState enum. */
                    enum WebhookState {
                        WEBHOOK_STATE_UNSPECIFIED = 0,
                        WEBHOOK_STATE_ENABLED = 1,
                        WEBHOOK_STATE_ENABLED_FOR_SLOT_FILLING = 2
                    }

                    /** Properties of a TrainingPhrase. */
                    interface ITrainingPhrase {

                        /** TrainingPhrase name */
                        name?: (string|null);

                        /** TrainingPhrase type */
                        type?: (google.cloud.dialogflow.v2beta1.Intent.TrainingPhrase.Type|keyof typeof google.cloud.dialogflow.v2beta1.Intent.TrainingPhrase.Type|null);

                        /** TrainingPhrase parts */
                        parts?: (google.cloud.dialogflow.v2beta1.Intent.TrainingPhrase.IPart[]|null);

                        /** TrainingPhrase timesAddedCount */
                        timesAddedCount?: (number|null);
                    }

                    /** Represents a TrainingPhrase. */
                    class TrainingPhrase implements ITrainingPhrase {

                        /**
                         * Constructs a new TrainingPhrase.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2beta1.Intent.ITrainingPhrase);

                        /** TrainingPhrase name. */
                        public name: string;

                        /** TrainingPhrase type. */
                        public type: (google.cloud.dialogflow.v2beta1.Intent.TrainingPhrase.Type|keyof typeof google.cloud.dialogflow.v2beta1.Intent.TrainingPhrase.Type);

                        /** TrainingPhrase parts. */
                        public parts: google.cloud.dialogflow.v2beta1.Intent.TrainingPhrase.IPart[];

                        /** TrainingPhrase timesAddedCount. */
                        public timesAddedCount: number;

                        /**
                         * Creates a new TrainingPhrase instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns TrainingPhrase instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2beta1.Intent.ITrainingPhrase): google.cloud.dialogflow.v2beta1.Intent.TrainingPhrase;

                        /**
                         * Encodes the specified TrainingPhrase message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Intent.TrainingPhrase.verify|verify} messages.
                         * @param message TrainingPhrase message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2beta1.Intent.ITrainingPhrase, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified TrainingPhrase message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Intent.TrainingPhrase.verify|verify} messages.
                         * @param message TrainingPhrase message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.Intent.ITrainingPhrase, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a TrainingPhrase message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns TrainingPhrase
                         * @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.cloud.dialogflow.v2beta1.Intent.TrainingPhrase;

                        /**
                         * Decodes a TrainingPhrase message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns TrainingPhrase
                         * @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.cloud.dialogflow.v2beta1.Intent.TrainingPhrase;

                        /**
                         * Verifies a TrainingPhrase 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 TrainingPhrase message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns TrainingPhrase
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.Intent.TrainingPhrase;

                        /**
                         * Creates a plain object from a TrainingPhrase message. Also converts values to other types if specified.
                         * @param message TrainingPhrase
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.dialogflow.v2beta1.Intent.TrainingPhrase, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this TrainingPhrase to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for TrainingPhrase
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    namespace TrainingPhrase {

                        /** Type enum. */
                        enum Type {
                            TYPE_UNSPECIFIED = 0,
                            EXAMPLE = 1,
                            TEMPLATE = 2
                        }

                        /** Properties of a Part. */
                        interface IPart {

                            /** Part text */
                            text?: (string|null);

                            /** Part entityType */
                            entityType?: (string|null);

                            /** Part alias */
                            alias?: (string|null);

                            /** Part userDefined */
                            userDefined?: (boolean|null);
                        }

                        /** Represents a Part. */
                        class Part implements IPart {

                            /**
                             * Constructs a new Part.
                             * @param [properties] Properties to set
                             */
                            constructor(properties?: google.cloud.dialogflow.v2beta1.Intent.TrainingPhrase.IPart);

                            /** Part text. */
                            public text: string;

                            /** Part entityType. */
                            public entityType: string;

                            /** Part alias. */
                            public alias: string;

                            /** Part userDefined. */
                            public userDefined: boolean;

                            /**
                             * Creates a new Part instance using the specified properties.
                             * @param [properties] Properties to set
                             * @returns Part instance
                             */
                            public static create(properties?: google.cloud.dialogflow.v2beta1.Intent.TrainingPhrase.IPart): google.cloud.dialogflow.v2beta1.Intent.TrainingPhrase.Part;

                            /**
                             * Encodes the specified Part message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Intent.TrainingPhrase.Part.verify|verify} messages.
                             * @param message Part message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encode(message: google.cloud.dialogflow.v2beta1.Intent.TrainingPhrase.IPart, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Encodes the specified Part message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Intent.TrainingPhrase.Part.verify|verify} messages.
                             * @param message Part message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.Intent.TrainingPhrase.IPart, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Decodes a Part message from the specified reader or buffer.
                             * @param reader Reader or buffer to decode from
                             * @param [length] Message length if known beforehand
                             * @returns Part
                             * @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.cloud.dialogflow.v2beta1.Intent.TrainingPhrase.Part;

                            /**
                             * Decodes a Part message from the specified reader or buffer, length delimited.
                             * @param reader Reader or buffer to decode from
                             * @returns Part
                             * @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.cloud.dialogflow.v2beta1.Intent.TrainingPhrase.Part;

                            /**
                             * Verifies a Part 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 Part message from a plain object. Also converts values to their respective internal types.
                             * @param object Plain object
                             * @returns Part
                             */
                            public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.Intent.TrainingPhrase.Part;

                            /**
                             * Creates a plain object from a Part message. Also converts values to other types if specified.
                             * @param message Part
                             * @param [options] Conversion options
                             * @returns Plain object
                             */
                            public static toObject(message: google.cloud.dialogflow.v2beta1.Intent.TrainingPhrase.Part, options?: $protobuf.IConversionOptions): { [k: string]: any };

                            /**
                             * Converts this Part to JSON.
                             * @returns JSON object
                             */
                            public toJSON(): { [k: string]: any };

                            /**
                             * Gets the default type url for Part
                             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                             * @returns The default type url
                             */
                            public static getTypeUrl(typeUrlPrefix?: string): string;
                        }
                    }

                    /** Properties of a Parameter. */
                    interface IParameter {

                        /** Parameter name */
                        name?: (string|null);

                        /** Parameter displayName */
                        displayName?: (string|null);

                        /** Parameter value */
                        value?: (string|null);

                        /** Parameter defaultValue */
                        defaultValue?: (string|null);

                        /** Parameter entityTypeDisplayName */
                        entityTypeDisplayName?: (string|null);

                        /** Parameter mandatory */
                        mandatory?: (boolean|null);

                        /** Parameter prompts */
                        prompts?: (string[]|null);

                        /** Parameter isList */
                        isList?: (boolean|null);
                    }

                    /** Represents a Parameter. */
                    class Parameter implements IParameter {

                        /**
                         * Constructs a new Parameter.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2beta1.Intent.IParameter);

                        /** Parameter name. */
                        public name: string;

                        /** Parameter displayName. */
                        public displayName: string;

                        /** Parameter value. */
                        public value: string;

                        /** Parameter defaultValue. */
                        public defaultValue: string;

                        /** Parameter entityTypeDisplayName. */
                        public entityTypeDisplayName: string;

                        /** Parameter mandatory. */
                        public mandatory: boolean;

                        /** Parameter prompts. */
                        public prompts: string[];

                        /** Parameter isList. */
                        public isList: boolean;

                        /**
                         * Creates a new Parameter instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns Parameter instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2beta1.Intent.IParameter): google.cloud.dialogflow.v2beta1.Intent.Parameter;

                        /**
                         * Encodes the specified Parameter message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Intent.Parameter.verify|verify} messages.
                         * @param message Parameter message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2beta1.Intent.IParameter, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified Parameter message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Intent.Parameter.verify|verify} messages.
                         * @param message Parameter message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.Intent.IParameter, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a Parameter message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns Parameter
                         * @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.cloud.dialogflow.v2beta1.Intent.Parameter;

                        /**
                         * Decodes a Parameter message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns Parameter
                         * @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.cloud.dialogflow.v2beta1.Intent.Parameter;

                        /**
                         * Verifies a Parameter 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 Parameter message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns Parameter
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.Intent.Parameter;

                        /**
                         * Creates a plain object from a Parameter message. Also converts values to other types if specified.
                         * @param message Parameter
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.dialogflow.v2beta1.Intent.Parameter, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this Parameter to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for Parameter
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    /** Properties of a Message. */
                    interface IMessage {

                        /** Message text */
                        text?: (google.cloud.dialogflow.v2beta1.Intent.Message.IText|null);

                        /** Message image */
                        image?: (google.cloud.dialogflow.v2beta1.Intent.Message.IImage|null);

                        /** Message quickReplies */
                        quickReplies?: (google.cloud.dialogflow.v2beta1.Intent.Message.IQuickReplies|null);

                        /** Message card */
                        card?: (google.cloud.dialogflow.v2beta1.Intent.Message.ICard|null);

                        /** Message payload */
                        payload?: (google.protobuf.IStruct|null);

                        /** Message simpleResponses */
                        simpleResponses?: (google.cloud.dialogflow.v2beta1.Intent.Message.ISimpleResponses|null);

                        /** Message basicCard */
                        basicCard?: (google.cloud.dialogflow.v2beta1.Intent.Message.IBasicCard|null);

                        /** Message suggestions */
                        suggestions?: (google.cloud.dialogflow.v2beta1.Intent.Message.ISuggestions|null);

                        /** Message linkOutSuggestion */
                        linkOutSuggestion?: (google.cloud.dialogflow.v2beta1.Intent.Message.ILinkOutSuggestion|null);

                        /** Message listSelect */
                        listSelect?: (google.cloud.dialogflow.v2beta1.Intent.Message.IListSelect|null);

                        /** Message carouselSelect */
                        carouselSelect?: (google.cloud.dialogflow.v2beta1.Intent.Message.ICarouselSelect|null);

                        /** Message telephonyPlayAudio */
                        telephonyPlayAudio?: (google.cloud.dialogflow.v2beta1.Intent.Message.ITelephonyPlayAudio|null);

                        /** Message telephonySynthesizeSpeech */
                        telephonySynthesizeSpeech?: (google.cloud.dialogflow.v2beta1.Intent.Message.ITelephonySynthesizeSpeech|null);

                        /** Message telephonyTransferCall */
                        telephonyTransferCall?: (google.cloud.dialogflow.v2beta1.Intent.Message.ITelephonyTransferCall|null);

                        /** Message rbmText */
                        rbmText?: (google.cloud.dialogflow.v2beta1.Intent.Message.IRbmText|null);

                        /** Message rbmStandaloneRichCard */
                        rbmStandaloneRichCard?: (google.cloud.dialogflow.v2beta1.Intent.Message.IRbmStandaloneCard|null);

                        /** Message rbmCarouselRichCard */
                        rbmCarouselRichCard?: (google.cloud.dialogflow.v2beta1.Intent.Message.IRbmCarouselCard|null);

                        /** Message browseCarouselCard */
                        browseCarouselCard?: (google.cloud.dialogflow.v2beta1.Intent.Message.IBrowseCarouselCard|null);

                        /** Message tableCard */
                        tableCard?: (google.cloud.dialogflow.v2beta1.Intent.Message.ITableCard|null);

                        /** Message mediaContent */
                        mediaContent?: (google.cloud.dialogflow.v2beta1.Intent.Message.IMediaContent|null);

                        /** Message platform */
                        platform?: (google.cloud.dialogflow.v2beta1.Intent.Message.Platform|keyof typeof google.cloud.dialogflow.v2beta1.Intent.Message.Platform|null);
                    }

                    /** Represents a Message. */
                    class Message implements IMessage {

                        /**
                         * Constructs a new Message.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2beta1.Intent.IMessage);

                        /** Message text. */
                        public text?: (google.cloud.dialogflow.v2beta1.Intent.Message.IText|null);

                        /** Message image. */
                        public image?: (google.cloud.dialogflow.v2beta1.Intent.Message.IImage|null);

                        /** Message quickReplies. */
                        public quickReplies?: (google.cloud.dialogflow.v2beta1.Intent.Message.IQuickReplies|null);

                        /** Message card. */
                        public card?: (google.cloud.dialogflow.v2beta1.Intent.Message.ICard|null);

                        /** Message payload. */
                        public payload?: (google.protobuf.IStruct|null);

                        /** Message simpleResponses. */
                        public simpleResponses?: (google.cloud.dialogflow.v2beta1.Intent.Message.ISimpleResponses|null);

                        /** Message basicCard. */
                        public basicCard?: (google.cloud.dialogflow.v2beta1.Intent.Message.IBasicCard|null);

                        /** Message suggestions. */
                        public suggestions?: (google.cloud.dialogflow.v2beta1.Intent.Message.ISuggestions|null);

                        /** Message linkOutSuggestion. */
                        public linkOutSuggestion?: (google.cloud.dialogflow.v2beta1.Intent.Message.ILinkOutSuggestion|null);

                        /** Message listSelect. */
                        public listSelect?: (google.cloud.dialogflow.v2beta1.Intent.Message.IListSelect|null);

                        /** Message carouselSelect. */
                        public carouselSelect?: (google.cloud.dialogflow.v2beta1.Intent.Message.ICarouselSelect|null);

                        /** Message telephonyPlayAudio. */
                        public telephonyPlayAudio?: (google.cloud.dialogflow.v2beta1.Intent.Message.ITelephonyPlayAudio|null);

                        /** Message telephonySynthesizeSpeech. */
                        public telephonySynthesizeSpeech?: (google.cloud.dialogflow.v2beta1.Intent.Message.ITelephonySynthesizeSpeech|null);

                        /** Message telephonyTransferCall. */
                        public telephonyTransferCall?: (google.cloud.dialogflow.v2beta1.Intent.Message.ITelephonyTransferCall|null);

                        /** Message rbmText. */
                        public rbmText?: (google.cloud.dialogflow.v2beta1.Intent.Message.IRbmText|null);

                        /** Message rbmStandaloneRichCard. */
                        public rbmStandaloneRichCard?: (google.cloud.dialogflow.v2beta1.Intent.Message.IRbmStandaloneCard|null);

                        /** Message rbmCarouselRichCard. */
                        public rbmCarouselRichCard?: (google.cloud.dialogflow.v2beta1.Intent.Message.IRbmCarouselCard|null);

                        /** Message browseCarouselCard. */
                        public browseCarouselCard?: (google.cloud.dialogflow.v2beta1.Intent.Message.IBrowseCarouselCard|null);

                        /** Message tableCard. */
                        public tableCard?: (google.cloud.dialogflow.v2beta1.Intent.Message.ITableCard|null);

                        /** Message mediaContent. */
                        public mediaContent?: (google.cloud.dialogflow.v2beta1.Intent.Message.IMediaContent|null);

                        /** Message platform. */
                        public platform: (google.cloud.dialogflow.v2beta1.Intent.Message.Platform|keyof typeof google.cloud.dialogflow.v2beta1.Intent.Message.Platform);

                        /** Message message. */
                        public message?: ("text"|"image"|"quickReplies"|"card"|"payload"|"simpleResponses"|"basicCard"|"suggestions"|"linkOutSuggestion"|"listSelect"|"carouselSelect"|"telephonyPlayAudio"|"telephonySynthesizeSpeech"|"telephonyTransferCall"|"rbmText"|"rbmStandaloneRichCard"|"rbmCarouselRichCard"|"browseCarouselCard"|"tableCard"|"mediaContent");

                        /**
                         * Creates a new Message instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns Message instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2beta1.Intent.IMessage): google.cloud.dialogflow.v2beta1.Intent.Message;

                        /**
                         * Encodes the specified Message message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Intent.Message.verify|verify} messages.
                         * @param message Message message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2beta1.Intent.IMessage, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified Message message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Intent.Message.verify|verify} messages.
                         * @param message Message message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.Intent.IMessage, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a Message message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns Message
                         * @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.cloud.dialogflow.v2beta1.Intent.Message;

                        /**
                         * Decodes a Message message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns Message
                         * @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.cloud.dialogflow.v2beta1.Intent.Message;

                        /**
                         * Verifies a Message 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 Message message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns Message
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.Intent.Message;

                        /**
                         * Creates a plain object from a Message message. Also converts values to other types if specified.
                         * @param message Message
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.dialogflow.v2beta1.Intent.Message, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this Message to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for Message
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    namespace Message {

                        /** Platform enum. */
                        enum Platform {
                            PLATFORM_UNSPECIFIED = 0,
                            FACEBOOK = 1,
                            SLACK = 2,
                            TELEGRAM = 3,
                            KIK = 4,
                            SKYPE = 5,
                            LINE = 6,
                            VIBER = 7,
                            ACTIONS_ON_GOOGLE = 8,
                            TELEPHONY = 10,
                            GOOGLE_HANGOUTS = 11
                        }

                        /** Properties of a Text. */
                        interface IText {

                            /** Text text */
                            text?: (string[]|null);
                        }

                        /** Represents a Text. */
                        class Text implements IText {

                            /**
                             * Constructs a new Text.
                             * @param [properties] Properties to set
                             */
                            constructor(properties?: google.cloud.dialogflow.v2beta1.Intent.Message.IText);

                            /** Text text. */
                            public text: string[];

                            /**
                             * Creates a new Text instance using the specified properties.
                             * @param [properties] Properties to set
                             * @returns Text instance
                             */
                            public static create(properties?: google.cloud.dialogflow.v2beta1.Intent.Message.IText): google.cloud.dialogflow.v2beta1.Intent.Message.Text;

                            /**
                             * Encodes the specified Text message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Intent.Message.Text.verify|verify} messages.
                             * @param message Text message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encode(message: google.cloud.dialogflow.v2beta1.Intent.Message.IText, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Encodes the specified Text message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Intent.Message.Text.verify|verify} messages.
                             * @param message Text message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.Intent.Message.IText, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Decodes a Text message from the specified reader or buffer.
                             * @param reader Reader or buffer to decode from
                             * @param [length] Message length if known beforehand
                             * @returns Text
                             * @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.cloud.dialogflow.v2beta1.Intent.Message.Text;

                            /**
                             * Decodes a Text message from the specified reader or buffer, length delimited.
                             * @param reader Reader or buffer to decode from
                             * @returns Text
                             * @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.cloud.dialogflow.v2beta1.Intent.Message.Text;

                            /**
                             * Verifies a Text 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 Text message from a plain object. Also converts values to their respective internal types.
                             * @param object Plain object
                             * @returns Text
                             */
                            public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.Intent.Message.Text;

                            /**
                             * Creates a plain object from a Text message. Also converts values to other types if specified.
                             * @param message Text
                             * @param [options] Conversion options
                             * @returns Plain object
                             */
                            public static toObject(message: google.cloud.dialogflow.v2beta1.Intent.Message.Text, options?: $protobuf.IConversionOptions): { [k: string]: any };

                            /**
                             * Converts this Text to JSON.
                             * @returns JSON object
                             */
                            public toJSON(): { [k: string]: any };

                            /**
                             * Gets the default type url for Text
                             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                             * @returns The default type url
                             */
                            public static getTypeUrl(typeUrlPrefix?: string): string;
                        }

                        /** Properties of an Image. */
                        interface IImage {

                            /** Image imageUri */
                            imageUri?: (string|null);

                            /** Image accessibilityText */
                            accessibilityText?: (string|null);
                        }

                        /** Represents an Image. */
                        class Image implements IImage {

                            /**
                             * Constructs a new Image.
                             * @param [properties] Properties to set
                             */
                            constructor(properties?: google.cloud.dialogflow.v2beta1.Intent.Message.IImage);

                            /** Image imageUri. */
                            public imageUri: string;

                            /** Image accessibilityText. */
                            public accessibilityText: string;

                            /**
                             * Creates a new Image instance using the specified properties.
                             * @param [properties] Properties to set
                             * @returns Image instance
                             */
                            public static create(properties?: google.cloud.dialogflow.v2beta1.Intent.Message.IImage): google.cloud.dialogflow.v2beta1.Intent.Message.Image;

                            /**
                             * Encodes the specified Image message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Intent.Message.Image.verify|verify} messages.
                             * @param message Image message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encode(message: google.cloud.dialogflow.v2beta1.Intent.Message.IImage, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Encodes the specified Image message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Intent.Message.Image.verify|verify} messages.
                             * @param message Image message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.Intent.Message.IImage, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Decodes an Image message from the specified reader or buffer.
                             * @param reader Reader or buffer to decode from
                             * @param [length] Message length if known beforehand
                             * @returns Image
                             * @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.cloud.dialogflow.v2beta1.Intent.Message.Image;

                            /**
                             * Decodes an Image message from the specified reader or buffer, length delimited.
                             * @param reader Reader or buffer to decode from
                             * @returns Image
                             * @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.cloud.dialogflow.v2beta1.Intent.Message.Image;

                            /**
                             * Verifies an Image 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 Image message from a plain object. Also converts values to their respective internal types.
                             * @param object Plain object
                             * @returns Image
                             */
                            public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.Intent.Message.Image;

                            /**
                             * Creates a plain object from an Image message. Also converts values to other types if specified.
                             * @param message Image
                             * @param [options] Conversion options
                             * @returns Plain object
                             */
                            public static toObject(message: google.cloud.dialogflow.v2beta1.Intent.Message.Image, options?: $protobuf.IConversionOptions): { [k: string]: any };

                            /**
                             * Converts this Image to JSON.
                             * @returns JSON object
                             */
                            public toJSON(): { [k: string]: any };

                            /**
                             * Gets the default type url for Image
                             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                             * @returns The default type url
                             */
                            public static getTypeUrl(typeUrlPrefix?: string): string;
                        }

                        /** Properties of a QuickReplies. */
                        interface IQuickReplies {

                            /** QuickReplies title */
                            title?: (string|null);

                            /** QuickReplies quickReplies */
                            quickReplies?: (string[]|null);
                        }

                        /** Represents a QuickReplies. */
                        class QuickReplies implements IQuickReplies {

                            /**
                             * Constructs a new QuickReplies.
                             * @param [properties] Properties to set
                             */
                            constructor(properties?: google.cloud.dialogflow.v2beta1.Intent.Message.IQuickReplies);

                            /** QuickReplies title. */
                            public title: string;

                            /** QuickReplies quickReplies. */
                            public quickReplies: string[];

                            /**
                             * Creates a new QuickReplies instance using the specified properties.
                             * @param [properties] Properties to set
                             * @returns QuickReplies instance
                             */
                            public static create(properties?: google.cloud.dialogflow.v2beta1.Intent.Message.IQuickReplies): google.cloud.dialogflow.v2beta1.Intent.Message.QuickReplies;

                            /**
                             * Encodes the specified QuickReplies message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Intent.Message.QuickReplies.verify|verify} messages.
                             * @param message QuickReplies message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encode(message: google.cloud.dialogflow.v2beta1.Intent.Message.IQuickReplies, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Encodes the specified QuickReplies message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Intent.Message.QuickReplies.verify|verify} messages.
                             * @param message QuickReplies message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.Intent.Message.IQuickReplies, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Decodes a QuickReplies message from the specified reader or buffer.
                             * @param reader Reader or buffer to decode from
                             * @param [length] Message length if known beforehand
                             * @returns QuickReplies
                             * @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.cloud.dialogflow.v2beta1.Intent.Message.QuickReplies;

                            /**
                             * Decodes a QuickReplies message from the specified reader or buffer, length delimited.
                             * @param reader Reader or buffer to decode from
                             * @returns QuickReplies
                             * @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.cloud.dialogflow.v2beta1.Intent.Message.QuickReplies;

                            /**
                             * Verifies a QuickReplies 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 QuickReplies message from a plain object. Also converts values to their respective internal types.
                             * @param object Plain object
                             * @returns QuickReplies
                             */
                            public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.Intent.Message.QuickReplies;

                            /**
                             * Creates a plain object from a QuickReplies message. Also converts values to other types if specified.
                             * @param message QuickReplies
                             * @param [options] Conversion options
                             * @returns Plain object
                             */
                            public static toObject(message: google.cloud.dialogflow.v2beta1.Intent.Message.QuickReplies, options?: $protobuf.IConversionOptions): { [k: string]: any };

                            /**
                             * Converts this QuickReplies to JSON.
                             * @returns JSON object
                             */
                            public toJSON(): { [k: string]: any };

                            /**
                             * Gets the default type url for QuickReplies
                             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                             * @returns The default type url
                             */
                            public static getTypeUrl(typeUrlPrefix?: string): string;
                        }

                        /** Properties of a Card. */
                        interface ICard {

                            /** Card title */
                            title?: (string|null);

                            /** Card subtitle */
                            subtitle?: (string|null);

                            /** Card imageUri */
                            imageUri?: (string|null);

                            /** Card buttons */
                            buttons?: (google.cloud.dialogflow.v2beta1.Intent.Message.Card.IButton[]|null);
                        }

                        /** Represents a Card. */
                        class Card implements ICard {

                            /**
                             * Constructs a new Card.
                             * @param [properties] Properties to set
                             */
                            constructor(properties?: google.cloud.dialogflow.v2beta1.Intent.Message.ICard);

                            /** Card title. */
                            public title: string;

                            /** Card subtitle. */
                            public subtitle: string;

                            /** Card imageUri. */
                            public imageUri: string;

                            /** Card buttons. */
                            public buttons: google.cloud.dialogflow.v2beta1.Intent.Message.Card.IButton[];

                            /**
                             * Creates a new Card instance using the specified properties.
                             * @param [properties] Properties to set
                             * @returns Card instance
                             */
                            public static create(properties?: google.cloud.dialogflow.v2beta1.Intent.Message.ICard): google.cloud.dialogflow.v2beta1.Intent.Message.Card;

                            /**
                             * Encodes the specified Card message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Intent.Message.Card.verify|verify} messages.
                             * @param message Card message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encode(message: google.cloud.dialogflow.v2beta1.Intent.Message.ICard, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Encodes the specified Card message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Intent.Message.Card.verify|verify} messages.
                             * @param message Card message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.Intent.Message.ICard, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Decodes a Card message from the specified reader or buffer.
                             * @param reader Reader or buffer to decode from
                             * @param [length] Message length if known beforehand
                             * @returns Card
                             * @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.cloud.dialogflow.v2beta1.Intent.Message.Card;

                            /**
                             * Decodes a Card message from the specified reader or buffer, length delimited.
                             * @param reader Reader or buffer to decode from
                             * @returns Card
                             * @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.cloud.dialogflow.v2beta1.Intent.Message.Card;

                            /**
                             * Verifies a Card 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 Card message from a plain object. Also converts values to their respective internal types.
                             * @param object Plain object
                             * @returns Card
                             */
                            public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.Intent.Message.Card;

                            /**
                             * Creates a plain object from a Card message. Also converts values to other types if specified.
                             * @param message Card
                             * @param [options] Conversion options
                             * @returns Plain object
                             */
                            public static toObject(message: google.cloud.dialogflow.v2beta1.Intent.Message.Card, options?: $protobuf.IConversionOptions): { [k: string]: any };

                            /**
                             * Converts this Card to JSON.
                             * @returns JSON object
                             */
                            public toJSON(): { [k: string]: any };

                            /**
                             * Gets the default type url for Card
                             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                             * @returns The default type url
                             */
                            public static getTypeUrl(typeUrlPrefix?: string): string;
                        }

                        namespace Card {

                            /** Properties of a Button. */
                            interface IButton {

                                /** Button text */
                                text?: (string|null);

                                /** Button postback */
                                postback?: (string|null);
                            }

                            /** Represents a Button. */
                            class Button implements IButton {

                                /**
                                 * Constructs a new Button.
                                 * @param [properties] Properties to set
                                 */
                                constructor(properties?: google.cloud.dialogflow.v2beta1.Intent.Message.Card.IButton);

                                /** Button text. */
                                public text: string;

                                /** Button postback. */
                                public postback: string;

                                /**
                                 * Creates a new Button instance using the specified properties.
                                 * @param [properties] Properties to set
                                 * @returns Button instance
                                 */
                                public static create(properties?: google.cloud.dialogflow.v2beta1.Intent.Message.Card.IButton): google.cloud.dialogflow.v2beta1.Intent.Message.Card.Button;

                                /**
                                 * Encodes the specified Button message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Intent.Message.Card.Button.verify|verify} messages.
                                 * @param message Button message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encode(message: google.cloud.dialogflow.v2beta1.Intent.Message.Card.IButton, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Encodes the specified Button message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Intent.Message.Card.Button.verify|verify} messages.
                                 * @param message Button message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.Intent.Message.Card.IButton, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Decodes a Button message from the specified reader or buffer.
                                 * @param reader Reader or buffer to decode from
                                 * @param [length] Message length if known beforehand
                                 * @returns Button
                                 * @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.cloud.dialogflow.v2beta1.Intent.Message.Card.Button;

                                /**
                                 * Decodes a Button message from the specified reader or buffer, length delimited.
                                 * @param reader Reader or buffer to decode from
                                 * @returns Button
                                 * @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.cloud.dialogflow.v2beta1.Intent.Message.Card.Button;

                                /**
                                 * Verifies a Button 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 Button message from a plain object. Also converts values to their respective internal types.
                                 * @param object Plain object
                                 * @returns Button
                                 */
                                public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.Intent.Message.Card.Button;

                                /**
                                 * Creates a plain object from a Button message. Also converts values to other types if specified.
                                 * @param message Button
                                 * @param [options] Conversion options
                                 * @returns Plain object
                                 */
                                public static toObject(message: google.cloud.dialogflow.v2beta1.Intent.Message.Card.Button, options?: $protobuf.IConversionOptions): { [k: string]: any };

                                /**
                                 * Converts this Button to JSON.
                                 * @returns JSON object
                                 */
                                public toJSON(): { [k: string]: any };

                                /**
                                 * Gets the default type url for Button
                                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                                 * @returns The default type url
                                 */
                                public static getTypeUrl(typeUrlPrefix?: string): string;
                            }
                        }

                        /** Properties of a SimpleResponse. */
                        interface ISimpleResponse {

                            /** SimpleResponse textToSpeech */
                            textToSpeech?: (string|null);

                            /** SimpleResponse ssml */
                            ssml?: (string|null);

                            /** SimpleResponse displayText */
                            displayText?: (string|null);
                        }

                        /** Represents a SimpleResponse. */
                        class SimpleResponse implements ISimpleResponse {

                            /**
                             * Constructs a new SimpleResponse.
                             * @param [properties] Properties to set
                             */
                            constructor(properties?: google.cloud.dialogflow.v2beta1.Intent.Message.ISimpleResponse);

                            /** SimpleResponse textToSpeech. */
                            public textToSpeech: string;

                            /** SimpleResponse ssml. */
                            public ssml: string;

                            /** SimpleResponse displayText. */
                            public displayText: string;

                            /**
                             * Creates a new SimpleResponse instance using the specified properties.
                             * @param [properties] Properties to set
                             * @returns SimpleResponse instance
                             */
                            public static create(properties?: google.cloud.dialogflow.v2beta1.Intent.Message.ISimpleResponse): google.cloud.dialogflow.v2beta1.Intent.Message.SimpleResponse;

                            /**
                             * Encodes the specified SimpleResponse message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Intent.Message.SimpleResponse.verify|verify} messages.
                             * @param message SimpleResponse message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encode(message: google.cloud.dialogflow.v2beta1.Intent.Message.ISimpleResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Encodes the specified SimpleResponse message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Intent.Message.SimpleResponse.verify|verify} messages.
                             * @param message SimpleResponse message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.Intent.Message.ISimpleResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Decodes a SimpleResponse message from the specified reader or buffer.
                             * @param reader Reader or buffer to decode from
                             * @param [length] Message length if known beforehand
                             * @returns SimpleResponse
                             * @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.cloud.dialogflow.v2beta1.Intent.Message.SimpleResponse;

                            /**
                             * Decodes a SimpleResponse message from the specified reader or buffer, length delimited.
                             * @param reader Reader or buffer to decode from
                             * @returns SimpleResponse
                             * @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.cloud.dialogflow.v2beta1.Intent.Message.SimpleResponse;

                            /**
                             * Verifies a SimpleResponse 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 SimpleResponse message from a plain object. Also converts values to their respective internal types.
                             * @param object Plain object
                             * @returns SimpleResponse
                             */
                            public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.Intent.Message.SimpleResponse;

                            /**
                             * Creates a plain object from a SimpleResponse message. Also converts values to other types if specified.
                             * @param message SimpleResponse
                             * @param [options] Conversion options
                             * @returns Plain object
                             */
                            public static toObject(message: google.cloud.dialogflow.v2beta1.Intent.Message.SimpleResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                            /**
                             * Converts this SimpleResponse to JSON.
                             * @returns JSON object
                             */
                            public toJSON(): { [k: string]: any };

                            /**
                             * Gets the default type url for SimpleResponse
                             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                             * @returns The default type url
                             */
                            public static getTypeUrl(typeUrlPrefix?: string): string;
                        }

                        /** Properties of a SimpleResponses. */
                        interface ISimpleResponses {

                            /** SimpleResponses simpleResponses */
                            simpleResponses?: (google.cloud.dialogflow.v2beta1.Intent.Message.ISimpleResponse[]|null);
                        }

                        /** Represents a SimpleResponses. */
                        class SimpleResponses implements ISimpleResponses {

                            /**
                             * Constructs a new SimpleResponses.
                             * @param [properties] Properties to set
                             */
                            constructor(properties?: google.cloud.dialogflow.v2beta1.Intent.Message.ISimpleResponses);

                            /** SimpleResponses simpleResponses. */
                            public simpleResponses: google.cloud.dialogflow.v2beta1.Intent.Message.ISimpleResponse[];

                            /**
                             * Creates a new SimpleResponses instance using the specified properties.
                             * @param [properties] Properties to set
                             * @returns SimpleResponses instance
                             */
                            public static create(properties?: google.cloud.dialogflow.v2beta1.Intent.Message.ISimpleResponses): google.cloud.dialogflow.v2beta1.Intent.Message.SimpleResponses;

                            /**
                             * Encodes the specified SimpleResponses message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Intent.Message.SimpleResponses.verify|verify} messages.
                             * @param message SimpleResponses message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encode(message: google.cloud.dialogflow.v2beta1.Intent.Message.ISimpleResponses, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Encodes the specified SimpleResponses message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Intent.Message.SimpleResponses.verify|verify} messages.
                             * @param message SimpleResponses message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.Intent.Message.ISimpleResponses, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Decodes a SimpleResponses message from the specified reader or buffer.
                             * @param reader Reader or buffer to decode from
                             * @param [length] Message length if known beforehand
                             * @returns SimpleResponses
                             * @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.cloud.dialogflow.v2beta1.Intent.Message.SimpleResponses;

                            /**
                             * Decodes a SimpleResponses message from the specified reader or buffer, length delimited.
                             * @param reader Reader or buffer to decode from
                             * @returns SimpleResponses
                             * @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.cloud.dialogflow.v2beta1.Intent.Message.SimpleResponses;

                            /**
                             * Verifies a SimpleResponses 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 SimpleResponses message from a plain object. Also converts values to their respective internal types.
                             * @param object Plain object
                             * @returns SimpleResponses
                             */
                            public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.Intent.Message.SimpleResponses;

                            /**
                             * Creates a plain object from a SimpleResponses message. Also converts values to other types if specified.
                             * @param message SimpleResponses
                             * @param [options] Conversion options
                             * @returns Plain object
                             */
                            public static toObject(message: google.cloud.dialogflow.v2beta1.Intent.Message.SimpleResponses, options?: $protobuf.IConversionOptions): { [k: string]: any };

                            /**
                             * Converts this SimpleResponses to JSON.
                             * @returns JSON object
                             */
                            public toJSON(): { [k: string]: any };

                            /**
                             * Gets the default type url for SimpleResponses
                             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                             * @returns The default type url
                             */
                            public static getTypeUrl(typeUrlPrefix?: string): string;
                        }

                        /** Properties of a BasicCard. */
                        interface IBasicCard {

                            /** BasicCard title */
                            title?: (string|null);

                            /** BasicCard subtitle */
                            subtitle?: (string|null);

                            /** BasicCard formattedText */
                            formattedText?: (string|null);

                            /** BasicCard image */
                            image?: (google.cloud.dialogflow.v2beta1.Intent.Message.IImage|null);

                            /** BasicCard buttons */
                            buttons?: (google.cloud.dialogflow.v2beta1.Intent.Message.BasicCard.IButton[]|null);
                        }

                        /** Represents a BasicCard. */
                        class BasicCard implements IBasicCard {

                            /**
                             * Constructs a new BasicCard.
                             * @param [properties] Properties to set
                             */
                            constructor(properties?: google.cloud.dialogflow.v2beta1.Intent.Message.IBasicCard);

                            /** BasicCard title. */
                            public title: string;

                            /** BasicCard subtitle. */
                            public subtitle: string;

                            /** BasicCard formattedText. */
                            public formattedText: string;

                            /** BasicCard image. */
                            public image?: (google.cloud.dialogflow.v2beta1.Intent.Message.IImage|null);

                            /** BasicCard buttons. */
                            public buttons: google.cloud.dialogflow.v2beta1.Intent.Message.BasicCard.IButton[];

                            /**
                             * Creates a new BasicCard instance using the specified properties.
                             * @param [properties] Properties to set
                             * @returns BasicCard instance
                             */
                            public static create(properties?: google.cloud.dialogflow.v2beta1.Intent.Message.IBasicCard): google.cloud.dialogflow.v2beta1.Intent.Message.BasicCard;

                            /**
                             * Encodes the specified BasicCard message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Intent.Message.BasicCard.verify|verify} messages.
                             * @param message BasicCard message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encode(message: google.cloud.dialogflow.v2beta1.Intent.Message.IBasicCard, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Encodes the specified BasicCard message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Intent.Message.BasicCard.verify|verify} messages.
                             * @param message BasicCard message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.Intent.Message.IBasicCard, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Decodes a BasicCard message from the specified reader or buffer.
                             * @param reader Reader or buffer to decode from
                             * @param [length] Message length if known beforehand
                             * @returns BasicCard
                             * @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.cloud.dialogflow.v2beta1.Intent.Message.BasicCard;

                            /**
                             * Decodes a BasicCard message from the specified reader or buffer, length delimited.
                             * @param reader Reader or buffer to decode from
                             * @returns BasicCard
                             * @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.cloud.dialogflow.v2beta1.Intent.Message.BasicCard;

                            /**
                             * Verifies a BasicCard 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 BasicCard message from a plain object. Also converts values to their respective internal types.
                             * @param object Plain object
                             * @returns BasicCard
                             */
                            public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.Intent.Message.BasicCard;

                            /**
                             * Creates a plain object from a BasicCard message. Also converts values to other types if specified.
                             * @param message BasicCard
                             * @param [options] Conversion options
                             * @returns Plain object
                             */
                            public static toObject(message: google.cloud.dialogflow.v2beta1.Intent.Message.BasicCard, options?: $protobuf.IConversionOptions): { [k: string]: any };

                            /**
                             * Converts this BasicCard to JSON.
                             * @returns JSON object
                             */
                            public toJSON(): { [k: string]: any };

                            /**
                             * Gets the default type url for BasicCard
                             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                             * @returns The default type url
                             */
                            public static getTypeUrl(typeUrlPrefix?: string): string;
                        }

                        namespace BasicCard {

                            /** Properties of a Button. */
                            interface IButton {

                                /** Button title */
                                title?: (string|null);

                                /** Button openUriAction */
                                openUriAction?: (google.cloud.dialogflow.v2beta1.Intent.Message.BasicCard.Button.IOpenUriAction|null);
                            }

                            /** Represents a Button. */
                            class Button implements IButton {

                                /**
                                 * Constructs a new Button.
                                 * @param [properties] Properties to set
                                 */
                                constructor(properties?: google.cloud.dialogflow.v2beta1.Intent.Message.BasicCard.IButton);

                                /** Button title. */
                                public title: string;

                                /** Button openUriAction. */
                                public openUriAction?: (google.cloud.dialogflow.v2beta1.Intent.Message.BasicCard.Button.IOpenUriAction|null);

                                /**
                                 * Creates a new Button instance using the specified properties.
                                 * @param [properties] Properties to set
                                 * @returns Button instance
                                 */
                                public static create(properties?: google.cloud.dialogflow.v2beta1.Intent.Message.BasicCard.IButton): google.cloud.dialogflow.v2beta1.Intent.Message.BasicCard.Button;

                                /**
                                 * Encodes the specified Button message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Intent.Message.BasicCard.Button.verify|verify} messages.
                                 * @param message Button message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encode(message: google.cloud.dialogflow.v2beta1.Intent.Message.BasicCard.IButton, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Encodes the specified Button message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Intent.Message.BasicCard.Button.verify|verify} messages.
                                 * @param message Button message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.Intent.Message.BasicCard.IButton, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Decodes a Button message from the specified reader or buffer.
                                 * @param reader Reader or buffer to decode from
                                 * @param [length] Message length if known beforehand
                                 * @returns Button
                                 * @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.cloud.dialogflow.v2beta1.Intent.Message.BasicCard.Button;

                                /**
                                 * Decodes a Button message from the specified reader or buffer, length delimited.
                                 * @param reader Reader or buffer to decode from
                                 * @returns Button
                                 * @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.cloud.dialogflow.v2beta1.Intent.Message.BasicCard.Button;

                                /**
                                 * Verifies a Button 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 Button message from a plain object. Also converts values to their respective internal types.
                                 * @param object Plain object
                                 * @returns Button
                                 */
                                public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.Intent.Message.BasicCard.Button;

                                /**
                                 * Creates a plain object from a Button message. Also converts values to other types if specified.
                                 * @param message Button
                                 * @param [options] Conversion options
                                 * @returns Plain object
                                 */
                                public static toObject(message: google.cloud.dialogflow.v2beta1.Intent.Message.BasicCard.Button, options?: $protobuf.IConversionOptions): { [k: string]: any };

                                /**
                                 * Converts this Button to JSON.
                                 * @returns JSON object
                                 */
                                public toJSON(): { [k: string]: any };

                                /**
                                 * Gets the default type url for Button
                                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                                 * @returns The default type url
                                 */
                                public static getTypeUrl(typeUrlPrefix?: string): string;
                            }

                            namespace Button {

                                /** Properties of an OpenUriAction. */
                                interface IOpenUriAction {

                                    /** OpenUriAction uri */
                                    uri?: (string|null);
                                }

                                /** Represents an OpenUriAction. */
                                class OpenUriAction implements IOpenUriAction {

                                    /**
                                     * Constructs a new OpenUriAction.
                                     * @param [properties] Properties to set
                                     */
                                    constructor(properties?: google.cloud.dialogflow.v2beta1.Intent.Message.BasicCard.Button.IOpenUriAction);

                                    /** OpenUriAction uri. */
                                    public uri: string;

                                    /**
                                     * Creates a new OpenUriAction instance using the specified properties.
                                     * @param [properties] Properties to set
                                     * @returns OpenUriAction instance
                                     */
                                    public static create(properties?: google.cloud.dialogflow.v2beta1.Intent.Message.BasicCard.Button.IOpenUriAction): google.cloud.dialogflow.v2beta1.Intent.Message.BasicCard.Button.OpenUriAction;

                                    /**
                                     * Encodes the specified OpenUriAction message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Intent.Message.BasicCard.Button.OpenUriAction.verify|verify} messages.
                                     * @param message OpenUriAction message or plain object to encode
                                     * @param [writer] Writer to encode to
                                     * @returns Writer
                                     */
                                    public static encode(message: google.cloud.dialogflow.v2beta1.Intent.Message.BasicCard.Button.IOpenUriAction, writer?: $protobuf.Writer): $protobuf.Writer;

                                    /**
                                     * Encodes the specified OpenUriAction message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Intent.Message.BasicCard.Button.OpenUriAction.verify|verify} messages.
                                     * @param message OpenUriAction message or plain object to encode
                                     * @param [writer] Writer to encode to
                                     * @returns Writer
                                     */
                                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.Intent.Message.BasicCard.Button.IOpenUriAction, writer?: $protobuf.Writer): $protobuf.Writer;

                                    /**
                                     * Decodes an OpenUriAction message from the specified reader or buffer.
                                     * @param reader Reader or buffer to decode from
                                     * @param [length] Message length if known beforehand
                                     * @returns OpenUriAction
                                     * @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.cloud.dialogflow.v2beta1.Intent.Message.BasicCard.Button.OpenUriAction;

                                    /**
                                     * Decodes an OpenUriAction message from the specified reader or buffer, length delimited.
                                     * @param reader Reader or buffer to decode from
                                     * @returns OpenUriAction
                                     * @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.cloud.dialogflow.v2beta1.Intent.Message.BasicCard.Button.OpenUriAction;

                                    /**
                                     * Verifies an OpenUriAction 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 OpenUriAction message from a plain object. Also converts values to their respective internal types.
                                     * @param object Plain object
                                     * @returns OpenUriAction
                                     */
                                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.Intent.Message.BasicCard.Button.OpenUriAction;

                                    /**
                                     * Creates a plain object from an OpenUriAction message. Also converts values to other types if specified.
                                     * @param message OpenUriAction
                                     * @param [options] Conversion options
                                     * @returns Plain object
                                     */
                                    public static toObject(message: google.cloud.dialogflow.v2beta1.Intent.Message.BasicCard.Button.OpenUriAction, options?: $protobuf.IConversionOptions): { [k: string]: any };

                                    /**
                                     * Converts this OpenUriAction to JSON.
                                     * @returns JSON object
                                     */
                                    public toJSON(): { [k: string]: any };

                                    /**
                                     * Gets the default type url for OpenUriAction
                                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                                     * @returns The default type url
                                     */
                                    public static getTypeUrl(typeUrlPrefix?: string): string;
                                }
                            }
                        }

                        /** Properties of a Suggestion. */
                        interface ISuggestion {

                            /** Suggestion title */
                            title?: (string|null);
                        }

                        /** Represents a Suggestion. */
                        class Suggestion implements ISuggestion {

                            /**
                             * Constructs a new Suggestion.
                             * @param [properties] Properties to set
                             */
                            constructor(properties?: google.cloud.dialogflow.v2beta1.Intent.Message.ISuggestion);

                            /** Suggestion title. */
                            public title: string;

                            /**
                             * Creates a new Suggestion instance using the specified properties.
                             * @param [properties] Properties to set
                             * @returns Suggestion instance
                             */
                            public static create(properties?: google.cloud.dialogflow.v2beta1.Intent.Message.ISuggestion): google.cloud.dialogflow.v2beta1.Intent.Message.Suggestion;

                            /**
                             * Encodes the specified Suggestion message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Intent.Message.Suggestion.verify|verify} messages.
                             * @param message Suggestion message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encode(message: google.cloud.dialogflow.v2beta1.Intent.Message.ISuggestion, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Encodes the specified Suggestion message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Intent.Message.Suggestion.verify|verify} messages.
                             * @param message Suggestion message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.Intent.Message.ISuggestion, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Decodes a Suggestion message from the specified reader or buffer.
                             * @param reader Reader or buffer to decode from
                             * @param [length] Message length if known beforehand
                             * @returns Suggestion
                             * @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.cloud.dialogflow.v2beta1.Intent.Message.Suggestion;

                            /**
                             * Decodes a Suggestion message from the specified reader or buffer, length delimited.
                             * @param reader Reader or buffer to decode from
                             * @returns Suggestion
                             * @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.cloud.dialogflow.v2beta1.Intent.Message.Suggestion;

                            /**
                             * Verifies a Suggestion 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 Suggestion message from a plain object. Also converts values to their respective internal types.
                             * @param object Plain object
                             * @returns Suggestion
                             */
                            public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.Intent.Message.Suggestion;

                            /**
                             * Creates a plain object from a Suggestion message. Also converts values to other types if specified.
                             * @param message Suggestion
                             * @param [options] Conversion options
                             * @returns Plain object
                             */
                            public static toObject(message: google.cloud.dialogflow.v2beta1.Intent.Message.Suggestion, options?: $protobuf.IConversionOptions): { [k: string]: any };

                            /**
                             * Converts this Suggestion to JSON.
                             * @returns JSON object
                             */
                            public toJSON(): { [k: string]: any };

                            /**
                             * Gets the default type url for Suggestion
                             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                             * @returns The default type url
                             */
                            public static getTypeUrl(typeUrlPrefix?: string): string;
                        }

                        /** Properties of a Suggestions. */
                        interface ISuggestions {

                            /** Suggestions suggestions */
                            suggestions?: (google.cloud.dialogflow.v2beta1.Intent.Message.ISuggestion[]|null);
                        }

                        /** Represents a Suggestions. */
                        class Suggestions implements ISuggestions {

                            /**
                             * Constructs a new Suggestions.
                             * @param [properties] Properties to set
                             */
                            constructor(properties?: google.cloud.dialogflow.v2beta1.Intent.Message.ISuggestions);

                            /** Suggestions suggestions. */
                            public suggestions: google.cloud.dialogflow.v2beta1.Intent.Message.ISuggestion[];

                            /**
                             * Creates a new Suggestions instance using the specified properties.
                             * @param [properties] Properties to set
                             * @returns Suggestions instance
                             */
                            public static create(properties?: google.cloud.dialogflow.v2beta1.Intent.Message.ISuggestions): google.cloud.dialogflow.v2beta1.Intent.Message.Suggestions;

                            /**
                             * Encodes the specified Suggestions message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Intent.Message.Suggestions.verify|verify} messages.
                             * @param message Suggestions message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encode(message: google.cloud.dialogflow.v2beta1.Intent.Message.ISuggestions, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Encodes the specified Suggestions message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Intent.Message.Suggestions.verify|verify} messages.
                             * @param message Suggestions message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.Intent.Message.ISuggestions, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Decodes a Suggestions message from the specified reader or buffer.
                             * @param reader Reader or buffer to decode from
                             * @param [length] Message length if known beforehand
                             * @returns Suggestions
                             * @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.cloud.dialogflow.v2beta1.Intent.Message.Suggestions;

                            /**
                             * Decodes a Suggestions message from the specified reader or buffer, length delimited.
                             * @param reader Reader or buffer to decode from
                             * @returns Suggestions
                             * @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.cloud.dialogflow.v2beta1.Intent.Message.Suggestions;

                            /**
                             * Verifies a Suggestions 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 Suggestions message from a plain object. Also converts values to their respective internal types.
                             * @param object Plain object
                             * @returns Suggestions
                             */
                            public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.Intent.Message.Suggestions;

                            /**
                             * Creates a plain object from a Suggestions message. Also converts values to other types if specified.
                             * @param message Suggestions
                             * @param [options] Conversion options
                             * @returns Plain object
                             */
                            public static toObject(message: google.cloud.dialogflow.v2beta1.Intent.Message.Suggestions, options?: $protobuf.IConversionOptions): { [k: string]: any };

                            /**
                             * Converts this Suggestions to JSON.
                             * @returns JSON object
                             */
                            public toJSON(): { [k: string]: any };

                            /**
                             * Gets the default type url for Suggestions
                             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                             * @returns The default type url
                             */
                            public static getTypeUrl(typeUrlPrefix?: string): string;
                        }

                        /** Properties of a LinkOutSuggestion. */
                        interface ILinkOutSuggestion {

                            /** LinkOutSuggestion destinationName */
                            destinationName?: (string|null);

                            /** LinkOutSuggestion uri */
                            uri?: (string|null);
                        }

                        /** Represents a LinkOutSuggestion. */
                        class LinkOutSuggestion implements ILinkOutSuggestion {

                            /**
                             * Constructs a new LinkOutSuggestion.
                             * @param [properties] Properties to set
                             */
                            constructor(properties?: google.cloud.dialogflow.v2beta1.Intent.Message.ILinkOutSuggestion);

                            /** LinkOutSuggestion destinationName. */
                            public destinationName: string;

                            /** LinkOutSuggestion uri. */
                            public uri: string;

                            /**
                             * Creates a new LinkOutSuggestion instance using the specified properties.
                             * @param [properties] Properties to set
                             * @returns LinkOutSuggestion instance
                             */
                            public static create(properties?: google.cloud.dialogflow.v2beta1.Intent.Message.ILinkOutSuggestion): google.cloud.dialogflow.v2beta1.Intent.Message.LinkOutSuggestion;

                            /**
                             * Encodes the specified LinkOutSuggestion message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Intent.Message.LinkOutSuggestion.verify|verify} messages.
                             * @param message LinkOutSuggestion message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encode(message: google.cloud.dialogflow.v2beta1.Intent.Message.ILinkOutSuggestion, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Encodes the specified LinkOutSuggestion message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Intent.Message.LinkOutSuggestion.verify|verify} messages.
                             * @param message LinkOutSuggestion message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.Intent.Message.ILinkOutSuggestion, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Decodes a LinkOutSuggestion message from the specified reader or buffer.
                             * @param reader Reader or buffer to decode from
                             * @param [length] Message length if known beforehand
                             * @returns LinkOutSuggestion
                             * @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.cloud.dialogflow.v2beta1.Intent.Message.LinkOutSuggestion;

                            /**
                             * Decodes a LinkOutSuggestion message from the specified reader or buffer, length delimited.
                             * @param reader Reader or buffer to decode from
                             * @returns LinkOutSuggestion
                             * @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.cloud.dialogflow.v2beta1.Intent.Message.LinkOutSuggestion;

                            /**
                             * Verifies a LinkOutSuggestion 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 LinkOutSuggestion message from a plain object. Also converts values to their respective internal types.
                             * @param object Plain object
                             * @returns LinkOutSuggestion
                             */
                            public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.Intent.Message.LinkOutSuggestion;

                            /**
                             * Creates a plain object from a LinkOutSuggestion message. Also converts values to other types if specified.
                             * @param message LinkOutSuggestion
                             * @param [options] Conversion options
                             * @returns Plain object
                             */
                            public static toObject(message: google.cloud.dialogflow.v2beta1.Intent.Message.LinkOutSuggestion, options?: $protobuf.IConversionOptions): { [k: string]: any };

                            /**
                             * Converts this LinkOutSuggestion to JSON.
                             * @returns JSON object
                             */
                            public toJSON(): { [k: string]: any };

                            /**
                             * Gets the default type url for LinkOutSuggestion
                             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                             * @returns The default type url
                             */
                            public static getTypeUrl(typeUrlPrefix?: string): string;
                        }

                        /** Properties of a ListSelect. */
                        interface IListSelect {

                            /** ListSelect title */
                            title?: (string|null);

                            /** ListSelect items */
                            items?: (google.cloud.dialogflow.v2beta1.Intent.Message.ListSelect.IItem[]|null);

                            /** ListSelect subtitle */
                            subtitle?: (string|null);
                        }

                        /** Represents a ListSelect. */
                        class ListSelect implements IListSelect {

                            /**
                             * Constructs a new ListSelect.
                             * @param [properties] Properties to set
                             */
                            constructor(properties?: google.cloud.dialogflow.v2beta1.Intent.Message.IListSelect);

                            /** ListSelect title. */
                            public title: string;

                            /** ListSelect items. */
                            public items: google.cloud.dialogflow.v2beta1.Intent.Message.ListSelect.IItem[];

                            /** ListSelect subtitle. */
                            public subtitle: string;

                            /**
                             * Creates a new ListSelect instance using the specified properties.
                             * @param [properties] Properties to set
                             * @returns ListSelect instance
                             */
                            public static create(properties?: google.cloud.dialogflow.v2beta1.Intent.Message.IListSelect): google.cloud.dialogflow.v2beta1.Intent.Message.ListSelect;

                            /**
                             * Encodes the specified ListSelect message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Intent.Message.ListSelect.verify|verify} messages.
                             * @param message ListSelect message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encode(message: google.cloud.dialogflow.v2beta1.Intent.Message.IListSelect, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Encodes the specified ListSelect message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Intent.Message.ListSelect.verify|verify} messages.
                             * @param message ListSelect message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.Intent.Message.IListSelect, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Decodes a ListSelect message from the specified reader or buffer.
                             * @param reader Reader or buffer to decode from
                             * @param [length] Message length if known beforehand
                             * @returns ListSelect
                             * @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.cloud.dialogflow.v2beta1.Intent.Message.ListSelect;

                            /**
                             * Decodes a ListSelect message from the specified reader or buffer, length delimited.
                             * @param reader Reader or buffer to decode from
                             * @returns ListSelect
                             * @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.cloud.dialogflow.v2beta1.Intent.Message.ListSelect;

                            /**
                             * Verifies a ListSelect 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 ListSelect message from a plain object. Also converts values to their respective internal types.
                             * @param object Plain object
                             * @returns ListSelect
                             */
                            public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.Intent.Message.ListSelect;

                            /**
                             * Creates a plain object from a ListSelect message. Also converts values to other types if specified.
                             * @param message ListSelect
                             * @param [options] Conversion options
                             * @returns Plain object
                             */
                            public static toObject(message: google.cloud.dialogflow.v2beta1.Intent.Message.ListSelect, options?: $protobuf.IConversionOptions): { [k: string]: any };

                            /**
                             * Converts this ListSelect to JSON.
                             * @returns JSON object
                             */
                            public toJSON(): { [k: string]: any };

                            /**
                             * Gets the default type url for ListSelect
                             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                             * @returns The default type url
                             */
                            public static getTypeUrl(typeUrlPrefix?: string): string;
                        }

                        namespace ListSelect {

                            /** Properties of an Item. */
                            interface IItem {

                                /** Item info */
                                info?: (google.cloud.dialogflow.v2beta1.Intent.Message.ISelectItemInfo|null);

                                /** Item title */
                                title?: (string|null);

                                /** Item description */
                                description?: (string|null);

                                /** Item image */
                                image?: (google.cloud.dialogflow.v2beta1.Intent.Message.IImage|null);
                            }

                            /** Represents an Item. */
                            class Item implements IItem {

                                /**
                                 * Constructs a new Item.
                                 * @param [properties] Properties to set
                                 */
                                constructor(properties?: google.cloud.dialogflow.v2beta1.Intent.Message.ListSelect.IItem);

                                /** Item info. */
                                public info?: (google.cloud.dialogflow.v2beta1.Intent.Message.ISelectItemInfo|null);

                                /** Item title. */
                                public title: string;

                                /** Item description. */
                                public description: string;

                                /** Item image. */
                                public image?: (google.cloud.dialogflow.v2beta1.Intent.Message.IImage|null);

                                /**
                                 * Creates a new Item instance using the specified properties.
                                 * @param [properties] Properties to set
                                 * @returns Item instance
                                 */
                                public static create(properties?: google.cloud.dialogflow.v2beta1.Intent.Message.ListSelect.IItem): google.cloud.dialogflow.v2beta1.Intent.Message.ListSelect.Item;

                                /**
                                 * Encodes the specified Item message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Intent.Message.ListSelect.Item.verify|verify} messages.
                                 * @param message Item message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encode(message: google.cloud.dialogflow.v2beta1.Intent.Message.ListSelect.IItem, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Encodes the specified Item message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Intent.Message.ListSelect.Item.verify|verify} messages.
                                 * @param message Item message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.Intent.Message.ListSelect.IItem, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Decodes an Item message from the specified reader or buffer.
                                 * @param reader Reader or buffer to decode from
                                 * @param [length] Message length if known beforehand
                                 * @returns Item
                                 * @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.cloud.dialogflow.v2beta1.Intent.Message.ListSelect.Item;

                                /**
                                 * Decodes an Item message from the specified reader or buffer, length delimited.
                                 * @param reader Reader or buffer to decode from
                                 * @returns Item
                                 * @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.cloud.dialogflow.v2beta1.Intent.Message.ListSelect.Item;

                                /**
                                 * Verifies an Item 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 Item message from a plain object. Also converts values to their respective internal types.
                                 * @param object Plain object
                                 * @returns Item
                                 */
                                public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.Intent.Message.ListSelect.Item;

                                /**
                                 * Creates a plain object from an Item message. Also converts values to other types if specified.
                                 * @param message Item
                                 * @param [options] Conversion options
                                 * @returns Plain object
                                 */
                                public static toObject(message: google.cloud.dialogflow.v2beta1.Intent.Message.ListSelect.Item, options?: $protobuf.IConversionOptions): { [k: string]: any };

                                /**
                                 * Converts this Item to JSON.
                                 * @returns JSON object
                                 */
                                public toJSON(): { [k: string]: any };

                                /**
                                 * Gets the default type url for Item
                                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                                 * @returns The default type url
                                 */
                                public static getTypeUrl(typeUrlPrefix?: string): string;
                            }
                        }

                        /** Properties of a CarouselSelect. */
                        interface ICarouselSelect {

                            /** CarouselSelect items */
                            items?: (google.cloud.dialogflow.v2beta1.Intent.Message.CarouselSelect.IItem[]|null);
                        }

                        /** Represents a CarouselSelect. */
                        class CarouselSelect implements ICarouselSelect {

                            /**
                             * Constructs a new CarouselSelect.
                             * @param [properties] Properties to set
                             */
                            constructor(properties?: google.cloud.dialogflow.v2beta1.Intent.Message.ICarouselSelect);

                            /** CarouselSelect items. */
                            public items: google.cloud.dialogflow.v2beta1.Intent.Message.CarouselSelect.IItem[];

                            /**
                             * Creates a new CarouselSelect instance using the specified properties.
                             * @param [properties] Properties to set
                             * @returns CarouselSelect instance
                             */
                            public static create(properties?: google.cloud.dialogflow.v2beta1.Intent.Message.ICarouselSelect): google.cloud.dialogflow.v2beta1.Intent.Message.CarouselSelect;

                            /**
                             * Encodes the specified CarouselSelect message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Intent.Message.CarouselSelect.verify|verify} messages.
                             * @param message CarouselSelect message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encode(message: google.cloud.dialogflow.v2beta1.Intent.Message.ICarouselSelect, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Encodes the specified CarouselSelect message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Intent.Message.CarouselSelect.verify|verify} messages.
                             * @param message CarouselSelect message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.Intent.Message.ICarouselSelect, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Decodes a CarouselSelect message from the specified reader or buffer.
                             * @param reader Reader or buffer to decode from
                             * @param [length] Message length if known beforehand
                             * @returns CarouselSelect
                             * @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.cloud.dialogflow.v2beta1.Intent.Message.CarouselSelect;

                            /**
                             * Decodes a CarouselSelect message from the specified reader or buffer, length delimited.
                             * @param reader Reader or buffer to decode from
                             * @returns CarouselSelect
                             * @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.cloud.dialogflow.v2beta1.Intent.Message.CarouselSelect;

                            /**
                             * Verifies a CarouselSelect 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 CarouselSelect message from a plain object. Also converts values to their respective internal types.
                             * @param object Plain object
                             * @returns CarouselSelect
                             */
                            public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.Intent.Message.CarouselSelect;

                            /**
                             * Creates a plain object from a CarouselSelect message. Also converts values to other types if specified.
                             * @param message CarouselSelect
                             * @param [options] Conversion options
                             * @returns Plain object
                             */
                            public static toObject(message: google.cloud.dialogflow.v2beta1.Intent.Message.CarouselSelect, options?: $protobuf.IConversionOptions): { [k: string]: any };

                            /**
                             * Converts this CarouselSelect to JSON.
                             * @returns JSON object
                             */
                            public toJSON(): { [k: string]: any };

                            /**
                             * Gets the default type url for CarouselSelect
                             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                             * @returns The default type url
                             */
                            public static getTypeUrl(typeUrlPrefix?: string): string;
                        }

                        namespace CarouselSelect {

                            /** Properties of an Item. */
                            interface IItem {

                                /** Item info */
                                info?: (google.cloud.dialogflow.v2beta1.Intent.Message.ISelectItemInfo|null);

                                /** Item title */
                                title?: (string|null);

                                /** Item description */
                                description?: (string|null);

                                /** Item image */
                                image?: (google.cloud.dialogflow.v2beta1.Intent.Message.IImage|null);
                            }

                            /** Represents an Item. */
                            class Item implements IItem {

                                /**
                                 * Constructs a new Item.
                                 * @param [properties] Properties to set
                                 */
                                constructor(properties?: google.cloud.dialogflow.v2beta1.Intent.Message.CarouselSelect.IItem);

                                /** Item info. */
                                public info?: (google.cloud.dialogflow.v2beta1.Intent.Message.ISelectItemInfo|null);

                                /** Item title. */
                                public title: string;

                                /** Item description. */
                                public description: string;

                                /** Item image. */
                                public image?: (google.cloud.dialogflow.v2beta1.Intent.Message.IImage|null);

                                /**
                                 * Creates a new Item instance using the specified properties.
                                 * @param [properties] Properties to set
                                 * @returns Item instance
                                 */
                                public static create(properties?: google.cloud.dialogflow.v2beta1.Intent.Message.CarouselSelect.IItem): google.cloud.dialogflow.v2beta1.Intent.Message.CarouselSelect.Item;

                                /**
                                 * Encodes the specified Item message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Intent.Message.CarouselSelect.Item.verify|verify} messages.
                                 * @param message Item message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encode(message: google.cloud.dialogflow.v2beta1.Intent.Message.CarouselSelect.IItem, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Encodes the specified Item message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Intent.Message.CarouselSelect.Item.verify|verify} messages.
                                 * @param message Item message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.Intent.Message.CarouselSelect.IItem, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Decodes an Item message from the specified reader or buffer.
                                 * @param reader Reader or buffer to decode from
                                 * @param [length] Message length if known beforehand
                                 * @returns Item
                                 * @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.cloud.dialogflow.v2beta1.Intent.Message.CarouselSelect.Item;

                                /**
                                 * Decodes an Item message from the specified reader or buffer, length delimited.
                                 * @param reader Reader or buffer to decode from
                                 * @returns Item
                                 * @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.cloud.dialogflow.v2beta1.Intent.Message.CarouselSelect.Item;

                                /**
                                 * Verifies an Item 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 Item message from a plain object. Also converts values to their respective internal types.
                                 * @param object Plain object
                                 * @returns Item
                                 */
                                public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.Intent.Message.CarouselSelect.Item;

                                /**
                                 * Creates a plain object from an Item message. Also converts values to other types if specified.
                                 * @param message Item
                                 * @param [options] Conversion options
                                 * @returns Plain object
                                 */
                                public static toObject(message: google.cloud.dialogflow.v2beta1.Intent.Message.CarouselSelect.Item, options?: $protobuf.IConversionOptions): { [k: string]: any };

                                /**
                                 * Converts this Item to JSON.
                                 * @returns JSON object
                                 */
                                public toJSON(): { [k: string]: any };

                                /**
                                 * Gets the default type url for Item
                                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                                 * @returns The default type url
                                 */
                                public static getTypeUrl(typeUrlPrefix?: string): string;
                            }
                        }

                        /** Properties of a SelectItemInfo. */
                        interface ISelectItemInfo {

                            /** SelectItemInfo key */
                            key?: (string|null);

                            /** SelectItemInfo synonyms */
                            synonyms?: (string[]|null);
                        }

                        /** Represents a SelectItemInfo. */
                        class SelectItemInfo implements ISelectItemInfo {

                            /**
                             * Constructs a new SelectItemInfo.
                             * @param [properties] Properties to set
                             */
                            constructor(properties?: google.cloud.dialogflow.v2beta1.Intent.Message.ISelectItemInfo);

                            /** SelectItemInfo key. */
                            public key: string;

                            /** SelectItemInfo synonyms. */
                            public synonyms: string[];

                            /**
                             * Creates a new SelectItemInfo instance using the specified properties.
                             * @param [properties] Properties to set
                             * @returns SelectItemInfo instance
                             */
                            public static create(properties?: google.cloud.dialogflow.v2beta1.Intent.Message.ISelectItemInfo): google.cloud.dialogflow.v2beta1.Intent.Message.SelectItemInfo;

                            /**
                             * Encodes the specified SelectItemInfo message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Intent.Message.SelectItemInfo.verify|verify} messages.
                             * @param message SelectItemInfo message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encode(message: google.cloud.dialogflow.v2beta1.Intent.Message.ISelectItemInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Encodes the specified SelectItemInfo message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Intent.Message.SelectItemInfo.verify|verify} messages.
                             * @param message SelectItemInfo message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.Intent.Message.ISelectItemInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Decodes a SelectItemInfo message from the specified reader or buffer.
                             * @param reader Reader or buffer to decode from
                             * @param [length] Message length if known beforehand
                             * @returns SelectItemInfo
                             * @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.cloud.dialogflow.v2beta1.Intent.Message.SelectItemInfo;

                            /**
                             * Decodes a SelectItemInfo message from the specified reader or buffer, length delimited.
                             * @param reader Reader or buffer to decode from
                             * @returns SelectItemInfo
                             * @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.cloud.dialogflow.v2beta1.Intent.Message.SelectItemInfo;

                            /**
                             * Verifies a SelectItemInfo 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 SelectItemInfo message from a plain object. Also converts values to their respective internal types.
                             * @param object Plain object
                             * @returns SelectItemInfo
                             */
                            public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.Intent.Message.SelectItemInfo;

                            /**
                             * Creates a plain object from a SelectItemInfo message. Also converts values to other types if specified.
                             * @param message SelectItemInfo
                             * @param [options] Conversion options
                             * @returns Plain object
                             */
                            public static toObject(message: google.cloud.dialogflow.v2beta1.Intent.Message.SelectItemInfo, options?: $protobuf.IConversionOptions): { [k: string]: any };

                            /**
                             * Converts this SelectItemInfo to JSON.
                             * @returns JSON object
                             */
                            public toJSON(): { [k: string]: any };

                            /**
                             * Gets the default type url for SelectItemInfo
                             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                             * @returns The default type url
                             */
                            public static getTypeUrl(typeUrlPrefix?: string): string;
                        }

                        /** Properties of a TelephonyPlayAudio. */
                        interface ITelephonyPlayAudio {

                            /** TelephonyPlayAudio audioUri */
                            audioUri?: (string|null);
                        }

                        /** Represents a TelephonyPlayAudio. */
                        class TelephonyPlayAudio implements ITelephonyPlayAudio {

                            /**
                             * Constructs a new TelephonyPlayAudio.
                             * @param [properties] Properties to set
                             */
                            constructor(properties?: google.cloud.dialogflow.v2beta1.Intent.Message.ITelephonyPlayAudio);

                            /** TelephonyPlayAudio audioUri. */
                            public audioUri: string;

                            /**
                             * Creates a new TelephonyPlayAudio instance using the specified properties.
                             * @param [properties] Properties to set
                             * @returns TelephonyPlayAudio instance
                             */
                            public static create(properties?: google.cloud.dialogflow.v2beta1.Intent.Message.ITelephonyPlayAudio): google.cloud.dialogflow.v2beta1.Intent.Message.TelephonyPlayAudio;

                            /**
                             * Encodes the specified TelephonyPlayAudio message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Intent.Message.TelephonyPlayAudio.verify|verify} messages.
                             * @param message TelephonyPlayAudio message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encode(message: google.cloud.dialogflow.v2beta1.Intent.Message.ITelephonyPlayAudio, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Encodes the specified TelephonyPlayAudio message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Intent.Message.TelephonyPlayAudio.verify|verify} messages.
                             * @param message TelephonyPlayAudio message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.Intent.Message.ITelephonyPlayAudio, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Decodes a TelephonyPlayAudio message from the specified reader or buffer.
                             * @param reader Reader or buffer to decode from
                             * @param [length] Message length if known beforehand
                             * @returns TelephonyPlayAudio
                             * @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.cloud.dialogflow.v2beta1.Intent.Message.TelephonyPlayAudio;

                            /**
                             * Decodes a TelephonyPlayAudio message from the specified reader or buffer, length delimited.
                             * @param reader Reader or buffer to decode from
                             * @returns TelephonyPlayAudio
                             * @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.cloud.dialogflow.v2beta1.Intent.Message.TelephonyPlayAudio;

                            /**
                             * Verifies a TelephonyPlayAudio 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 TelephonyPlayAudio message from a plain object. Also converts values to their respective internal types.
                             * @param object Plain object
                             * @returns TelephonyPlayAudio
                             */
                            public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.Intent.Message.TelephonyPlayAudio;

                            /**
                             * Creates a plain object from a TelephonyPlayAudio message. Also converts values to other types if specified.
                             * @param message TelephonyPlayAudio
                             * @param [options] Conversion options
                             * @returns Plain object
                             */
                            public static toObject(message: google.cloud.dialogflow.v2beta1.Intent.Message.TelephonyPlayAudio, options?: $protobuf.IConversionOptions): { [k: string]: any };

                            /**
                             * Converts this TelephonyPlayAudio to JSON.
                             * @returns JSON object
                             */
                            public toJSON(): { [k: string]: any };

                            /**
                             * Gets the default type url for TelephonyPlayAudio
                             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                             * @returns The default type url
                             */
                            public static getTypeUrl(typeUrlPrefix?: string): string;
                        }

                        /** Properties of a TelephonySynthesizeSpeech. */
                        interface ITelephonySynthesizeSpeech {

                            /** TelephonySynthesizeSpeech text */
                            text?: (string|null);

                            /** TelephonySynthesizeSpeech ssml */
                            ssml?: (string|null);
                        }

                        /** Represents a TelephonySynthesizeSpeech. */
                        class TelephonySynthesizeSpeech implements ITelephonySynthesizeSpeech {

                            /**
                             * Constructs a new TelephonySynthesizeSpeech.
                             * @param [properties] Properties to set
                             */
                            constructor(properties?: google.cloud.dialogflow.v2beta1.Intent.Message.ITelephonySynthesizeSpeech);

                            /** TelephonySynthesizeSpeech text. */
                            public text?: (string|null);

                            /** TelephonySynthesizeSpeech ssml. */
                            public ssml?: (string|null);

                            /** TelephonySynthesizeSpeech source. */
                            public source?: ("text"|"ssml");

                            /**
                             * Creates a new TelephonySynthesizeSpeech instance using the specified properties.
                             * @param [properties] Properties to set
                             * @returns TelephonySynthesizeSpeech instance
                             */
                            public static create(properties?: google.cloud.dialogflow.v2beta1.Intent.Message.ITelephonySynthesizeSpeech): google.cloud.dialogflow.v2beta1.Intent.Message.TelephonySynthesizeSpeech;

                            /**
                             * Encodes the specified TelephonySynthesizeSpeech message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Intent.Message.TelephonySynthesizeSpeech.verify|verify} messages.
                             * @param message TelephonySynthesizeSpeech message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encode(message: google.cloud.dialogflow.v2beta1.Intent.Message.ITelephonySynthesizeSpeech, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Encodes the specified TelephonySynthesizeSpeech message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Intent.Message.TelephonySynthesizeSpeech.verify|verify} messages.
                             * @param message TelephonySynthesizeSpeech message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.Intent.Message.ITelephonySynthesizeSpeech, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Decodes a TelephonySynthesizeSpeech message from the specified reader or buffer.
                             * @param reader Reader or buffer to decode from
                             * @param [length] Message length if known beforehand
                             * @returns TelephonySynthesizeSpeech
                             * @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.cloud.dialogflow.v2beta1.Intent.Message.TelephonySynthesizeSpeech;

                            /**
                             * Decodes a TelephonySynthesizeSpeech message from the specified reader or buffer, length delimited.
                             * @param reader Reader or buffer to decode from
                             * @returns TelephonySynthesizeSpeech
                             * @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.cloud.dialogflow.v2beta1.Intent.Message.TelephonySynthesizeSpeech;

                            /**
                             * Verifies a TelephonySynthesizeSpeech 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 TelephonySynthesizeSpeech message from a plain object. Also converts values to their respective internal types.
                             * @param object Plain object
                             * @returns TelephonySynthesizeSpeech
                             */
                            public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.Intent.Message.TelephonySynthesizeSpeech;

                            /**
                             * Creates a plain object from a TelephonySynthesizeSpeech message. Also converts values to other types if specified.
                             * @param message TelephonySynthesizeSpeech
                             * @param [options] Conversion options
                             * @returns Plain object
                             */
                            public static toObject(message: google.cloud.dialogflow.v2beta1.Intent.Message.TelephonySynthesizeSpeech, options?: $protobuf.IConversionOptions): { [k: string]: any };

                            /**
                             * Converts this TelephonySynthesizeSpeech to JSON.
                             * @returns JSON object
                             */
                            public toJSON(): { [k: string]: any };

                            /**
                             * Gets the default type url for TelephonySynthesizeSpeech
                             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                             * @returns The default type url
                             */
                            public static getTypeUrl(typeUrlPrefix?: string): string;
                        }

                        /** Properties of a TelephonyTransferCall. */
                        interface ITelephonyTransferCall {

                            /** TelephonyTransferCall phoneNumber */
                            phoneNumber?: (string|null);
                        }

                        /** Represents a TelephonyTransferCall. */
                        class TelephonyTransferCall implements ITelephonyTransferCall {

                            /**
                             * Constructs a new TelephonyTransferCall.
                             * @param [properties] Properties to set
                             */
                            constructor(properties?: google.cloud.dialogflow.v2beta1.Intent.Message.ITelephonyTransferCall);

                            /** TelephonyTransferCall phoneNumber. */
                            public phoneNumber: string;

                            /**
                             * Creates a new TelephonyTransferCall instance using the specified properties.
                             * @param [properties] Properties to set
                             * @returns TelephonyTransferCall instance
                             */
                            public static create(properties?: google.cloud.dialogflow.v2beta1.Intent.Message.ITelephonyTransferCall): google.cloud.dialogflow.v2beta1.Intent.Message.TelephonyTransferCall;

                            /**
                             * Encodes the specified TelephonyTransferCall message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Intent.Message.TelephonyTransferCall.verify|verify} messages.
                             * @param message TelephonyTransferCall message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encode(message: google.cloud.dialogflow.v2beta1.Intent.Message.ITelephonyTransferCall, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Encodes the specified TelephonyTransferCall message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Intent.Message.TelephonyTransferCall.verify|verify} messages.
                             * @param message TelephonyTransferCall message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.Intent.Message.ITelephonyTransferCall, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Decodes a TelephonyTransferCall message from the specified reader or buffer.
                             * @param reader Reader or buffer to decode from
                             * @param [length] Message length if known beforehand
                             * @returns TelephonyTransferCall
                             * @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.cloud.dialogflow.v2beta1.Intent.Message.TelephonyTransferCall;

                            /**
                             * Decodes a TelephonyTransferCall message from the specified reader or buffer, length delimited.
                             * @param reader Reader or buffer to decode from
                             * @returns TelephonyTransferCall
                             * @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.cloud.dialogflow.v2beta1.Intent.Message.TelephonyTransferCall;

                            /**
                             * Verifies a TelephonyTransferCall 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 TelephonyTransferCall message from a plain object. Also converts values to their respective internal types.
                             * @param object Plain object
                             * @returns TelephonyTransferCall
                             */
                            public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.Intent.Message.TelephonyTransferCall;

                            /**
                             * Creates a plain object from a TelephonyTransferCall message. Also converts values to other types if specified.
                             * @param message TelephonyTransferCall
                             * @param [options] Conversion options
                             * @returns Plain object
                             */
                            public static toObject(message: google.cloud.dialogflow.v2beta1.Intent.Message.TelephonyTransferCall, options?: $protobuf.IConversionOptions): { [k: string]: any };

                            /**
                             * Converts this TelephonyTransferCall to JSON.
                             * @returns JSON object
                             */
                            public toJSON(): { [k: string]: any };

                            /**
                             * Gets the default type url for TelephonyTransferCall
                             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                             * @returns The default type url
                             */
                            public static getTypeUrl(typeUrlPrefix?: string): string;
                        }

                        /** Properties of a RbmText. */
                        interface IRbmText {

                            /** RbmText text */
                            text?: (string|null);

                            /** RbmText rbmSuggestion */
                            rbmSuggestion?: (google.cloud.dialogflow.v2beta1.Intent.Message.IRbmSuggestion[]|null);
                        }

                        /** Represents a RbmText. */
                        class RbmText implements IRbmText {

                            /**
                             * Constructs a new RbmText.
                             * @param [properties] Properties to set
                             */
                            constructor(properties?: google.cloud.dialogflow.v2beta1.Intent.Message.IRbmText);

                            /** RbmText text. */
                            public text: string;

                            /** RbmText rbmSuggestion. */
                            public rbmSuggestion: google.cloud.dialogflow.v2beta1.Intent.Message.IRbmSuggestion[];

                            /**
                             * Creates a new RbmText instance using the specified properties.
                             * @param [properties] Properties to set
                             * @returns RbmText instance
                             */
                            public static create(properties?: google.cloud.dialogflow.v2beta1.Intent.Message.IRbmText): google.cloud.dialogflow.v2beta1.Intent.Message.RbmText;

                            /**
                             * Encodes the specified RbmText message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Intent.Message.RbmText.verify|verify} messages.
                             * @param message RbmText message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encode(message: google.cloud.dialogflow.v2beta1.Intent.Message.IRbmText, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Encodes the specified RbmText message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Intent.Message.RbmText.verify|verify} messages.
                             * @param message RbmText message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.Intent.Message.IRbmText, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Decodes a RbmText message from the specified reader or buffer.
                             * @param reader Reader or buffer to decode from
                             * @param [length] Message length if known beforehand
                             * @returns RbmText
                             * @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.cloud.dialogflow.v2beta1.Intent.Message.RbmText;

                            /**
                             * Decodes a RbmText message from the specified reader or buffer, length delimited.
                             * @param reader Reader or buffer to decode from
                             * @returns RbmText
                             * @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.cloud.dialogflow.v2beta1.Intent.Message.RbmText;

                            /**
                             * Verifies a RbmText 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 RbmText message from a plain object. Also converts values to their respective internal types.
                             * @param object Plain object
                             * @returns RbmText
                             */
                            public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.Intent.Message.RbmText;

                            /**
                             * Creates a plain object from a RbmText message. Also converts values to other types if specified.
                             * @param message RbmText
                             * @param [options] Conversion options
                             * @returns Plain object
                             */
                            public static toObject(message: google.cloud.dialogflow.v2beta1.Intent.Message.RbmText, options?: $protobuf.IConversionOptions): { [k: string]: any };

                            /**
                             * Converts this RbmText to JSON.
                             * @returns JSON object
                             */
                            public toJSON(): { [k: string]: any };

                            /**
                             * Gets the default type url for RbmText
                             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                             * @returns The default type url
                             */
                            public static getTypeUrl(typeUrlPrefix?: string): string;
                        }

                        /** Properties of a RbmCarouselCard. */
                        interface IRbmCarouselCard {

                            /** RbmCarouselCard cardWidth */
                            cardWidth?: (google.cloud.dialogflow.v2beta1.Intent.Message.RbmCarouselCard.CardWidth|keyof typeof google.cloud.dialogflow.v2beta1.Intent.Message.RbmCarouselCard.CardWidth|null);

                            /** RbmCarouselCard cardContents */
                            cardContents?: (google.cloud.dialogflow.v2beta1.Intent.Message.IRbmCardContent[]|null);
                        }

                        /** Represents a RbmCarouselCard. */
                        class RbmCarouselCard implements IRbmCarouselCard {

                            /**
                             * Constructs a new RbmCarouselCard.
                             * @param [properties] Properties to set
                             */
                            constructor(properties?: google.cloud.dialogflow.v2beta1.Intent.Message.IRbmCarouselCard);

                            /** RbmCarouselCard cardWidth. */
                            public cardWidth: (google.cloud.dialogflow.v2beta1.Intent.Message.RbmCarouselCard.CardWidth|keyof typeof google.cloud.dialogflow.v2beta1.Intent.Message.RbmCarouselCard.CardWidth);

                            /** RbmCarouselCard cardContents. */
                            public cardContents: google.cloud.dialogflow.v2beta1.Intent.Message.IRbmCardContent[];

                            /**
                             * Creates a new RbmCarouselCard instance using the specified properties.
                             * @param [properties] Properties to set
                             * @returns RbmCarouselCard instance
                             */
                            public static create(properties?: google.cloud.dialogflow.v2beta1.Intent.Message.IRbmCarouselCard): google.cloud.dialogflow.v2beta1.Intent.Message.RbmCarouselCard;

                            /**
                             * Encodes the specified RbmCarouselCard message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Intent.Message.RbmCarouselCard.verify|verify} messages.
                             * @param message RbmCarouselCard message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encode(message: google.cloud.dialogflow.v2beta1.Intent.Message.IRbmCarouselCard, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Encodes the specified RbmCarouselCard message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Intent.Message.RbmCarouselCard.verify|verify} messages.
                             * @param message RbmCarouselCard message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.Intent.Message.IRbmCarouselCard, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Decodes a RbmCarouselCard message from the specified reader or buffer.
                             * @param reader Reader or buffer to decode from
                             * @param [length] Message length if known beforehand
                             * @returns RbmCarouselCard
                             * @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.cloud.dialogflow.v2beta1.Intent.Message.RbmCarouselCard;

                            /**
                             * Decodes a RbmCarouselCard message from the specified reader or buffer, length delimited.
                             * @param reader Reader or buffer to decode from
                             * @returns RbmCarouselCard
                             * @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.cloud.dialogflow.v2beta1.Intent.Message.RbmCarouselCard;

                            /**
                             * Verifies a RbmCarouselCard 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 RbmCarouselCard message from a plain object. Also converts values to their respective internal types.
                             * @param object Plain object
                             * @returns RbmCarouselCard
                             */
                            public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.Intent.Message.RbmCarouselCard;

                            /**
                             * Creates a plain object from a RbmCarouselCard message. Also converts values to other types if specified.
                             * @param message RbmCarouselCard
                             * @param [options] Conversion options
                             * @returns Plain object
                             */
                            public static toObject(message: google.cloud.dialogflow.v2beta1.Intent.Message.RbmCarouselCard, options?: $protobuf.IConversionOptions): { [k: string]: any };

                            /**
                             * Converts this RbmCarouselCard to JSON.
                             * @returns JSON object
                             */
                            public toJSON(): { [k: string]: any };

                            /**
                             * Gets the default type url for RbmCarouselCard
                             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                             * @returns The default type url
                             */
                            public static getTypeUrl(typeUrlPrefix?: string): string;
                        }

                        namespace RbmCarouselCard {

                            /** CardWidth enum. */
                            enum CardWidth {
                                CARD_WIDTH_UNSPECIFIED = 0,
                                SMALL = 1,
                                MEDIUM = 2
                            }
                        }

                        /** Properties of a RbmStandaloneCard. */
                        interface IRbmStandaloneCard {

                            /** RbmStandaloneCard cardOrientation */
                            cardOrientation?: (google.cloud.dialogflow.v2beta1.Intent.Message.RbmStandaloneCard.CardOrientation|keyof typeof google.cloud.dialogflow.v2beta1.Intent.Message.RbmStandaloneCard.CardOrientation|null);

                            /** RbmStandaloneCard thumbnailImageAlignment */
                            thumbnailImageAlignment?: (google.cloud.dialogflow.v2beta1.Intent.Message.RbmStandaloneCard.ThumbnailImageAlignment|keyof typeof google.cloud.dialogflow.v2beta1.Intent.Message.RbmStandaloneCard.ThumbnailImageAlignment|null);

                            /** RbmStandaloneCard cardContent */
                            cardContent?: (google.cloud.dialogflow.v2beta1.Intent.Message.IRbmCardContent|null);
                        }

                        /** Represents a RbmStandaloneCard. */
                        class RbmStandaloneCard implements IRbmStandaloneCard {

                            /**
                             * Constructs a new RbmStandaloneCard.
                             * @param [properties] Properties to set
                             */
                            constructor(properties?: google.cloud.dialogflow.v2beta1.Intent.Message.IRbmStandaloneCard);

                            /** RbmStandaloneCard cardOrientation. */
                            public cardOrientation: (google.cloud.dialogflow.v2beta1.Intent.Message.RbmStandaloneCard.CardOrientation|keyof typeof google.cloud.dialogflow.v2beta1.Intent.Message.RbmStandaloneCard.CardOrientation);

                            /** RbmStandaloneCard thumbnailImageAlignment. */
                            public thumbnailImageAlignment: (google.cloud.dialogflow.v2beta1.Intent.Message.RbmStandaloneCard.ThumbnailImageAlignment|keyof typeof google.cloud.dialogflow.v2beta1.Intent.Message.RbmStandaloneCard.ThumbnailImageAlignment);

                            /** RbmStandaloneCard cardContent. */
                            public cardContent?: (google.cloud.dialogflow.v2beta1.Intent.Message.IRbmCardContent|null);

                            /**
                             * Creates a new RbmStandaloneCard instance using the specified properties.
                             * @param [properties] Properties to set
                             * @returns RbmStandaloneCard instance
                             */
                            public static create(properties?: google.cloud.dialogflow.v2beta1.Intent.Message.IRbmStandaloneCard): google.cloud.dialogflow.v2beta1.Intent.Message.RbmStandaloneCard;

                            /**
                             * Encodes the specified RbmStandaloneCard message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Intent.Message.RbmStandaloneCard.verify|verify} messages.
                             * @param message RbmStandaloneCard message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encode(message: google.cloud.dialogflow.v2beta1.Intent.Message.IRbmStandaloneCard, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Encodes the specified RbmStandaloneCard message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Intent.Message.RbmStandaloneCard.verify|verify} messages.
                             * @param message RbmStandaloneCard message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.Intent.Message.IRbmStandaloneCard, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Decodes a RbmStandaloneCard message from the specified reader or buffer.
                             * @param reader Reader or buffer to decode from
                             * @param [length] Message length if known beforehand
                             * @returns RbmStandaloneCard
                             * @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.cloud.dialogflow.v2beta1.Intent.Message.RbmStandaloneCard;

                            /**
                             * Decodes a RbmStandaloneCard message from the specified reader or buffer, length delimited.
                             * @param reader Reader or buffer to decode from
                             * @returns RbmStandaloneCard
                             * @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.cloud.dialogflow.v2beta1.Intent.Message.RbmStandaloneCard;

                            /**
                             * Verifies a RbmStandaloneCard 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 RbmStandaloneCard message from a plain object. Also converts values to their respective internal types.
                             * @param object Plain object
                             * @returns RbmStandaloneCard
                             */
                            public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.Intent.Message.RbmStandaloneCard;

                            /**
                             * Creates a plain object from a RbmStandaloneCard message. Also converts values to other types if specified.
                             * @param message RbmStandaloneCard
                             * @param [options] Conversion options
                             * @returns Plain object
                             */
                            public static toObject(message: google.cloud.dialogflow.v2beta1.Intent.Message.RbmStandaloneCard, options?: $protobuf.IConversionOptions): { [k: string]: any };

                            /**
                             * Converts this RbmStandaloneCard to JSON.
                             * @returns JSON object
                             */
                            public toJSON(): { [k: string]: any };

                            /**
                             * Gets the default type url for RbmStandaloneCard
                             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                             * @returns The default type url
                             */
                            public static getTypeUrl(typeUrlPrefix?: string): string;
                        }

                        namespace RbmStandaloneCard {

                            /** CardOrientation enum. */
                            enum CardOrientation {
                                CARD_ORIENTATION_UNSPECIFIED = 0,
                                HORIZONTAL = 1,
                                VERTICAL = 2
                            }

                            /** ThumbnailImageAlignment enum. */
                            enum ThumbnailImageAlignment {
                                THUMBNAIL_IMAGE_ALIGNMENT_UNSPECIFIED = 0,
                                LEFT = 1,
                                RIGHT = 2
                            }
                        }

                        /** Properties of a RbmCardContent. */
                        interface IRbmCardContent {

                            /** RbmCardContent title */
                            title?: (string|null);

                            /** RbmCardContent description */
                            description?: (string|null);

                            /** RbmCardContent media */
                            media?: (google.cloud.dialogflow.v2beta1.Intent.Message.RbmCardContent.IRbmMedia|null);

                            /** RbmCardContent suggestions */
                            suggestions?: (google.cloud.dialogflow.v2beta1.Intent.Message.IRbmSuggestion[]|null);
                        }

                        /** Represents a RbmCardContent. */
                        class RbmCardContent implements IRbmCardContent {

                            /**
                             * Constructs a new RbmCardContent.
                             * @param [properties] Properties to set
                             */
                            constructor(properties?: google.cloud.dialogflow.v2beta1.Intent.Message.IRbmCardContent);

                            /** RbmCardContent title. */
                            public title: string;

                            /** RbmCardContent description. */
                            public description: string;

                            /** RbmCardContent media. */
                            public media?: (google.cloud.dialogflow.v2beta1.Intent.Message.RbmCardContent.IRbmMedia|null);

                            /** RbmCardContent suggestions. */
                            public suggestions: google.cloud.dialogflow.v2beta1.Intent.Message.IRbmSuggestion[];

                            /**
                             * Creates a new RbmCardContent instance using the specified properties.
                             * @param [properties] Properties to set
                             * @returns RbmCardContent instance
                             */
                            public static create(properties?: google.cloud.dialogflow.v2beta1.Intent.Message.IRbmCardContent): google.cloud.dialogflow.v2beta1.Intent.Message.RbmCardContent;

                            /**
                             * Encodes the specified RbmCardContent message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Intent.Message.RbmCardContent.verify|verify} messages.
                             * @param message RbmCardContent message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encode(message: google.cloud.dialogflow.v2beta1.Intent.Message.IRbmCardContent, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Encodes the specified RbmCardContent message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Intent.Message.RbmCardContent.verify|verify} messages.
                             * @param message RbmCardContent message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.Intent.Message.IRbmCardContent, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Decodes a RbmCardContent message from the specified reader or buffer.
                             * @param reader Reader or buffer to decode from
                             * @param [length] Message length if known beforehand
                             * @returns RbmCardContent
                             * @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.cloud.dialogflow.v2beta1.Intent.Message.RbmCardContent;

                            /**
                             * Decodes a RbmCardContent message from the specified reader or buffer, length delimited.
                             * @param reader Reader or buffer to decode from
                             * @returns RbmCardContent
                             * @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.cloud.dialogflow.v2beta1.Intent.Message.RbmCardContent;

                            /**
                             * Verifies a RbmCardContent 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 RbmCardContent message from a plain object. Also converts values to their respective internal types.
                             * @param object Plain object
                             * @returns RbmCardContent
                             */
                            public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.Intent.Message.RbmCardContent;

                            /**
                             * Creates a plain object from a RbmCardContent message. Also converts values to other types if specified.
                             * @param message RbmCardContent
                             * @param [options] Conversion options
                             * @returns Plain object
                             */
                            public static toObject(message: google.cloud.dialogflow.v2beta1.Intent.Message.RbmCardContent, options?: $protobuf.IConversionOptions): { [k: string]: any };

                            /**
                             * Converts this RbmCardContent to JSON.
                             * @returns JSON object
                             */
                            public toJSON(): { [k: string]: any };

                            /**
                             * Gets the default type url for RbmCardContent
                             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                             * @returns The default type url
                             */
                            public static getTypeUrl(typeUrlPrefix?: string): string;
                        }

                        namespace RbmCardContent {

                            /** Properties of a RbmMedia. */
                            interface IRbmMedia {

                                /** RbmMedia fileUri */
                                fileUri?: (string|null);

                                /** RbmMedia thumbnailUri */
                                thumbnailUri?: (string|null);

                                /** RbmMedia height */
                                height?: (google.cloud.dialogflow.v2beta1.Intent.Message.RbmCardContent.RbmMedia.Height|keyof typeof google.cloud.dialogflow.v2beta1.Intent.Message.RbmCardContent.RbmMedia.Height|null);
                            }

                            /** Represents a RbmMedia. */
                            class RbmMedia implements IRbmMedia {

                                /**
                                 * Constructs a new RbmMedia.
                                 * @param [properties] Properties to set
                                 */
                                constructor(properties?: google.cloud.dialogflow.v2beta1.Intent.Message.RbmCardContent.IRbmMedia);

                                /** RbmMedia fileUri. */
                                public fileUri: string;

                                /** RbmMedia thumbnailUri. */
                                public thumbnailUri: string;

                                /** RbmMedia height. */
                                public height: (google.cloud.dialogflow.v2beta1.Intent.Message.RbmCardContent.RbmMedia.Height|keyof typeof google.cloud.dialogflow.v2beta1.Intent.Message.RbmCardContent.RbmMedia.Height);

                                /**
                                 * Creates a new RbmMedia instance using the specified properties.
                                 * @param [properties] Properties to set
                                 * @returns RbmMedia instance
                                 */
                                public static create(properties?: google.cloud.dialogflow.v2beta1.Intent.Message.RbmCardContent.IRbmMedia): google.cloud.dialogflow.v2beta1.Intent.Message.RbmCardContent.RbmMedia;

                                /**
                                 * Encodes the specified RbmMedia message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Intent.Message.RbmCardContent.RbmMedia.verify|verify} messages.
                                 * @param message RbmMedia message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encode(message: google.cloud.dialogflow.v2beta1.Intent.Message.RbmCardContent.IRbmMedia, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Encodes the specified RbmMedia message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Intent.Message.RbmCardContent.RbmMedia.verify|verify} messages.
                                 * @param message RbmMedia message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.Intent.Message.RbmCardContent.IRbmMedia, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Decodes a RbmMedia message from the specified reader or buffer.
                                 * @param reader Reader or buffer to decode from
                                 * @param [length] Message length if known beforehand
                                 * @returns RbmMedia
                                 * @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.cloud.dialogflow.v2beta1.Intent.Message.RbmCardContent.RbmMedia;

                                /**
                                 * Decodes a RbmMedia message from the specified reader or buffer, length delimited.
                                 * @param reader Reader or buffer to decode from
                                 * @returns RbmMedia
                                 * @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.cloud.dialogflow.v2beta1.Intent.Message.RbmCardContent.RbmMedia;

                                /**
                                 * Verifies a RbmMedia 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 RbmMedia message from a plain object. Also converts values to their respective internal types.
                                 * @param object Plain object
                                 * @returns RbmMedia
                                 */
                                public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.Intent.Message.RbmCardContent.RbmMedia;

                                /**
                                 * Creates a plain object from a RbmMedia message. Also converts values to other types if specified.
                                 * @param message RbmMedia
                                 * @param [options] Conversion options
                                 * @returns Plain object
                                 */
                                public static toObject(message: google.cloud.dialogflow.v2beta1.Intent.Message.RbmCardContent.RbmMedia, options?: $protobuf.IConversionOptions): { [k: string]: any };

                                /**
                                 * Converts this RbmMedia to JSON.
                                 * @returns JSON object
                                 */
                                public toJSON(): { [k: string]: any };

                                /**
                                 * Gets the default type url for RbmMedia
                                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                                 * @returns The default type url
                                 */
                                public static getTypeUrl(typeUrlPrefix?: string): string;
                            }

                            namespace RbmMedia {

                                /** Height enum. */
                                enum Height {
                                    HEIGHT_UNSPECIFIED = 0,
                                    SHORT = 1,
                                    MEDIUM = 2,
                                    TALL = 3
                                }
                            }
                        }

                        /** Properties of a RbmSuggestion. */
                        interface IRbmSuggestion {

                            /** RbmSuggestion reply */
                            reply?: (google.cloud.dialogflow.v2beta1.Intent.Message.IRbmSuggestedReply|null);

                            /** RbmSuggestion action */
                            action?: (google.cloud.dialogflow.v2beta1.Intent.Message.IRbmSuggestedAction|null);
                        }

                        /** Represents a RbmSuggestion. */
                        class RbmSuggestion implements IRbmSuggestion {

                            /**
                             * Constructs a new RbmSuggestion.
                             * @param [properties] Properties to set
                             */
                            constructor(properties?: google.cloud.dialogflow.v2beta1.Intent.Message.IRbmSuggestion);

                            /** RbmSuggestion reply. */
                            public reply?: (google.cloud.dialogflow.v2beta1.Intent.Message.IRbmSuggestedReply|null);

                            /** RbmSuggestion action. */
                            public action?: (google.cloud.dialogflow.v2beta1.Intent.Message.IRbmSuggestedAction|null);

                            /** RbmSuggestion suggestion. */
                            public suggestion?: ("reply"|"action");

                            /**
                             * Creates a new RbmSuggestion instance using the specified properties.
                             * @param [properties] Properties to set
                             * @returns RbmSuggestion instance
                             */
                            public static create(properties?: google.cloud.dialogflow.v2beta1.Intent.Message.IRbmSuggestion): google.cloud.dialogflow.v2beta1.Intent.Message.RbmSuggestion;

                            /**
                             * Encodes the specified RbmSuggestion message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Intent.Message.RbmSuggestion.verify|verify} messages.
                             * @param message RbmSuggestion message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encode(message: google.cloud.dialogflow.v2beta1.Intent.Message.IRbmSuggestion, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Encodes the specified RbmSuggestion message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Intent.Message.RbmSuggestion.verify|verify} messages.
                             * @param message RbmSuggestion message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.Intent.Message.IRbmSuggestion, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Decodes a RbmSuggestion message from the specified reader or buffer.
                             * @param reader Reader or buffer to decode from
                             * @param [length] Message length if known beforehand
                             * @returns RbmSuggestion
                             * @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.cloud.dialogflow.v2beta1.Intent.Message.RbmSuggestion;

                            /**
                             * Decodes a RbmSuggestion message from the specified reader or buffer, length delimited.
                             * @param reader Reader or buffer to decode from
                             * @returns RbmSuggestion
                             * @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.cloud.dialogflow.v2beta1.Intent.Message.RbmSuggestion;

                            /**
                             * Verifies a RbmSuggestion 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 RbmSuggestion message from a plain object. Also converts values to their respective internal types.
                             * @param object Plain object
                             * @returns RbmSuggestion
                             */
                            public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.Intent.Message.RbmSuggestion;

                            /**
                             * Creates a plain object from a RbmSuggestion message. Also converts values to other types if specified.
                             * @param message RbmSuggestion
                             * @param [options] Conversion options
                             * @returns Plain object
                             */
                            public static toObject(message: google.cloud.dialogflow.v2beta1.Intent.Message.RbmSuggestion, options?: $protobuf.IConversionOptions): { [k: string]: any };

                            /**
                             * Converts this RbmSuggestion to JSON.
                             * @returns JSON object
                             */
                            public toJSON(): { [k: string]: any };

                            /**
                             * Gets the default type url for RbmSuggestion
                             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                             * @returns The default type url
                             */
                            public static getTypeUrl(typeUrlPrefix?: string): string;
                        }

                        /** Properties of a RbmSuggestedReply. */
                        interface IRbmSuggestedReply {

                            /** RbmSuggestedReply text */
                            text?: (string|null);

                            /** RbmSuggestedReply postbackData */
                            postbackData?: (string|null);
                        }

                        /** Represents a RbmSuggestedReply. */
                        class RbmSuggestedReply implements IRbmSuggestedReply {

                            /**
                             * Constructs a new RbmSuggestedReply.
                             * @param [properties] Properties to set
                             */
                            constructor(properties?: google.cloud.dialogflow.v2beta1.Intent.Message.IRbmSuggestedReply);

                            /** RbmSuggestedReply text. */
                            public text: string;

                            /** RbmSuggestedReply postbackData. */
                            public postbackData: string;

                            /**
                             * Creates a new RbmSuggestedReply instance using the specified properties.
                             * @param [properties] Properties to set
                             * @returns RbmSuggestedReply instance
                             */
                            public static create(properties?: google.cloud.dialogflow.v2beta1.Intent.Message.IRbmSuggestedReply): google.cloud.dialogflow.v2beta1.Intent.Message.RbmSuggestedReply;

                            /**
                             * Encodes the specified RbmSuggestedReply message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Intent.Message.RbmSuggestedReply.verify|verify} messages.
                             * @param message RbmSuggestedReply message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encode(message: google.cloud.dialogflow.v2beta1.Intent.Message.IRbmSuggestedReply, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Encodes the specified RbmSuggestedReply message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Intent.Message.RbmSuggestedReply.verify|verify} messages.
                             * @param message RbmSuggestedReply message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.Intent.Message.IRbmSuggestedReply, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Decodes a RbmSuggestedReply message from the specified reader or buffer.
                             * @param reader Reader or buffer to decode from
                             * @param [length] Message length if known beforehand
                             * @returns RbmSuggestedReply
                             * @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.cloud.dialogflow.v2beta1.Intent.Message.RbmSuggestedReply;

                            /**
                             * Decodes a RbmSuggestedReply message from the specified reader or buffer, length delimited.
                             * @param reader Reader or buffer to decode from
                             * @returns RbmSuggestedReply
                             * @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.cloud.dialogflow.v2beta1.Intent.Message.RbmSuggestedReply;

                            /**
                             * Verifies a RbmSuggestedReply 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 RbmSuggestedReply message from a plain object. Also converts values to their respective internal types.
                             * @param object Plain object
                             * @returns RbmSuggestedReply
                             */
                            public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.Intent.Message.RbmSuggestedReply;

                            /**
                             * Creates a plain object from a RbmSuggestedReply message. Also converts values to other types if specified.
                             * @param message RbmSuggestedReply
                             * @param [options] Conversion options
                             * @returns Plain object
                             */
                            public static toObject(message: google.cloud.dialogflow.v2beta1.Intent.Message.RbmSuggestedReply, options?: $protobuf.IConversionOptions): { [k: string]: any };

                            /**
                             * Converts this RbmSuggestedReply to JSON.
                             * @returns JSON object
                             */
                            public toJSON(): { [k: string]: any };

                            /**
                             * Gets the default type url for RbmSuggestedReply
                             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                             * @returns The default type url
                             */
                            public static getTypeUrl(typeUrlPrefix?: string): string;
                        }

                        /** Properties of a RbmSuggestedAction. */
                        interface IRbmSuggestedAction {

                            /** RbmSuggestedAction text */
                            text?: (string|null);

                            /** RbmSuggestedAction postbackData */
                            postbackData?: (string|null);

                            /** RbmSuggestedAction dial */
                            dial?: (google.cloud.dialogflow.v2beta1.Intent.Message.RbmSuggestedAction.IRbmSuggestedActionDial|null);

                            /** RbmSuggestedAction openUrl */
                            openUrl?: (google.cloud.dialogflow.v2beta1.Intent.Message.RbmSuggestedAction.IRbmSuggestedActionOpenUri|null);

                            /** RbmSuggestedAction shareLocation */
                            shareLocation?: (google.cloud.dialogflow.v2beta1.Intent.Message.RbmSuggestedAction.IRbmSuggestedActionShareLocation|null);
                        }

                        /** Represents a RbmSuggestedAction. */
                        class RbmSuggestedAction implements IRbmSuggestedAction {

                            /**
                             * Constructs a new RbmSuggestedAction.
                             * @param [properties] Properties to set
                             */
                            constructor(properties?: google.cloud.dialogflow.v2beta1.Intent.Message.IRbmSuggestedAction);

                            /** RbmSuggestedAction text. */
                            public text: string;

                            /** RbmSuggestedAction postbackData. */
                            public postbackData: string;

                            /** RbmSuggestedAction dial. */
                            public dial?: (google.cloud.dialogflow.v2beta1.Intent.Message.RbmSuggestedAction.IRbmSuggestedActionDial|null);

                            /** RbmSuggestedAction openUrl. */
                            public openUrl?: (google.cloud.dialogflow.v2beta1.Intent.Message.RbmSuggestedAction.IRbmSuggestedActionOpenUri|null);

                            /** RbmSuggestedAction shareLocation. */
                            public shareLocation?: (google.cloud.dialogflow.v2beta1.Intent.Message.RbmSuggestedAction.IRbmSuggestedActionShareLocation|null);

                            /** RbmSuggestedAction action. */
                            public action?: ("dial"|"openUrl"|"shareLocation");

                            /**
                             * Creates a new RbmSuggestedAction instance using the specified properties.
                             * @param [properties] Properties to set
                             * @returns RbmSuggestedAction instance
                             */
                            public static create(properties?: google.cloud.dialogflow.v2beta1.Intent.Message.IRbmSuggestedAction): google.cloud.dialogflow.v2beta1.Intent.Message.RbmSuggestedAction;

                            /**
                             * Encodes the specified RbmSuggestedAction message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Intent.Message.RbmSuggestedAction.verify|verify} messages.
                             * @param message RbmSuggestedAction message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encode(message: google.cloud.dialogflow.v2beta1.Intent.Message.IRbmSuggestedAction, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Encodes the specified RbmSuggestedAction message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Intent.Message.RbmSuggestedAction.verify|verify} messages.
                             * @param message RbmSuggestedAction message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.Intent.Message.IRbmSuggestedAction, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Decodes a RbmSuggestedAction message from the specified reader or buffer.
                             * @param reader Reader or buffer to decode from
                             * @param [length] Message length if known beforehand
                             * @returns RbmSuggestedAction
                             * @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.cloud.dialogflow.v2beta1.Intent.Message.RbmSuggestedAction;

                            /**
                             * Decodes a RbmSuggestedAction message from the specified reader or buffer, length delimited.
                             * @param reader Reader or buffer to decode from
                             * @returns RbmSuggestedAction
                             * @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.cloud.dialogflow.v2beta1.Intent.Message.RbmSuggestedAction;

                            /**
                             * Verifies a RbmSuggestedAction 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 RbmSuggestedAction message from a plain object. Also converts values to their respective internal types.
                             * @param object Plain object
                             * @returns RbmSuggestedAction
                             */
                            public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.Intent.Message.RbmSuggestedAction;

                            /**
                             * Creates a plain object from a RbmSuggestedAction message. Also converts values to other types if specified.
                             * @param message RbmSuggestedAction
                             * @param [options] Conversion options
                             * @returns Plain object
                             */
                            public static toObject(message: google.cloud.dialogflow.v2beta1.Intent.Message.RbmSuggestedAction, options?: $protobuf.IConversionOptions): { [k: string]: any };

                            /**
                             * Converts this RbmSuggestedAction to JSON.
                             * @returns JSON object
                             */
                            public toJSON(): { [k: string]: any };

                            /**
                             * Gets the default type url for RbmSuggestedAction
                             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                             * @returns The default type url
                             */
                            public static getTypeUrl(typeUrlPrefix?: string): string;
                        }

                        namespace RbmSuggestedAction {

                            /** Properties of a RbmSuggestedActionDial. */
                            interface IRbmSuggestedActionDial {

                                /** RbmSuggestedActionDial phoneNumber */
                                phoneNumber?: (string|null);
                            }

                            /** Represents a RbmSuggestedActionDial. */
                            class RbmSuggestedActionDial implements IRbmSuggestedActionDial {

                                /**
                                 * Constructs a new RbmSuggestedActionDial.
                                 * @param [properties] Properties to set
                                 */
                                constructor(properties?: google.cloud.dialogflow.v2beta1.Intent.Message.RbmSuggestedAction.IRbmSuggestedActionDial);

                                /** RbmSuggestedActionDial phoneNumber. */
                                public phoneNumber: string;

                                /**
                                 * Creates a new RbmSuggestedActionDial instance using the specified properties.
                                 * @param [properties] Properties to set
                                 * @returns RbmSuggestedActionDial instance
                                 */
                                public static create(properties?: google.cloud.dialogflow.v2beta1.Intent.Message.RbmSuggestedAction.IRbmSuggestedActionDial): google.cloud.dialogflow.v2beta1.Intent.Message.RbmSuggestedAction.RbmSuggestedActionDial;

                                /**
                                 * Encodes the specified RbmSuggestedActionDial message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Intent.Message.RbmSuggestedAction.RbmSuggestedActionDial.verify|verify} messages.
                                 * @param message RbmSuggestedActionDial message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encode(message: google.cloud.dialogflow.v2beta1.Intent.Message.RbmSuggestedAction.IRbmSuggestedActionDial, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Encodes the specified RbmSuggestedActionDial message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Intent.Message.RbmSuggestedAction.RbmSuggestedActionDial.verify|verify} messages.
                                 * @param message RbmSuggestedActionDial message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.Intent.Message.RbmSuggestedAction.IRbmSuggestedActionDial, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Decodes a RbmSuggestedActionDial message from the specified reader or buffer.
                                 * @param reader Reader or buffer to decode from
                                 * @param [length] Message length if known beforehand
                                 * @returns RbmSuggestedActionDial
                                 * @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.cloud.dialogflow.v2beta1.Intent.Message.RbmSuggestedAction.RbmSuggestedActionDial;

                                /**
                                 * Decodes a RbmSuggestedActionDial message from the specified reader or buffer, length delimited.
                                 * @param reader Reader or buffer to decode from
                                 * @returns RbmSuggestedActionDial
                                 * @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.cloud.dialogflow.v2beta1.Intent.Message.RbmSuggestedAction.RbmSuggestedActionDial;

                                /**
                                 * Verifies a RbmSuggestedActionDial 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 RbmSuggestedActionDial message from a plain object. Also converts values to their respective internal types.
                                 * @param object Plain object
                                 * @returns RbmSuggestedActionDial
                                 */
                                public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.Intent.Message.RbmSuggestedAction.RbmSuggestedActionDial;

                                /**
                                 * Creates a plain object from a RbmSuggestedActionDial message. Also converts values to other types if specified.
                                 * @param message RbmSuggestedActionDial
                                 * @param [options] Conversion options
                                 * @returns Plain object
                                 */
                                public static toObject(message: google.cloud.dialogflow.v2beta1.Intent.Message.RbmSuggestedAction.RbmSuggestedActionDial, options?: $protobuf.IConversionOptions): { [k: string]: any };

                                /**
                                 * Converts this RbmSuggestedActionDial to JSON.
                                 * @returns JSON object
                                 */
                                public toJSON(): { [k: string]: any };

                                /**
                                 * Gets the default type url for RbmSuggestedActionDial
                                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                                 * @returns The default type url
                                 */
                                public static getTypeUrl(typeUrlPrefix?: string): string;
                            }

                            /** Properties of a RbmSuggestedActionOpenUri. */
                            interface IRbmSuggestedActionOpenUri {

                                /** RbmSuggestedActionOpenUri uri */
                                uri?: (string|null);
                            }

                            /** Represents a RbmSuggestedActionOpenUri. */
                            class RbmSuggestedActionOpenUri implements IRbmSuggestedActionOpenUri {

                                /**
                                 * Constructs a new RbmSuggestedActionOpenUri.
                                 * @param [properties] Properties to set
                                 */
                                constructor(properties?: google.cloud.dialogflow.v2beta1.Intent.Message.RbmSuggestedAction.IRbmSuggestedActionOpenUri);

                                /** RbmSuggestedActionOpenUri uri. */
                                public uri: string;

                                /**
                                 * Creates a new RbmSuggestedActionOpenUri instance using the specified properties.
                                 * @param [properties] Properties to set
                                 * @returns RbmSuggestedActionOpenUri instance
                                 */
                                public static create(properties?: google.cloud.dialogflow.v2beta1.Intent.Message.RbmSuggestedAction.IRbmSuggestedActionOpenUri): google.cloud.dialogflow.v2beta1.Intent.Message.RbmSuggestedAction.RbmSuggestedActionOpenUri;

                                /**
                                 * Encodes the specified RbmSuggestedActionOpenUri message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Intent.Message.RbmSuggestedAction.RbmSuggestedActionOpenUri.verify|verify} messages.
                                 * @param message RbmSuggestedActionOpenUri message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encode(message: google.cloud.dialogflow.v2beta1.Intent.Message.RbmSuggestedAction.IRbmSuggestedActionOpenUri, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Encodes the specified RbmSuggestedActionOpenUri message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Intent.Message.RbmSuggestedAction.RbmSuggestedActionOpenUri.verify|verify} messages.
                                 * @param message RbmSuggestedActionOpenUri message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.Intent.Message.RbmSuggestedAction.IRbmSuggestedActionOpenUri, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Decodes a RbmSuggestedActionOpenUri message from the specified reader or buffer.
                                 * @param reader Reader or buffer to decode from
                                 * @param [length] Message length if known beforehand
                                 * @returns RbmSuggestedActionOpenUri
                                 * @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.cloud.dialogflow.v2beta1.Intent.Message.RbmSuggestedAction.RbmSuggestedActionOpenUri;

                                /**
                                 * Decodes a RbmSuggestedActionOpenUri message from the specified reader or buffer, length delimited.
                                 * @param reader Reader or buffer to decode from
                                 * @returns RbmSuggestedActionOpenUri
                                 * @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.cloud.dialogflow.v2beta1.Intent.Message.RbmSuggestedAction.RbmSuggestedActionOpenUri;

                                /**
                                 * Verifies a RbmSuggestedActionOpenUri 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 RbmSuggestedActionOpenUri message from a plain object. Also converts values to their respective internal types.
                                 * @param object Plain object
                                 * @returns RbmSuggestedActionOpenUri
                                 */
                                public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.Intent.Message.RbmSuggestedAction.RbmSuggestedActionOpenUri;

                                /**
                                 * Creates a plain object from a RbmSuggestedActionOpenUri message. Also converts values to other types if specified.
                                 * @param message RbmSuggestedActionOpenUri
                                 * @param [options] Conversion options
                                 * @returns Plain object
                                 */
                                public static toObject(message: google.cloud.dialogflow.v2beta1.Intent.Message.RbmSuggestedAction.RbmSuggestedActionOpenUri, options?: $protobuf.IConversionOptions): { [k: string]: any };

                                /**
                                 * Converts this RbmSuggestedActionOpenUri to JSON.
                                 * @returns JSON object
                                 */
                                public toJSON(): { [k: string]: any };

                                /**
                                 * Gets the default type url for RbmSuggestedActionOpenUri
                                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                                 * @returns The default type url
                                 */
                                public static getTypeUrl(typeUrlPrefix?: string): string;
                            }

                            /** Properties of a RbmSuggestedActionShareLocation. */
                            interface IRbmSuggestedActionShareLocation {
                            }

                            /** Represents a RbmSuggestedActionShareLocation. */
                            class RbmSuggestedActionShareLocation implements IRbmSuggestedActionShareLocation {

                                /**
                                 * Constructs a new RbmSuggestedActionShareLocation.
                                 * @param [properties] Properties to set
                                 */
                                constructor(properties?: google.cloud.dialogflow.v2beta1.Intent.Message.RbmSuggestedAction.IRbmSuggestedActionShareLocation);

                                /**
                                 * Creates a new RbmSuggestedActionShareLocation instance using the specified properties.
                                 * @param [properties] Properties to set
                                 * @returns RbmSuggestedActionShareLocation instance
                                 */
                                public static create(properties?: google.cloud.dialogflow.v2beta1.Intent.Message.RbmSuggestedAction.IRbmSuggestedActionShareLocation): google.cloud.dialogflow.v2beta1.Intent.Message.RbmSuggestedAction.RbmSuggestedActionShareLocation;

                                /**
                                 * Encodes the specified RbmSuggestedActionShareLocation message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Intent.Message.RbmSuggestedAction.RbmSuggestedActionShareLocation.verify|verify} messages.
                                 * @param message RbmSuggestedActionShareLocation message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encode(message: google.cloud.dialogflow.v2beta1.Intent.Message.RbmSuggestedAction.IRbmSuggestedActionShareLocation, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Encodes the specified RbmSuggestedActionShareLocation message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Intent.Message.RbmSuggestedAction.RbmSuggestedActionShareLocation.verify|verify} messages.
                                 * @param message RbmSuggestedActionShareLocation message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.Intent.Message.RbmSuggestedAction.IRbmSuggestedActionShareLocation, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Decodes a RbmSuggestedActionShareLocation message from the specified reader or buffer.
                                 * @param reader Reader or buffer to decode from
                                 * @param [length] Message length if known beforehand
                                 * @returns RbmSuggestedActionShareLocation
                                 * @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.cloud.dialogflow.v2beta1.Intent.Message.RbmSuggestedAction.RbmSuggestedActionShareLocation;

                                /**
                                 * Decodes a RbmSuggestedActionShareLocation message from the specified reader or buffer, length delimited.
                                 * @param reader Reader or buffer to decode from
                                 * @returns RbmSuggestedActionShareLocation
                                 * @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.cloud.dialogflow.v2beta1.Intent.Message.RbmSuggestedAction.RbmSuggestedActionShareLocation;

                                /**
                                 * Verifies a RbmSuggestedActionShareLocation 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 RbmSuggestedActionShareLocation message from a plain object. Also converts values to their respective internal types.
                                 * @param object Plain object
                                 * @returns RbmSuggestedActionShareLocation
                                 */
                                public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.Intent.Message.RbmSuggestedAction.RbmSuggestedActionShareLocation;

                                /**
                                 * Creates a plain object from a RbmSuggestedActionShareLocation message. Also converts values to other types if specified.
                                 * @param message RbmSuggestedActionShareLocation
                                 * @param [options] Conversion options
                                 * @returns Plain object
                                 */
                                public static toObject(message: google.cloud.dialogflow.v2beta1.Intent.Message.RbmSuggestedAction.RbmSuggestedActionShareLocation, options?: $protobuf.IConversionOptions): { [k: string]: any };

                                /**
                                 * Converts this RbmSuggestedActionShareLocation to JSON.
                                 * @returns JSON object
                                 */
                                public toJSON(): { [k: string]: any };

                                /**
                                 * Gets the default type url for RbmSuggestedActionShareLocation
                                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                                 * @returns The default type url
                                 */
                                public static getTypeUrl(typeUrlPrefix?: string): string;
                            }
                        }

                        /** Properties of a MediaContent. */
                        interface IMediaContent {

                            /** MediaContent mediaType */
                            mediaType?: (google.cloud.dialogflow.v2beta1.Intent.Message.MediaContent.ResponseMediaType|keyof typeof google.cloud.dialogflow.v2beta1.Intent.Message.MediaContent.ResponseMediaType|null);

                            /** MediaContent mediaObjects */
                            mediaObjects?: (google.cloud.dialogflow.v2beta1.Intent.Message.MediaContent.IResponseMediaObject[]|null);
                        }

                        /** Represents a MediaContent. */
                        class MediaContent implements IMediaContent {

                            /**
                             * Constructs a new MediaContent.
                             * @param [properties] Properties to set
                             */
                            constructor(properties?: google.cloud.dialogflow.v2beta1.Intent.Message.IMediaContent);

                            /** MediaContent mediaType. */
                            public mediaType: (google.cloud.dialogflow.v2beta1.Intent.Message.MediaContent.ResponseMediaType|keyof typeof google.cloud.dialogflow.v2beta1.Intent.Message.MediaContent.ResponseMediaType);

                            /** MediaContent mediaObjects. */
                            public mediaObjects: google.cloud.dialogflow.v2beta1.Intent.Message.MediaContent.IResponseMediaObject[];

                            /**
                             * Creates a new MediaContent instance using the specified properties.
                             * @param [properties] Properties to set
                             * @returns MediaContent instance
                             */
                            public static create(properties?: google.cloud.dialogflow.v2beta1.Intent.Message.IMediaContent): google.cloud.dialogflow.v2beta1.Intent.Message.MediaContent;

                            /**
                             * Encodes the specified MediaContent message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Intent.Message.MediaContent.verify|verify} messages.
                             * @param message MediaContent message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encode(message: google.cloud.dialogflow.v2beta1.Intent.Message.IMediaContent, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Encodes the specified MediaContent message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Intent.Message.MediaContent.verify|verify} messages.
                             * @param message MediaContent message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.Intent.Message.IMediaContent, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Decodes a MediaContent message from the specified reader or buffer.
                             * @param reader Reader or buffer to decode from
                             * @param [length] Message length if known beforehand
                             * @returns MediaContent
                             * @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.cloud.dialogflow.v2beta1.Intent.Message.MediaContent;

                            /**
                             * Decodes a MediaContent message from the specified reader or buffer, length delimited.
                             * @param reader Reader or buffer to decode from
                             * @returns MediaContent
                             * @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.cloud.dialogflow.v2beta1.Intent.Message.MediaContent;

                            /**
                             * Verifies a MediaContent 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 MediaContent message from a plain object. Also converts values to their respective internal types.
                             * @param object Plain object
                             * @returns MediaContent
                             */
                            public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.Intent.Message.MediaContent;

                            /**
                             * Creates a plain object from a MediaContent message. Also converts values to other types if specified.
                             * @param message MediaContent
                             * @param [options] Conversion options
                             * @returns Plain object
                             */
                            public static toObject(message: google.cloud.dialogflow.v2beta1.Intent.Message.MediaContent, options?: $protobuf.IConversionOptions): { [k: string]: any };

                            /**
                             * Converts this MediaContent to JSON.
                             * @returns JSON object
                             */
                            public toJSON(): { [k: string]: any };

                            /**
                             * Gets the default type url for MediaContent
                             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                             * @returns The default type url
                             */
                            public static getTypeUrl(typeUrlPrefix?: string): string;
                        }

                        namespace MediaContent {

                            /** ResponseMediaType enum. */
                            enum ResponseMediaType {
                                RESPONSE_MEDIA_TYPE_UNSPECIFIED = 0,
                                AUDIO = 1
                            }

                            /** Properties of a ResponseMediaObject. */
                            interface IResponseMediaObject {

                                /** ResponseMediaObject name */
                                name?: (string|null);

                                /** ResponseMediaObject description */
                                description?: (string|null);

                                /** ResponseMediaObject largeImage */
                                largeImage?: (google.cloud.dialogflow.v2beta1.Intent.Message.IImage|null);

                                /** ResponseMediaObject icon */
                                icon?: (google.cloud.dialogflow.v2beta1.Intent.Message.IImage|null);

                                /** ResponseMediaObject contentUrl */
                                contentUrl?: (string|null);
                            }

                            /** Represents a ResponseMediaObject. */
                            class ResponseMediaObject implements IResponseMediaObject {

                                /**
                                 * Constructs a new ResponseMediaObject.
                                 * @param [properties] Properties to set
                                 */
                                constructor(properties?: google.cloud.dialogflow.v2beta1.Intent.Message.MediaContent.IResponseMediaObject);

                                /** ResponseMediaObject name. */
                                public name: string;

                                /** ResponseMediaObject description. */
                                public description: string;

                                /** ResponseMediaObject largeImage. */
                                public largeImage?: (google.cloud.dialogflow.v2beta1.Intent.Message.IImage|null);

                                /** ResponseMediaObject icon. */
                                public icon?: (google.cloud.dialogflow.v2beta1.Intent.Message.IImage|null);

                                /** ResponseMediaObject contentUrl. */
                                public contentUrl: string;

                                /** ResponseMediaObject image. */
                                public image?: ("largeImage"|"icon");

                                /**
                                 * Creates a new ResponseMediaObject instance using the specified properties.
                                 * @param [properties] Properties to set
                                 * @returns ResponseMediaObject instance
                                 */
                                public static create(properties?: google.cloud.dialogflow.v2beta1.Intent.Message.MediaContent.IResponseMediaObject): google.cloud.dialogflow.v2beta1.Intent.Message.MediaContent.ResponseMediaObject;

                                /**
                                 * Encodes the specified ResponseMediaObject message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Intent.Message.MediaContent.ResponseMediaObject.verify|verify} messages.
                                 * @param message ResponseMediaObject message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encode(message: google.cloud.dialogflow.v2beta1.Intent.Message.MediaContent.IResponseMediaObject, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Encodes the specified ResponseMediaObject message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Intent.Message.MediaContent.ResponseMediaObject.verify|verify} messages.
                                 * @param message ResponseMediaObject message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.Intent.Message.MediaContent.IResponseMediaObject, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Decodes a ResponseMediaObject message from the specified reader or buffer.
                                 * @param reader Reader or buffer to decode from
                                 * @param [length] Message length if known beforehand
                                 * @returns ResponseMediaObject
                                 * @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.cloud.dialogflow.v2beta1.Intent.Message.MediaContent.ResponseMediaObject;

                                /**
                                 * Decodes a ResponseMediaObject message from the specified reader or buffer, length delimited.
                                 * @param reader Reader or buffer to decode from
                                 * @returns ResponseMediaObject
                                 * @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.cloud.dialogflow.v2beta1.Intent.Message.MediaContent.ResponseMediaObject;

                                /**
                                 * Verifies a ResponseMediaObject 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 ResponseMediaObject message from a plain object. Also converts values to their respective internal types.
                                 * @param object Plain object
                                 * @returns ResponseMediaObject
                                 */
                                public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.Intent.Message.MediaContent.ResponseMediaObject;

                                /**
                                 * Creates a plain object from a ResponseMediaObject message. Also converts values to other types if specified.
                                 * @param message ResponseMediaObject
                                 * @param [options] Conversion options
                                 * @returns Plain object
                                 */
                                public static toObject(message: google.cloud.dialogflow.v2beta1.Intent.Message.MediaContent.ResponseMediaObject, options?: $protobuf.IConversionOptions): { [k: string]: any };

                                /**
                                 * Converts this ResponseMediaObject to JSON.
                                 * @returns JSON object
                                 */
                                public toJSON(): { [k: string]: any };

                                /**
                                 * Gets the default type url for ResponseMediaObject
                                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                                 * @returns The default type url
                                 */
                                public static getTypeUrl(typeUrlPrefix?: string): string;
                            }
                        }

                        /** Properties of a BrowseCarouselCard. */
                        interface IBrowseCarouselCard {

                            /** BrowseCarouselCard items */
                            items?: (google.cloud.dialogflow.v2beta1.Intent.Message.BrowseCarouselCard.IBrowseCarouselCardItem[]|null);

                            /** BrowseCarouselCard imageDisplayOptions */
                            imageDisplayOptions?: (google.cloud.dialogflow.v2beta1.Intent.Message.BrowseCarouselCard.ImageDisplayOptions|keyof typeof google.cloud.dialogflow.v2beta1.Intent.Message.BrowseCarouselCard.ImageDisplayOptions|null);
                        }

                        /** Represents a BrowseCarouselCard. */
                        class BrowseCarouselCard implements IBrowseCarouselCard {

                            /**
                             * Constructs a new BrowseCarouselCard.
                             * @param [properties] Properties to set
                             */
                            constructor(properties?: google.cloud.dialogflow.v2beta1.Intent.Message.IBrowseCarouselCard);

                            /** BrowseCarouselCard items. */
                            public items: google.cloud.dialogflow.v2beta1.Intent.Message.BrowseCarouselCard.IBrowseCarouselCardItem[];

                            /** BrowseCarouselCard imageDisplayOptions. */
                            public imageDisplayOptions: (google.cloud.dialogflow.v2beta1.Intent.Message.BrowseCarouselCard.ImageDisplayOptions|keyof typeof google.cloud.dialogflow.v2beta1.Intent.Message.BrowseCarouselCard.ImageDisplayOptions);

                            /**
                             * Creates a new BrowseCarouselCard instance using the specified properties.
                             * @param [properties] Properties to set
                             * @returns BrowseCarouselCard instance
                             */
                            public static create(properties?: google.cloud.dialogflow.v2beta1.Intent.Message.IBrowseCarouselCard): google.cloud.dialogflow.v2beta1.Intent.Message.BrowseCarouselCard;

                            /**
                             * Encodes the specified BrowseCarouselCard message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Intent.Message.BrowseCarouselCard.verify|verify} messages.
                             * @param message BrowseCarouselCard message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encode(message: google.cloud.dialogflow.v2beta1.Intent.Message.IBrowseCarouselCard, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Encodes the specified BrowseCarouselCard message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Intent.Message.BrowseCarouselCard.verify|verify} messages.
                             * @param message BrowseCarouselCard message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.Intent.Message.IBrowseCarouselCard, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Decodes a BrowseCarouselCard message from the specified reader or buffer.
                             * @param reader Reader or buffer to decode from
                             * @param [length] Message length if known beforehand
                             * @returns BrowseCarouselCard
                             * @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.cloud.dialogflow.v2beta1.Intent.Message.BrowseCarouselCard;

                            /**
                             * Decodes a BrowseCarouselCard message from the specified reader or buffer, length delimited.
                             * @param reader Reader or buffer to decode from
                             * @returns BrowseCarouselCard
                             * @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.cloud.dialogflow.v2beta1.Intent.Message.BrowseCarouselCard;

                            /**
                             * Verifies a BrowseCarouselCard 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 BrowseCarouselCard message from a plain object. Also converts values to their respective internal types.
                             * @param object Plain object
                             * @returns BrowseCarouselCard
                             */
                            public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.Intent.Message.BrowseCarouselCard;

                            /**
                             * Creates a plain object from a BrowseCarouselCard message. Also converts values to other types if specified.
                             * @param message BrowseCarouselCard
                             * @param [options] Conversion options
                             * @returns Plain object
                             */
                            public static toObject(message: google.cloud.dialogflow.v2beta1.Intent.Message.BrowseCarouselCard, options?: $protobuf.IConversionOptions): { [k: string]: any };

                            /**
                             * Converts this BrowseCarouselCard to JSON.
                             * @returns JSON object
                             */
                            public toJSON(): { [k: string]: any };

                            /**
                             * Gets the default type url for BrowseCarouselCard
                             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                             * @returns The default type url
                             */
                            public static getTypeUrl(typeUrlPrefix?: string): string;
                        }

                        namespace BrowseCarouselCard {

                            /** Properties of a BrowseCarouselCardItem. */
                            interface IBrowseCarouselCardItem {

                                /** BrowseCarouselCardItem openUriAction */
                                openUriAction?: (google.cloud.dialogflow.v2beta1.Intent.Message.BrowseCarouselCard.BrowseCarouselCardItem.IOpenUrlAction|null);

                                /** BrowseCarouselCardItem title */
                                title?: (string|null);

                                /** BrowseCarouselCardItem description */
                                description?: (string|null);

                                /** BrowseCarouselCardItem image */
                                image?: (google.cloud.dialogflow.v2beta1.Intent.Message.IImage|null);

                                /** BrowseCarouselCardItem footer */
                                footer?: (string|null);
                            }

                            /** Represents a BrowseCarouselCardItem. */
                            class BrowseCarouselCardItem implements IBrowseCarouselCardItem {

                                /**
                                 * Constructs a new BrowseCarouselCardItem.
                                 * @param [properties] Properties to set
                                 */
                                constructor(properties?: google.cloud.dialogflow.v2beta1.Intent.Message.BrowseCarouselCard.IBrowseCarouselCardItem);

                                /** BrowseCarouselCardItem openUriAction. */
                                public openUriAction?: (google.cloud.dialogflow.v2beta1.Intent.Message.BrowseCarouselCard.BrowseCarouselCardItem.IOpenUrlAction|null);

                                /** BrowseCarouselCardItem title. */
                                public title: string;

                                /** BrowseCarouselCardItem description. */
                                public description: string;

                                /** BrowseCarouselCardItem image. */
                                public image?: (google.cloud.dialogflow.v2beta1.Intent.Message.IImage|null);

                                /** BrowseCarouselCardItem footer. */
                                public footer: string;

                                /**
                                 * Creates a new BrowseCarouselCardItem instance using the specified properties.
                                 * @param [properties] Properties to set
                                 * @returns BrowseCarouselCardItem instance
                                 */
                                public static create(properties?: google.cloud.dialogflow.v2beta1.Intent.Message.BrowseCarouselCard.IBrowseCarouselCardItem): google.cloud.dialogflow.v2beta1.Intent.Message.BrowseCarouselCard.BrowseCarouselCardItem;

                                /**
                                 * Encodes the specified BrowseCarouselCardItem message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Intent.Message.BrowseCarouselCard.BrowseCarouselCardItem.verify|verify} messages.
                                 * @param message BrowseCarouselCardItem message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encode(message: google.cloud.dialogflow.v2beta1.Intent.Message.BrowseCarouselCard.IBrowseCarouselCardItem, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Encodes the specified BrowseCarouselCardItem message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Intent.Message.BrowseCarouselCard.BrowseCarouselCardItem.verify|verify} messages.
                                 * @param message BrowseCarouselCardItem message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.Intent.Message.BrowseCarouselCard.IBrowseCarouselCardItem, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Decodes a BrowseCarouselCardItem message from the specified reader or buffer.
                                 * @param reader Reader or buffer to decode from
                                 * @param [length] Message length if known beforehand
                                 * @returns BrowseCarouselCardItem
                                 * @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.cloud.dialogflow.v2beta1.Intent.Message.BrowseCarouselCard.BrowseCarouselCardItem;

                                /**
                                 * Decodes a BrowseCarouselCardItem message from the specified reader or buffer, length delimited.
                                 * @param reader Reader or buffer to decode from
                                 * @returns BrowseCarouselCardItem
                                 * @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.cloud.dialogflow.v2beta1.Intent.Message.BrowseCarouselCard.BrowseCarouselCardItem;

                                /**
                                 * Verifies a BrowseCarouselCardItem 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 BrowseCarouselCardItem message from a plain object. Also converts values to their respective internal types.
                                 * @param object Plain object
                                 * @returns BrowseCarouselCardItem
                                 */
                                public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.Intent.Message.BrowseCarouselCard.BrowseCarouselCardItem;

                                /**
                                 * Creates a plain object from a BrowseCarouselCardItem message. Also converts values to other types if specified.
                                 * @param message BrowseCarouselCardItem
                                 * @param [options] Conversion options
                                 * @returns Plain object
                                 */
                                public static toObject(message: google.cloud.dialogflow.v2beta1.Intent.Message.BrowseCarouselCard.BrowseCarouselCardItem, options?: $protobuf.IConversionOptions): { [k: string]: any };

                                /**
                                 * Converts this BrowseCarouselCardItem to JSON.
                                 * @returns JSON object
                                 */
                                public toJSON(): { [k: string]: any };

                                /**
                                 * Gets the default type url for BrowseCarouselCardItem
                                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                                 * @returns The default type url
                                 */
                                public static getTypeUrl(typeUrlPrefix?: string): string;
                            }

                            namespace BrowseCarouselCardItem {

                                /** Properties of an OpenUrlAction. */
                                interface IOpenUrlAction {

                                    /** OpenUrlAction url */
                                    url?: (string|null);

                                    /** OpenUrlAction urlTypeHint */
                                    urlTypeHint?: (google.cloud.dialogflow.v2beta1.Intent.Message.BrowseCarouselCard.BrowseCarouselCardItem.OpenUrlAction.UrlTypeHint|keyof typeof google.cloud.dialogflow.v2beta1.Intent.Message.BrowseCarouselCard.BrowseCarouselCardItem.OpenUrlAction.UrlTypeHint|null);
                                }

                                /** Represents an OpenUrlAction. */
                                class OpenUrlAction implements IOpenUrlAction {

                                    /**
                                     * Constructs a new OpenUrlAction.
                                     * @param [properties] Properties to set
                                     */
                                    constructor(properties?: google.cloud.dialogflow.v2beta1.Intent.Message.BrowseCarouselCard.BrowseCarouselCardItem.IOpenUrlAction);

                                    /** OpenUrlAction url. */
                                    public url: string;

                                    /** OpenUrlAction urlTypeHint. */
                                    public urlTypeHint: (google.cloud.dialogflow.v2beta1.Intent.Message.BrowseCarouselCard.BrowseCarouselCardItem.OpenUrlAction.UrlTypeHint|keyof typeof google.cloud.dialogflow.v2beta1.Intent.Message.BrowseCarouselCard.BrowseCarouselCardItem.OpenUrlAction.UrlTypeHint);

                                    /**
                                     * Creates a new OpenUrlAction instance using the specified properties.
                                     * @param [properties] Properties to set
                                     * @returns OpenUrlAction instance
                                     */
                                    public static create(properties?: google.cloud.dialogflow.v2beta1.Intent.Message.BrowseCarouselCard.BrowseCarouselCardItem.IOpenUrlAction): google.cloud.dialogflow.v2beta1.Intent.Message.BrowseCarouselCard.BrowseCarouselCardItem.OpenUrlAction;

                                    /**
                                     * Encodes the specified OpenUrlAction message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Intent.Message.BrowseCarouselCard.BrowseCarouselCardItem.OpenUrlAction.verify|verify} messages.
                                     * @param message OpenUrlAction message or plain object to encode
                                     * @param [writer] Writer to encode to
                                     * @returns Writer
                                     */
                                    public static encode(message: google.cloud.dialogflow.v2beta1.Intent.Message.BrowseCarouselCard.BrowseCarouselCardItem.IOpenUrlAction, writer?: $protobuf.Writer): $protobuf.Writer;

                                    /**
                                     * Encodes the specified OpenUrlAction message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Intent.Message.BrowseCarouselCard.BrowseCarouselCardItem.OpenUrlAction.verify|verify} messages.
                                     * @param message OpenUrlAction message or plain object to encode
                                     * @param [writer] Writer to encode to
                                     * @returns Writer
                                     */
                                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.Intent.Message.BrowseCarouselCard.BrowseCarouselCardItem.IOpenUrlAction, writer?: $protobuf.Writer): $protobuf.Writer;

                                    /**
                                     * Decodes an OpenUrlAction message from the specified reader or buffer.
                                     * @param reader Reader or buffer to decode from
                                     * @param [length] Message length if known beforehand
                                     * @returns OpenUrlAction
                                     * @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.cloud.dialogflow.v2beta1.Intent.Message.BrowseCarouselCard.BrowseCarouselCardItem.OpenUrlAction;

                                    /**
                                     * Decodes an OpenUrlAction message from the specified reader or buffer, length delimited.
                                     * @param reader Reader or buffer to decode from
                                     * @returns OpenUrlAction
                                     * @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.cloud.dialogflow.v2beta1.Intent.Message.BrowseCarouselCard.BrowseCarouselCardItem.OpenUrlAction;

                                    /**
                                     * Verifies an OpenUrlAction 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 OpenUrlAction message from a plain object. Also converts values to their respective internal types.
                                     * @param object Plain object
                                     * @returns OpenUrlAction
                                     */
                                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.Intent.Message.BrowseCarouselCard.BrowseCarouselCardItem.OpenUrlAction;

                                    /**
                                     * Creates a plain object from an OpenUrlAction message. Also converts values to other types if specified.
                                     * @param message OpenUrlAction
                                     * @param [options] Conversion options
                                     * @returns Plain object
                                     */
                                    public static toObject(message: google.cloud.dialogflow.v2beta1.Intent.Message.BrowseCarouselCard.BrowseCarouselCardItem.OpenUrlAction, options?: $protobuf.IConversionOptions): { [k: string]: any };

                                    /**
                                     * Converts this OpenUrlAction to JSON.
                                     * @returns JSON object
                                     */
                                    public toJSON(): { [k: string]: any };

                                    /**
                                     * Gets the default type url for OpenUrlAction
                                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                                     * @returns The default type url
                                     */
                                    public static getTypeUrl(typeUrlPrefix?: string): string;
                                }

                                namespace OpenUrlAction {

                                    /** UrlTypeHint enum. */
                                    enum UrlTypeHint {
                                        URL_TYPE_HINT_UNSPECIFIED = 0,
                                        AMP_ACTION = 1,
                                        AMP_CONTENT = 2
                                    }
                                }
                            }

                            /** ImageDisplayOptions enum. */
                            enum ImageDisplayOptions {
                                IMAGE_DISPLAY_OPTIONS_UNSPECIFIED = 0,
                                GRAY = 1,
                                WHITE = 2,
                                CROPPED = 3,
                                BLURRED_BACKGROUND = 4
                            }
                        }

                        /** Properties of a TableCard. */
                        interface ITableCard {

                            /** TableCard title */
                            title?: (string|null);

                            /** TableCard subtitle */
                            subtitle?: (string|null);

                            /** TableCard image */
                            image?: (google.cloud.dialogflow.v2beta1.Intent.Message.IImage|null);

                            /** TableCard columnProperties */
                            columnProperties?: (google.cloud.dialogflow.v2beta1.Intent.Message.IColumnProperties[]|null);

                            /** TableCard rows */
                            rows?: (google.cloud.dialogflow.v2beta1.Intent.Message.ITableCardRow[]|null);

                            /** TableCard buttons */
                            buttons?: (google.cloud.dialogflow.v2beta1.Intent.Message.BasicCard.IButton[]|null);
                        }

                        /** Represents a TableCard. */
                        class TableCard implements ITableCard {

                            /**
                             * Constructs a new TableCard.
                             * @param [properties] Properties to set
                             */
                            constructor(properties?: google.cloud.dialogflow.v2beta1.Intent.Message.ITableCard);

                            /** TableCard title. */
                            public title: string;

                            /** TableCard subtitle. */
                            public subtitle: string;

                            /** TableCard image. */
                            public image?: (google.cloud.dialogflow.v2beta1.Intent.Message.IImage|null);

                            /** TableCard columnProperties. */
                            public columnProperties: google.cloud.dialogflow.v2beta1.Intent.Message.IColumnProperties[];

                            /** TableCard rows. */
                            public rows: google.cloud.dialogflow.v2beta1.Intent.Message.ITableCardRow[];

                            /** TableCard buttons. */
                            public buttons: google.cloud.dialogflow.v2beta1.Intent.Message.BasicCard.IButton[];

                            /**
                             * Creates a new TableCard instance using the specified properties.
                             * @param [properties] Properties to set
                             * @returns TableCard instance
                             */
                            public static create(properties?: google.cloud.dialogflow.v2beta1.Intent.Message.ITableCard): google.cloud.dialogflow.v2beta1.Intent.Message.TableCard;

                            /**
                             * Encodes the specified TableCard message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Intent.Message.TableCard.verify|verify} messages.
                             * @param message TableCard message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encode(message: google.cloud.dialogflow.v2beta1.Intent.Message.ITableCard, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Encodes the specified TableCard message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Intent.Message.TableCard.verify|verify} messages.
                             * @param message TableCard message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.Intent.Message.ITableCard, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Decodes a TableCard message from the specified reader or buffer.
                             * @param reader Reader or buffer to decode from
                             * @param [length] Message length if known beforehand
                             * @returns TableCard
                             * @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.cloud.dialogflow.v2beta1.Intent.Message.TableCard;

                            /**
                             * Decodes a TableCard message from the specified reader or buffer, length delimited.
                             * @param reader Reader or buffer to decode from
                             * @returns TableCard
                             * @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.cloud.dialogflow.v2beta1.Intent.Message.TableCard;

                            /**
                             * Verifies a TableCard 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 TableCard message from a plain object. Also converts values to their respective internal types.
                             * @param object Plain object
                             * @returns TableCard
                             */
                            public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.Intent.Message.TableCard;

                            /**
                             * Creates a plain object from a TableCard message. Also converts values to other types if specified.
                             * @param message TableCard
                             * @param [options] Conversion options
                             * @returns Plain object
                             */
                            public static toObject(message: google.cloud.dialogflow.v2beta1.Intent.Message.TableCard, options?: $protobuf.IConversionOptions): { [k: string]: any };

                            /**
                             * Converts this TableCard to JSON.
                             * @returns JSON object
                             */
                            public toJSON(): { [k: string]: any };

                            /**
                             * Gets the default type url for TableCard
                             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                             * @returns The default type url
                             */
                            public static getTypeUrl(typeUrlPrefix?: string): string;
                        }

                        /** Properties of a ColumnProperties. */
                        interface IColumnProperties {

                            /** ColumnProperties header */
                            header?: (string|null);

                            /** ColumnProperties horizontalAlignment */
                            horizontalAlignment?: (google.cloud.dialogflow.v2beta1.Intent.Message.ColumnProperties.HorizontalAlignment|keyof typeof google.cloud.dialogflow.v2beta1.Intent.Message.ColumnProperties.HorizontalAlignment|null);
                        }

                        /** Represents a ColumnProperties. */
                        class ColumnProperties implements IColumnProperties {

                            /**
                             * Constructs a new ColumnProperties.
                             * @param [properties] Properties to set
                             */
                            constructor(properties?: google.cloud.dialogflow.v2beta1.Intent.Message.IColumnProperties);

                            /** ColumnProperties header. */
                            public header: string;

                            /** ColumnProperties horizontalAlignment. */
                            public horizontalAlignment: (google.cloud.dialogflow.v2beta1.Intent.Message.ColumnProperties.HorizontalAlignment|keyof typeof google.cloud.dialogflow.v2beta1.Intent.Message.ColumnProperties.HorizontalAlignment);

                            /**
                             * Creates a new ColumnProperties instance using the specified properties.
                             * @param [properties] Properties to set
                             * @returns ColumnProperties instance
                             */
                            public static create(properties?: google.cloud.dialogflow.v2beta1.Intent.Message.IColumnProperties): google.cloud.dialogflow.v2beta1.Intent.Message.ColumnProperties;

                            /**
                             * Encodes the specified ColumnProperties message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Intent.Message.ColumnProperties.verify|verify} messages.
                             * @param message ColumnProperties message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encode(message: google.cloud.dialogflow.v2beta1.Intent.Message.IColumnProperties, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Encodes the specified ColumnProperties message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Intent.Message.ColumnProperties.verify|verify} messages.
                             * @param message ColumnProperties message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.Intent.Message.IColumnProperties, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Decodes a ColumnProperties message from the specified reader or buffer.
                             * @param reader Reader or buffer to decode from
                             * @param [length] Message length if known beforehand
                             * @returns ColumnProperties
                             * @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.cloud.dialogflow.v2beta1.Intent.Message.ColumnProperties;

                            /**
                             * Decodes a ColumnProperties message from the specified reader or buffer, length delimited.
                             * @param reader Reader or buffer to decode from
                             * @returns ColumnProperties
                             * @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.cloud.dialogflow.v2beta1.Intent.Message.ColumnProperties;

                            /**
                             * Verifies a ColumnProperties 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 ColumnProperties message from a plain object. Also converts values to their respective internal types.
                             * @param object Plain object
                             * @returns ColumnProperties
                             */
                            public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.Intent.Message.ColumnProperties;

                            /**
                             * Creates a plain object from a ColumnProperties message. Also converts values to other types if specified.
                             * @param message ColumnProperties
                             * @param [options] Conversion options
                             * @returns Plain object
                             */
                            public static toObject(message: google.cloud.dialogflow.v2beta1.Intent.Message.ColumnProperties, options?: $protobuf.IConversionOptions): { [k: string]: any };

                            /**
                             * Converts this ColumnProperties to JSON.
                             * @returns JSON object
                             */
                            public toJSON(): { [k: string]: any };

                            /**
                             * Gets the default type url for ColumnProperties
                             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                             * @returns The default type url
                             */
                            public static getTypeUrl(typeUrlPrefix?: string): string;
                        }

                        namespace ColumnProperties {

                            /** HorizontalAlignment enum. */
                            enum HorizontalAlignment {
                                HORIZONTAL_ALIGNMENT_UNSPECIFIED = 0,
                                LEADING = 1,
                                CENTER = 2,
                                TRAILING = 3
                            }
                        }

                        /** Properties of a TableCardRow. */
                        interface ITableCardRow {

                            /** TableCardRow cells */
                            cells?: (google.cloud.dialogflow.v2beta1.Intent.Message.ITableCardCell[]|null);

                            /** TableCardRow dividerAfter */
                            dividerAfter?: (boolean|null);
                        }

                        /** Represents a TableCardRow. */
                        class TableCardRow implements ITableCardRow {

                            /**
                             * Constructs a new TableCardRow.
                             * @param [properties] Properties to set
                             */
                            constructor(properties?: google.cloud.dialogflow.v2beta1.Intent.Message.ITableCardRow);

                            /** TableCardRow cells. */
                            public cells: google.cloud.dialogflow.v2beta1.Intent.Message.ITableCardCell[];

                            /** TableCardRow dividerAfter. */
                            public dividerAfter: boolean;

                            /**
                             * Creates a new TableCardRow instance using the specified properties.
                             * @param [properties] Properties to set
                             * @returns TableCardRow instance
                             */
                            public static create(properties?: google.cloud.dialogflow.v2beta1.Intent.Message.ITableCardRow): google.cloud.dialogflow.v2beta1.Intent.Message.TableCardRow;

                            /**
                             * Encodes the specified TableCardRow message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Intent.Message.TableCardRow.verify|verify} messages.
                             * @param message TableCardRow message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encode(message: google.cloud.dialogflow.v2beta1.Intent.Message.ITableCardRow, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Encodes the specified TableCardRow message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Intent.Message.TableCardRow.verify|verify} messages.
                             * @param message TableCardRow message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.Intent.Message.ITableCardRow, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Decodes a TableCardRow message from the specified reader or buffer.
                             * @param reader Reader or buffer to decode from
                             * @param [length] Message length if known beforehand
                             * @returns TableCardRow
                             * @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.cloud.dialogflow.v2beta1.Intent.Message.TableCardRow;

                            /**
                             * Decodes a TableCardRow message from the specified reader or buffer, length delimited.
                             * @param reader Reader or buffer to decode from
                             * @returns TableCardRow
                             * @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.cloud.dialogflow.v2beta1.Intent.Message.TableCardRow;

                            /**
                             * Verifies a TableCardRow 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 TableCardRow message from a plain object. Also converts values to their respective internal types.
                             * @param object Plain object
                             * @returns TableCardRow
                             */
                            public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.Intent.Message.TableCardRow;

                            /**
                             * Creates a plain object from a TableCardRow message. Also converts values to other types if specified.
                             * @param message TableCardRow
                             * @param [options] Conversion options
                             * @returns Plain object
                             */
                            public static toObject(message: google.cloud.dialogflow.v2beta1.Intent.Message.TableCardRow, options?: $protobuf.IConversionOptions): { [k: string]: any };

                            /**
                             * Converts this TableCardRow to JSON.
                             * @returns JSON object
                             */
                            public toJSON(): { [k: string]: any };

                            /**
                             * Gets the default type url for TableCardRow
                             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                             * @returns The default type url
                             */
                            public static getTypeUrl(typeUrlPrefix?: string): string;
                        }

                        /** Properties of a TableCardCell. */
                        interface ITableCardCell {

                            /** TableCardCell text */
                            text?: (string|null);
                        }

                        /** Represents a TableCardCell. */
                        class TableCardCell implements ITableCardCell {

                            /**
                             * Constructs a new TableCardCell.
                             * @param [properties] Properties to set
                             */
                            constructor(properties?: google.cloud.dialogflow.v2beta1.Intent.Message.ITableCardCell);

                            /** TableCardCell text. */
                            public text: string;

                            /**
                             * Creates a new TableCardCell instance using the specified properties.
                             * @param [properties] Properties to set
                             * @returns TableCardCell instance
                             */
                            public static create(properties?: google.cloud.dialogflow.v2beta1.Intent.Message.ITableCardCell): google.cloud.dialogflow.v2beta1.Intent.Message.TableCardCell;

                            /**
                             * Encodes the specified TableCardCell message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Intent.Message.TableCardCell.verify|verify} messages.
                             * @param message TableCardCell message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encode(message: google.cloud.dialogflow.v2beta1.Intent.Message.ITableCardCell, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Encodes the specified TableCardCell message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Intent.Message.TableCardCell.verify|verify} messages.
                             * @param message TableCardCell message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.Intent.Message.ITableCardCell, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Decodes a TableCardCell message from the specified reader or buffer.
                             * @param reader Reader or buffer to decode from
                             * @param [length] Message length if known beforehand
                             * @returns TableCardCell
                             * @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.cloud.dialogflow.v2beta1.Intent.Message.TableCardCell;

                            /**
                             * Decodes a TableCardCell message from the specified reader or buffer, length delimited.
                             * @param reader Reader or buffer to decode from
                             * @returns TableCardCell
                             * @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.cloud.dialogflow.v2beta1.Intent.Message.TableCardCell;

                            /**
                             * Verifies a TableCardCell 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 TableCardCell message from a plain object. Also converts values to their respective internal types.
                             * @param object Plain object
                             * @returns TableCardCell
                             */
                            public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.Intent.Message.TableCardCell;

                            /**
                             * Creates a plain object from a TableCardCell message. Also converts values to other types if specified.
                             * @param message TableCardCell
                             * @param [options] Conversion options
                             * @returns Plain object
                             */
                            public static toObject(message: google.cloud.dialogflow.v2beta1.Intent.Message.TableCardCell, options?: $protobuf.IConversionOptions): { [k: string]: any };

                            /**
                             * Converts this TableCardCell to JSON.
                             * @returns JSON object
                             */
                            public toJSON(): { [k: string]: any };

                            /**
                             * Gets the default type url for TableCardCell
                             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                             * @returns The default type url
                             */
                            public static getTypeUrl(typeUrlPrefix?: string): string;
                        }
                    }

                    /** Properties of a FollowupIntentInfo. */
                    interface IFollowupIntentInfo {

                        /** FollowupIntentInfo followupIntentName */
                        followupIntentName?: (string|null);

                        /** FollowupIntentInfo parentFollowupIntentName */
                        parentFollowupIntentName?: (string|null);
                    }

                    /** Represents a FollowupIntentInfo. */
                    class FollowupIntentInfo implements IFollowupIntentInfo {

                        /**
                         * Constructs a new FollowupIntentInfo.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2beta1.Intent.IFollowupIntentInfo);

                        /** FollowupIntentInfo followupIntentName. */
                        public followupIntentName: string;

                        /** FollowupIntentInfo parentFollowupIntentName. */
                        public parentFollowupIntentName: string;

                        /**
                         * Creates a new FollowupIntentInfo instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns FollowupIntentInfo instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2beta1.Intent.IFollowupIntentInfo): google.cloud.dialogflow.v2beta1.Intent.FollowupIntentInfo;

                        /**
                         * Encodes the specified FollowupIntentInfo message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Intent.FollowupIntentInfo.verify|verify} messages.
                         * @param message FollowupIntentInfo message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2beta1.Intent.IFollowupIntentInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified FollowupIntentInfo message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Intent.FollowupIntentInfo.verify|verify} messages.
                         * @param message FollowupIntentInfo message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.Intent.IFollowupIntentInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a FollowupIntentInfo message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns FollowupIntentInfo
                         * @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.cloud.dialogflow.v2beta1.Intent.FollowupIntentInfo;

                        /**
                         * Decodes a FollowupIntentInfo message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns FollowupIntentInfo
                         * @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.cloud.dialogflow.v2beta1.Intent.FollowupIntentInfo;

                        /**
                         * Verifies a FollowupIntentInfo 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 FollowupIntentInfo message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns FollowupIntentInfo
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.Intent.FollowupIntentInfo;

                        /**
                         * Creates a plain object from a FollowupIntentInfo message. Also converts values to other types if specified.
                         * @param message FollowupIntentInfo
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.dialogflow.v2beta1.Intent.FollowupIntentInfo, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this FollowupIntentInfo to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for FollowupIntentInfo
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }
                }

                /** Properties of a ListIntentsRequest. */
                interface IListIntentsRequest {

                    /** ListIntentsRequest parent */
                    parent?: (string|null);

                    /** ListIntentsRequest languageCode */
                    languageCode?: (string|null);

                    /** ListIntentsRequest intentView */
                    intentView?: (google.cloud.dialogflow.v2beta1.IntentView|keyof typeof google.cloud.dialogflow.v2beta1.IntentView|null);

                    /** ListIntentsRequest pageSize */
                    pageSize?: (number|null);

                    /** ListIntentsRequest pageToken */
                    pageToken?: (string|null);
                }

                /** Represents a ListIntentsRequest. */
                class ListIntentsRequest implements IListIntentsRequest {

                    /**
                     * Constructs a new ListIntentsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IListIntentsRequest);

                    /** ListIntentsRequest parent. */
                    public parent: string;

                    /** ListIntentsRequest languageCode. */
                    public languageCode: string;

                    /** ListIntentsRequest intentView. */
                    public intentView: (google.cloud.dialogflow.v2beta1.IntentView|keyof typeof google.cloud.dialogflow.v2beta1.IntentView);

                    /** ListIntentsRequest pageSize. */
                    public pageSize: number;

                    /** ListIntentsRequest pageToken. */
                    public pageToken: string;

                    /**
                     * Creates a new ListIntentsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListIntentsRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IListIntentsRequest): google.cloud.dialogflow.v2beta1.ListIntentsRequest;

                    /**
                     * Encodes the specified ListIntentsRequest message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.ListIntentsRequest.verify|verify} messages.
                     * @param message ListIntentsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IListIntentsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListIntentsRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.ListIntentsRequest.verify|verify} messages.
                     * @param message ListIntentsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IListIntentsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListIntentsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListIntentsRequest
                     * @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.cloud.dialogflow.v2beta1.ListIntentsRequest;

                    /**
                     * Decodes a ListIntentsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListIntentsRequest
                     * @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.cloud.dialogflow.v2beta1.ListIntentsRequest;

                    /**
                     * Verifies a ListIntentsRequest 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 ListIntentsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListIntentsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.ListIntentsRequest;

                    /**
                     * Creates a plain object from a ListIntentsRequest message. Also converts values to other types if specified.
                     * @param message ListIntentsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.ListIntentsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListIntentsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListIntentsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListIntentsResponse. */
                interface IListIntentsResponse {

                    /** ListIntentsResponse intents */
                    intents?: (google.cloud.dialogflow.v2beta1.IIntent[]|null);

                    /** ListIntentsResponse nextPageToken */
                    nextPageToken?: (string|null);
                }

                /** Represents a ListIntentsResponse. */
                class ListIntentsResponse implements IListIntentsResponse {

                    /**
                     * Constructs a new ListIntentsResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IListIntentsResponse);

                    /** ListIntentsResponse intents. */
                    public intents: google.cloud.dialogflow.v2beta1.IIntent[];

                    /** ListIntentsResponse nextPageToken. */
                    public nextPageToken: string;

                    /**
                     * Creates a new ListIntentsResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListIntentsResponse instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IListIntentsResponse): google.cloud.dialogflow.v2beta1.ListIntentsResponse;

                    /**
                     * Encodes the specified ListIntentsResponse message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.ListIntentsResponse.verify|verify} messages.
                     * @param message ListIntentsResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IListIntentsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListIntentsResponse message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.ListIntentsResponse.verify|verify} messages.
                     * @param message ListIntentsResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IListIntentsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListIntentsResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListIntentsResponse
                     * @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.cloud.dialogflow.v2beta1.ListIntentsResponse;

                    /**
                     * Decodes a ListIntentsResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListIntentsResponse
                     * @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.cloud.dialogflow.v2beta1.ListIntentsResponse;

                    /**
                     * Verifies a ListIntentsResponse 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 ListIntentsResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListIntentsResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.ListIntentsResponse;

                    /**
                     * Creates a plain object from a ListIntentsResponse message. Also converts values to other types if specified.
                     * @param message ListIntentsResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.ListIntentsResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListIntentsResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListIntentsResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetIntentRequest. */
                interface IGetIntentRequest {

                    /** GetIntentRequest name */
                    name?: (string|null);

                    /** GetIntentRequest languageCode */
                    languageCode?: (string|null);

                    /** GetIntentRequest intentView */
                    intentView?: (google.cloud.dialogflow.v2beta1.IntentView|keyof typeof google.cloud.dialogflow.v2beta1.IntentView|null);
                }

                /** Represents a GetIntentRequest. */
                class GetIntentRequest implements IGetIntentRequest {

                    /**
                     * Constructs a new GetIntentRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IGetIntentRequest);

                    /** GetIntentRequest name. */
                    public name: string;

                    /** GetIntentRequest languageCode. */
                    public languageCode: string;

                    /** GetIntentRequest intentView. */
                    public intentView: (google.cloud.dialogflow.v2beta1.IntentView|keyof typeof google.cloud.dialogflow.v2beta1.IntentView);

                    /**
                     * Creates a new GetIntentRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetIntentRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IGetIntentRequest): google.cloud.dialogflow.v2beta1.GetIntentRequest;

                    /**
                     * Encodes the specified GetIntentRequest message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.GetIntentRequest.verify|verify} messages.
                     * @param message GetIntentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IGetIntentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetIntentRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.GetIntentRequest.verify|verify} messages.
                     * @param message GetIntentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IGetIntentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetIntentRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetIntentRequest
                     * @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.cloud.dialogflow.v2beta1.GetIntentRequest;

                    /**
                     * Decodes a GetIntentRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetIntentRequest
                     * @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.cloud.dialogflow.v2beta1.GetIntentRequest;

                    /**
                     * Verifies a GetIntentRequest 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 GetIntentRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetIntentRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.GetIntentRequest;

                    /**
                     * Creates a plain object from a GetIntentRequest message. Also converts values to other types if specified.
                     * @param message GetIntentRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.GetIntentRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetIntentRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetIntentRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a CreateIntentRequest. */
                interface ICreateIntentRequest {

                    /** CreateIntentRequest parent */
                    parent?: (string|null);

                    /** CreateIntentRequest intent */
                    intent?: (google.cloud.dialogflow.v2beta1.IIntent|null);

                    /** CreateIntentRequest languageCode */
                    languageCode?: (string|null);

                    /** CreateIntentRequest intentView */
                    intentView?: (google.cloud.dialogflow.v2beta1.IntentView|keyof typeof google.cloud.dialogflow.v2beta1.IntentView|null);
                }

                /** Represents a CreateIntentRequest. */
                class CreateIntentRequest implements ICreateIntentRequest {

                    /**
                     * Constructs a new CreateIntentRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.ICreateIntentRequest);

                    /** CreateIntentRequest parent. */
                    public parent: string;

                    /** CreateIntentRequest intent. */
                    public intent?: (google.cloud.dialogflow.v2beta1.IIntent|null);

                    /** CreateIntentRequest languageCode. */
                    public languageCode: string;

                    /** CreateIntentRequest intentView. */
                    public intentView: (google.cloud.dialogflow.v2beta1.IntentView|keyof typeof google.cloud.dialogflow.v2beta1.IntentView);

                    /**
                     * Creates a new CreateIntentRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CreateIntentRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.ICreateIntentRequest): google.cloud.dialogflow.v2beta1.CreateIntentRequest;

                    /**
                     * Encodes the specified CreateIntentRequest message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.CreateIntentRequest.verify|verify} messages.
                     * @param message CreateIntentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.ICreateIntentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CreateIntentRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.CreateIntentRequest.verify|verify} messages.
                     * @param message CreateIntentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.ICreateIntentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CreateIntentRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CreateIntentRequest
                     * @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.cloud.dialogflow.v2beta1.CreateIntentRequest;

                    /**
                     * Decodes a CreateIntentRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CreateIntentRequest
                     * @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.cloud.dialogflow.v2beta1.CreateIntentRequest;

                    /**
                     * Verifies a CreateIntentRequest 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 CreateIntentRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CreateIntentRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.CreateIntentRequest;

                    /**
                     * Creates a plain object from a CreateIntentRequest message. Also converts values to other types if specified.
                     * @param message CreateIntentRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.CreateIntentRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CreateIntentRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CreateIntentRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an UpdateIntentRequest. */
                interface IUpdateIntentRequest {

                    /** UpdateIntentRequest intent */
                    intent?: (google.cloud.dialogflow.v2beta1.IIntent|null);

                    /** UpdateIntentRequest languageCode */
                    languageCode?: (string|null);

                    /** UpdateIntentRequest updateMask */
                    updateMask?: (google.protobuf.IFieldMask|null);

                    /** UpdateIntentRequest intentView */
                    intentView?: (google.cloud.dialogflow.v2beta1.IntentView|keyof typeof google.cloud.dialogflow.v2beta1.IntentView|null);
                }

                /** Represents an UpdateIntentRequest. */
                class UpdateIntentRequest implements IUpdateIntentRequest {

                    /**
                     * Constructs a new UpdateIntentRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IUpdateIntentRequest);

                    /** UpdateIntentRequest intent. */
                    public intent?: (google.cloud.dialogflow.v2beta1.IIntent|null);

                    /** UpdateIntentRequest languageCode. */
                    public languageCode: string;

                    /** UpdateIntentRequest updateMask. */
                    public updateMask?: (google.protobuf.IFieldMask|null);

                    /** UpdateIntentRequest intentView. */
                    public intentView: (google.cloud.dialogflow.v2beta1.IntentView|keyof typeof google.cloud.dialogflow.v2beta1.IntentView);

                    /**
                     * Creates a new UpdateIntentRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UpdateIntentRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IUpdateIntentRequest): google.cloud.dialogflow.v2beta1.UpdateIntentRequest;

                    /**
                     * Encodes the specified UpdateIntentRequest message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.UpdateIntentRequest.verify|verify} messages.
                     * @param message UpdateIntentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IUpdateIntentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified UpdateIntentRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.UpdateIntentRequest.verify|verify} messages.
                     * @param message UpdateIntentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IUpdateIntentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an UpdateIntentRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns UpdateIntentRequest
                     * @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.cloud.dialogflow.v2beta1.UpdateIntentRequest;

                    /**
                     * Decodes an UpdateIntentRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns UpdateIntentRequest
                     * @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.cloud.dialogflow.v2beta1.UpdateIntentRequest;

                    /**
                     * Verifies an UpdateIntentRequest 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 UpdateIntentRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UpdateIntentRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.UpdateIntentRequest;

                    /**
                     * Creates a plain object from an UpdateIntentRequest message. Also converts values to other types if specified.
                     * @param message UpdateIntentRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.UpdateIntentRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this UpdateIntentRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for UpdateIntentRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteIntentRequest. */
                interface IDeleteIntentRequest {

                    /** DeleteIntentRequest name */
                    name?: (string|null);
                }

                /** Represents a DeleteIntentRequest. */
                class DeleteIntentRequest implements IDeleteIntentRequest {

                    /**
                     * Constructs a new DeleteIntentRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IDeleteIntentRequest);

                    /** DeleteIntentRequest name. */
                    public name: string;

                    /**
                     * Creates a new DeleteIntentRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteIntentRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IDeleteIntentRequest): google.cloud.dialogflow.v2beta1.DeleteIntentRequest;

                    /**
                     * Encodes the specified DeleteIntentRequest message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.DeleteIntentRequest.verify|verify} messages.
                     * @param message DeleteIntentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IDeleteIntentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteIntentRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.DeleteIntentRequest.verify|verify} messages.
                     * @param message DeleteIntentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IDeleteIntentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteIntentRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteIntentRequest
                     * @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.cloud.dialogflow.v2beta1.DeleteIntentRequest;

                    /**
                     * Decodes a DeleteIntentRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteIntentRequest
                     * @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.cloud.dialogflow.v2beta1.DeleteIntentRequest;

                    /**
                     * Verifies a DeleteIntentRequest 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 DeleteIntentRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteIntentRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.DeleteIntentRequest;

                    /**
                     * Creates a plain object from a DeleteIntentRequest message. Also converts values to other types if specified.
                     * @param message DeleteIntentRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.DeleteIntentRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteIntentRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteIntentRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a BatchUpdateIntentsRequest. */
                interface IBatchUpdateIntentsRequest {

                    /** BatchUpdateIntentsRequest parent */
                    parent?: (string|null);

                    /** BatchUpdateIntentsRequest intentBatchUri */
                    intentBatchUri?: (string|null);

                    /** BatchUpdateIntentsRequest intentBatchInline */
                    intentBatchInline?: (google.cloud.dialogflow.v2beta1.IIntentBatch|null);

                    /** BatchUpdateIntentsRequest languageCode */
                    languageCode?: (string|null);

                    /** BatchUpdateIntentsRequest updateMask */
                    updateMask?: (google.protobuf.IFieldMask|null);

                    /** BatchUpdateIntentsRequest intentView */
                    intentView?: (google.cloud.dialogflow.v2beta1.IntentView|keyof typeof google.cloud.dialogflow.v2beta1.IntentView|null);
                }

                /** Represents a BatchUpdateIntentsRequest. */
                class BatchUpdateIntentsRequest implements IBatchUpdateIntentsRequest {

                    /**
                     * Constructs a new BatchUpdateIntentsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IBatchUpdateIntentsRequest);

                    /** BatchUpdateIntentsRequest parent. */
                    public parent: string;

                    /** BatchUpdateIntentsRequest intentBatchUri. */
                    public intentBatchUri?: (string|null);

                    /** BatchUpdateIntentsRequest intentBatchInline. */
                    public intentBatchInline?: (google.cloud.dialogflow.v2beta1.IIntentBatch|null);

                    /** BatchUpdateIntentsRequest languageCode. */
                    public languageCode: string;

                    /** BatchUpdateIntentsRequest updateMask. */
                    public updateMask?: (google.protobuf.IFieldMask|null);

                    /** BatchUpdateIntentsRequest intentView. */
                    public intentView: (google.cloud.dialogflow.v2beta1.IntentView|keyof typeof google.cloud.dialogflow.v2beta1.IntentView);

                    /** BatchUpdateIntentsRequest intentBatch. */
                    public intentBatch?: ("intentBatchUri"|"intentBatchInline");

                    /**
                     * Creates a new BatchUpdateIntentsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BatchUpdateIntentsRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IBatchUpdateIntentsRequest): google.cloud.dialogflow.v2beta1.BatchUpdateIntentsRequest;

                    /**
                     * Encodes the specified BatchUpdateIntentsRequest message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.BatchUpdateIntentsRequest.verify|verify} messages.
                     * @param message BatchUpdateIntentsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IBatchUpdateIntentsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BatchUpdateIntentsRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.BatchUpdateIntentsRequest.verify|verify} messages.
                     * @param message BatchUpdateIntentsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IBatchUpdateIntentsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BatchUpdateIntentsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BatchUpdateIntentsRequest
                     * @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.cloud.dialogflow.v2beta1.BatchUpdateIntentsRequest;

                    /**
                     * Decodes a BatchUpdateIntentsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BatchUpdateIntentsRequest
                     * @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.cloud.dialogflow.v2beta1.BatchUpdateIntentsRequest;

                    /**
                     * Verifies a BatchUpdateIntentsRequest 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 BatchUpdateIntentsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BatchUpdateIntentsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.BatchUpdateIntentsRequest;

                    /**
                     * Creates a plain object from a BatchUpdateIntentsRequest message. Also converts values to other types if specified.
                     * @param message BatchUpdateIntentsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.BatchUpdateIntentsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BatchUpdateIntentsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BatchUpdateIntentsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a BatchUpdateIntentsResponse. */
                interface IBatchUpdateIntentsResponse {

                    /** BatchUpdateIntentsResponse intents */
                    intents?: (google.cloud.dialogflow.v2beta1.IIntent[]|null);
                }

                /** Represents a BatchUpdateIntentsResponse. */
                class BatchUpdateIntentsResponse implements IBatchUpdateIntentsResponse {

                    /**
                     * Constructs a new BatchUpdateIntentsResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IBatchUpdateIntentsResponse);

                    /** BatchUpdateIntentsResponse intents. */
                    public intents: google.cloud.dialogflow.v2beta1.IIntent[];

                    /**
                     * Creates a new BatchUpdateIntentsResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BatchUpdateIntentsResponse instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IBatchUpdateIntentsResponse): google.cloud.dialogflow.v2beta1.BatchUpdateIntentsResponse;

                    /**
                     * Encodes the specified BatchUpdateIntentsResponse message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.BatchUpdateIntentsResponse.verify|verify} messages.
                     * @param message BatchUpdateIntentsResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IBatchUpdateIntentsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BatchUpdateIntentsResponse message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.BatchUpdateIntentsResponse.verify|verify} messages.
                     * @param message BatchUpdateIntentsResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IBatchUpdateIntentsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BatchUpdateIntentsResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BatchUpdateIntentsResponse
                     * @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.cloud.dialogflow.v2beta1.BatchUpdateIntentsResponse;

                    /**
                     * Decodes a BatchUpdateIntentsResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BatchUpdateIntentsResponse
                     * @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.cloud.dialogflow.v2beta1.BatchUpdateIntentsResponse;

                    /**
                     * Verifies a BatchUpdateIntentsResponse 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 BatchUpdateIntentsResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BatchUpdateIntentsResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.BatchUpdateIntentsResponse;

                    /**
                     * Creates a plain object from a BatchUpdateIntentsResponse message. Also converts values to other types if specified.
                     * @param message BatchUpdateIntentsResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.BatchUpdateIntentsResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BatchUpdateIntentsResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BatchUpdateIntentsResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a BatchDeleteIntentsRequest. */
                interface IBatchDeleteIntentsRequest {

                    /** BatchDeleteIntentsRequest parent */
                    parent?: (string|null);

                    /** BatchDeleteIntentsRequest intents */
                    intents?: (google.cloud.dialogflow.v2beta1.IIntent[]|null);
                }

                /** Represents a BatchDeleteIntentsRequest. */
                class BatchDeleteIntentsRequest implements IBatchDeleteIntentsRequest {

                    /**
                     * Constructs a new BatchDeleteIntentsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IBatchDeleteIntentsRequest);

                    /** BatchDeleteIntentsRequest parent. */
                    public parent: string;

                    /** BatchDeleteIntentsRequest intents. */
                    public intents: google.cloud.dialogflow.v2beta1.IIntent[];

                    /**
                     * Creates a new BatchDeleteIntentsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BatchDeleteIntentsRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IBatchDeleteIntentsRequest): google.cloud.dialogflow.v2beta1.BatchDeleteIntentsRequest;

                    /**
                     * Encodes the specified BatchDeleteIntentsRequest message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.BatchDeleteIntentsRequest.verify|verify} messages.
                     * @param message BatchDeleteIntentsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IBatchDeleteIntentsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BatchDeleteIntentsRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.BatchDeleteIntentsRequest.verify|verify} messages.
                     * @param message BatchDeleteIntentsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IBatchDeleteIntentsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BatchDeleteIntentsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BatchDeleteIntentsRequest
                     * @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.cloud.dialogflow.v2beta1.BatchDeleteIntentsRequest;

                    /**
                     * Decodes a BatchDeleteIntentsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BatchDeleteIntentsRequest
                     * @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.cloud.dialogflow.v2beta1.BatchDeleteIntentsRequest;

                    /**
                     * Verifies a BatchDeleteIntentsRequest 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 BatchDeleteIntentsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BatchDeleteIntentsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.BatchDeleteIntentsRequest;

                    /**
                     * Creates a plain object from a BatchDeleteIntentsRequest message. Also converts values to other types if specified.
                     * @param message BatchDeleteIntentsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.BatchDeleteIntentsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BatchDeleteIntentsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BatchDeleteIntentsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** IntentView enum. */
                enum IntentView {
                    INTENT_VIEW_UNSPECIFIED = 0,
                    INTENT_VIEW_FULL = 1
                }

                /** Properties of an IntentBatch. */
                interface IIntentBatch {

                    /** IntentBatch intents */
                    intents?: (google.cloud.dialogflow.v2beta1.IIntent[]|null);
                }

                /** Represents an IntentBatch. */
                class IntentBatch implements IIntentBatch {

                    /**
                     * Constructs a new IntentBatch.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IIntentBatch);

                    /** IntentBatch intents. */
                    public intents: google.cloud.dialogflow.v2beta1.IIntent[];

                    /**
                     * Creates a new IntentBatch instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns IntentBatch instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IIntentBatch): google.cloud.dialogflow.v2beta1.IntentBatch;

                    /**
                     * Encodes the specified IntentBatch message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.IntentBatch.verify|verify} messages.
                     * @param message IntentBatch message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IIntentBatch, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified IntentBatch message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.IntentBatch.verify|verify} messages.
                     * @param message IntentBatch message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IIntentBatch, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an IntentBatch message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns IntentBatch
                     * @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.cloud.dialogflow.v2beta1.IntentBatch;

                    /**
                     * Decodes an IntentBatch message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns IntentBatch
                     * @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.cloud.dialogflow.v2beta1.IntentBatch;

                    /**
                     * Verifies an IntentBatch 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 IntentBatch message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns IntentBatch
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.IntentBatch;

                    /**
                     * Creates a plain object from an IntentBatch message. Also converts values to other types if specified.
                     * @param message IntentBatch
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.IntentBatch, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this IntentBatch to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for IntentBatch
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Represents a SessionEntityTypes */
                class SessionEntityTypes extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new SessionEntityTypes 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 SessionEntityTypes 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): SessionEntityTypes;

                    /**
                     * Calls ListSessionEntityTypes.
                     * @param request ListSessionEntityTypesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ListSessionEntityTypesResponse
                     */
                    public listSessionEntityTypes(request: google.cloud.dialogflow.v2beta1.IListSessionEntityTypesRequest, callback: google.cloud.dialogflow.v2beta1.SessionEntityTypes.ListSessionEntityTypesCallback): void;

                    /**
                     * Calls ListSessionEntityTypes.
                     * @param request ListSessionEntityTypesRequest message or plain object
                     * @returns Promise
                     */
                    public listSessionEntityTypes(request: google.cloud.dialogflow.v2beta1.IListSessionEntityTypesRequest): Promise<google.cloud.dialogflow.v2beta1.ListSessionEntityTypesResponse>;

                    /**
                     * Calls GetSessionEntityType.
                     * @param request GetSessionEntityTypeRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and SessionEntityType
                     */
                    public getSessionEntityType(request: google.cloud.dialogflow.v2beta1.IGetSessionEntityTypeRequest, callback: google.cloud.dialogflow.v2beta1.SessionEntityTypes.GetSessionEntityTypeCallback): void;

                    /**
                     * Calls GetSessionEntityType.
                     * @param request GetSessionEntityTypeRequest message or plain object
                     * @returns Promise
                     */
                    public getSessionEntityType(request: google.cloud.dialogflow.v2beta1.IGetSessionEntityTypeRequest): Promise<google.cloud.dialogflow.v2beta1.SessionEntityType>;

                    /**
                     * Calls CreateSessionEntityType.
                     * @param request CreateSessionEntityTypeRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and SessionEntityType
                     */
                    public createSessionEntityType(request: google.cloud.dialogflow.v2beta1.ICreateSessionEntityTypeRequest, callback: google.cloud.dialogflow.v2beta1.SessionEntityTypes.CreateSessionEntityTypeCallback): void;

                    /**
                     * Calls CreateSessionEntityType.
                     * @param request CreateSessionEntityTypeRequest message or plain object
                     * @returns Promise
                     */
                    public createSessionEntityType(request: google.cloud.dialogflow.v2beta1.ICreateSessionEntityTypeRequest): Promise<google.cloud.dialogflow.v2beta1.SessionEntityType>;

                    /**
                     * Calls UpdateSessionEntityType.
                     * @param request UpdateSessionEntityTypeRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and SessionEntityType
                     */
                    public updateSessionEntityType(request: google.cloud.dialogflow.v2beta1.IUpdateSessionEntityTypeRequest, callback: google.cloud.dialogflow.v2beta1.SessionEntityTypes.UpdateSessionEntityTypeCallback): void;

                    /**
                     * Calls UpdateSessionEntityType.
                     * @param request UpdateSessionEntityTypeRequest message or plain object
                     * @returns Promise
                     */
                    public updateSessionEntityType(request: google.cloud.dialogflow.v2beta1.IUpdateSessionEntityTypeRequest): Promise<google.cloud.dialogflow.v2beta1.SessionEntityType>;

                    /**
                     * Calls DeleteSessionEntityType.
                     * @param request DeleteSessionEntityTypeRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Empty
                     */
                    public deleteSessionEntityType(request: google.cloud.dialogflow.v2beta1.IDeleteSessionEntityTypeRequest, callback: google.cloud.dialogflow.v2beta1.SessionEntityTypes.DeleteSessionEntityTypeCallback): void;

                    /**
                     * Calls DeleteSessionEntityType.
                     * @param request DeleteSessionEntityTypeRequest message or plain object
                     * @returns Promise
                     */
                    public deleteSessionEntityType(request: google.cloud.dialogflow.v2beta1.IDeleteSessionEntityTypeRequest): Promise<google.protobuf.Empty>;
                }

                namespace SessionEntityTypes {

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2beta1.SessionEntityTypes|listSessionEntityTypes}.
                     * @param error Error, if any
                     * @param [response] ListSessionEntityTypesResponse
                     */
                    type ListSessionEntityTypesCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2beta1.ListSessionEntityTypesResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2beta1.SessionEntityTypes|getSessionEntityType}.
                     * @param error Error, if any
                     * @param [response] SessionEntityType
                     */
                    type GetSessionEntityTypeCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2beta1.SessionEntityType) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2beta1.SessionEntityTypes|createSessionEntityType}.
                     * @param error Error, if any
                     * @param [response] SessionEntityType
                     */
                    type CreateSessionEntityTypeCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2beta1.SessionEntityType) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2beta1.SessionEntityTypes|updateSessionEntityType}.
                     * @param error Error, if any
                     * @param [response] SessionEntityType
                     */
                    type UpdateSessionEntityTypeCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2beta1.SessionEntityType) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2beta1.SessionEntityTypes|deleteSessionEntityType}.
                     * @param error Error, if any
                     * @param [response] Empty
                     */
                    type DeleteSessionEntityTypeCallback = (error: (Error|null), response?: google.protobuf.Empty) => void;
                }

                /** Properties of a SessionEntityType. */
                interface ISessionEntityType {

                    /** SessionEntityType name */
                    name?: (string|null);

                    /** SessionEntityType entityOverrideMode */
                    entityOverrideMode?: (google.cloud.dialogflow.v2beta1.SessionEntityType.EntityOverrideMode|keyof typeof google.cloud.dialogflow.v2beta1.SessionEntityType.EntityOverrideMode|null);

                    /** SessionEntityType entities */
                    entities?: (google.cloud.dialogflow.v2beta1.EntityType.IEntity[]|null);
                }

                /** Represents a SessionEntityType. */
                class SessionEntityType implements ISessionEntityType {

                    /**
                     * Constructs a new SessionEntityType.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.ISessionEntityType);

                    /** SessionEntityType name. */
                    public name: string;

                    /** SessionEntityType entityOverrideMode. */
                    public entityOverrideMode: (google.cloud.dialogflow.v2beta1.SessionEntityType.EntityOverrideMode|keyof typeof google.cloud.dialogflow.v2beta1.SessionEntityType.EntityOverrideMode);

                    /** SessionEntityType entities. */
                    public entities: google.cloud.dialogflow.v2beta1.EntityType.IEntity[];

                    /**
                     * Creates a new SessionEntityType instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SessionEntityType instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.ISessionEntityType): google.cloud.dialogflow.v2beta1.SessionEntityType;

                    /**
                     * Encodes the specified SessionEntityType message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.SessionEntityType.verify|verify} messages.
                     * @param message SessionEntityType message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.ISessionEntityType, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SessionEntityType message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.SessionEntityType.verify|verify} messages.
                     * @param message SessionEntityType message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.ISessionEntityType, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SessionEntityType message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SessionEntityType
                     * @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.cloud.dialogflow.v2beta1.SessionEntityType;

                    /**
                     * Decodes a SessionEntityType message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SessionEntityType
                     * @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.cloud.dialogflow.v2beta1.SessionEntityType;

                    /**
                     * Verifies a SessionEntityType 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 SessionEntityType message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SessionEntityType
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.SessionEntityType;

                    /**
                     * Creates a plain object from a SessionEntityType message. Also converts values to other types if specified.
                     * @param message SessionEntityType
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.SessionEntityType, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SessionEntityType to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SessionEntityType
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace SessionEntityType {

                    /** EntityOverrideMode enum. */
                    enum EntityOverrideMode {
                        ENTITY_OVERRIDE_MODE_UNSPECIFIED = 0,
                        ENTITY_OVERRIDE_MODE_OVERRIDE = 1,
                        ENTITY_OVERRIDE_MODE_SUPPLEMENT = 2
                    }
                }

                /** Properties of a ListSessionEntityTypesRequest. */
                interface IListSessionEntityTypesRequest {

                    /** ListSessionEntityTypesRequest parent */
                    parent?: (string|null);

                    /** ListSessionEntityTypesRequest pageSize */
                    pageSize?: (number|null);

                    /** ListSessionEntityTypesRequest pageToken */
                    pageToken?: (string|null);
                }

                /** Represents a ListSessionEntityTypesRequest. */
                class ListSessionEntityTypesRequest implements IListSessionEntityTypesRequest {

                    /**
                     * Constructs a new ListSessionEntityTypesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IListSessionEntityTypesRequest);

                    /** ListSessionEntityTypesRequest parent. */
                    public parent: string;

                    /** ListSessionEntityTypesRequest pageSize. */
                    public pageSize: number;

                    /** ListSessionEntityTypesRequest pageToken. */
                    public pageToken: string;

                    /**
                     * Creates a new ListSessionEntityTypesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListSessionEntityTypesRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IListSessionEntityTypesRequest): google.cloud.dialogflow.v2beta1.ListSessionEntityTypesRequest;

                    /**
                     * Encodes the specified ListSessionEntityTypesRequest message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.ListSessionEntityTypesRequest.verify|verify} messages.
                     * @param message ListSessionEntityTypesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IListSessionEntityTypesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListSessionEntityTypesRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.ListSessionEntityTypesRequest.verify|verify} messages.
                     * @param message ListSessionEntityTypesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IListSessionEntityTypesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListSessionEntityTypesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListSessionEntityTypesRequest
                     * @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.cloud.dialogflow.v2beta1.ListSessionEntityTypesRequest;

                    /**
                     * Decodes a ListSessionEntityTypesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListSessionEntityTypesRequest
                     * @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.cloud.dialogflow.v2beta1.ListSessionEntityTypesRequest;

                    /**
                     * Verifies a ListSessionEntityTypesRequest 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 ListSessionEntityTypesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListSessionEntityTypesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.ListSessionEntityTypesRequest;

                    /**
                     * Creates a plain object from a ListSessionEntityTypesRequest message. Also converts values to other types if specified.
                     * @param message ListSessionEntityTypesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.ListSessionEntityTypesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListSessionEntityTypesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListSessionEntityTypesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListSessionEntityTypesResponse. */
                interface IListSessionEntityTypesResponse {

                    /** ListSessionEntityTypesResponse sessionEntityTypes */
                    sessionEntityTypes?: (google.cloud.dialogflow.v2beta1.ISessionEntityType[]|null);

                    /** ListSessionEntityTypesResponse nextPageToken */
                    nextPageToken?: (string|null);
                }

                /** Represents a ListSessionEntityTypesResponse. */
                class ListSessionEntityTypesResponse implements IListSessionEntityTypesResponse {

                    /**
                     * Constructs a new ListSessionEntityTypesResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IListSessionEntityTypesResponse);

                    /** ListSessionEntityTypesResponse sessionEntityTypes. */
                    public sessionEntityTypes: google.cloud.dialogflow.v2beta1.ISessionEntityType[];

                    /** ListSessionEntityTypesResponse nextPageToken. */
                    public nextPageToken: string;

                    /**
                     * Creates a new ListSessionEntityTypesResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListSessionEntityTypesResponse instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IListSessionEntityTypesResponse): google.cloud.dialogflow.v2beta1.ListSessionEntityTypesResponse;

                    /**
                     * Encodes the specified ListSessionEntityTypesResponse message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.ListSessionEntityTypesResponse.verify|verify} messages.
                     * @param message ListSessionEntityTypesResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IListSessionEntityTypesResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListSessionEntityTypesResponse message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.ListSessionEntityTypesResponse.verify|verify} messages.
                     * @param message ListSessionEntityTypesResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IListSessionEntityTypesResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListSessionEntityTypesResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListSessionEntityTypesResponse
                     * @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.cloud.dialogflow.v2beta1.ListSessionEntityTypesResponse;

                    /**
                     * Decodes a ListSessionEntityTypesResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListSessionEntityTypesResponse
                     * @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.cloud.dialogflow.v2beta1.ListSessionEntityTypesResponse;

                    /**
                     * Verifies a ListSessionEntityTypesResponse 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 ListSessionEntityTypesResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListSessionEntityTypesResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.ListSessionEntityTypesResponse;

                    /**
                     * Creates a plain object from a ListSessionEntityTypesResponse message. Also converts values to other types if specified.
                     * @param message ListSessionEntityTypesResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.ListSessionEntityTypesResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListSessionEntityTypesResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListSessionEntityTypesResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetSessionEntityTypeRequest. */
                interface IGetSessionEntityTypeRequest {

                    /** GetSessionEntityTypeRequest name */
                    name?: (string|null);
                }

                /** Represents a GetSessionEntityTypeRequest. */
                class GetSessionEntityTypeRequest implements IGetSessionEntityTypeRequest {

                    /**
                     * Constructs a new GetSessionEntityTypeRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IGetSessionEntityTypeRequest);

                    /** GetSessionEntityTypeRequest name. */
                    public name: string;

                    /**
                     * Creates a new GetSessionEntityTypeRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetSessionEntityTypeRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IGetSessionEntityTypeRequest): google.cloud.dialogflow.v2beta1.GetSessionEntityTypeRequest;

                    /**
                     * Encodes the specified GetSessionEntityTypeRequest message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.GetSessionEntityTypeRequest.verify|verify} messages.
                     * @param message GetSessionEntityTypeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IGetSessionEntityTypeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetSessionEntityTypeRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.GetSessionEntityTypeRequest.verify|verify} messages.
                     * @param message GetSessionEntityTypeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IGetSessionEntityTypeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetSessionEntityTypeRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetSessionEntityTypeRequest
                     * @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.cloud.dialogflow.v2beta1.GetSessionEntityTypeRequest;

                    /**
                     * Decodes a GetSessionEntityTypeRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetSessionEntityTypeRequest
                     * @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.cloud.dialogflow.v2beta1.GetSessionEntityTypeRequest;

                    /**
                     * Verifies a GetSessionEntityTypeRequest 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 GetSessionEntityTypeRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetSessionEntityTypeRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.GetSessionEntityTypeRequest;

                    /**
                     * Creates a plain object from a GetSessionEntityTypeRequest message. Also converts values to other types if specified.
                     * @param message GetSessionEntityTypeRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.GetSessionEntityTypeRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetSessionEntityTypeRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetSessionEntityTypeRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a CreateSessionEntityTypeRequest. */
                interface ICreateSessionEntityTypeRequest {

                    /** CreateSessionEntityTypeRequest parent */
                    parent?: (string|null);

                    /** CreateSessionEntityTypeRequest sessionEntityType */
                    sessionEntityType?: (google.cloud.dialogflow.v2beta1.ISessionEntityType|null);
                }

                /** Represents a CreateSessionEntityTypeRequest. */
                class CreateSessionEntityTypeRequest implements ICreateSessionEntityTypeRequest {

                    /**
                     * Constructs a new CreateSessionEntityTypeRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.ICreateSessionEntityTypeRequest);

                    /** CreateSessionEntityTypeRequest parent. */
                    public parent: string;

                    /** CreateSessionEntityTypeRequest sessionEntityType. */
                    public sessionEntityType?: (google.cloud.dialogflow.v2beta1.ISessionEntityType|null);

                    /**
                     * Creates a new CreateSessionEntityTypeRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CreateSessionEntityTypeRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.ICreateSessionEntityTypeRequest): google.cloud.dialogflow.v2beta1.CreateSessionEntityTypeRequest;

                    /**
                     * Encodes the specified CreateSessionEntityTypeRequest message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.CreateSessionEntityTypeRequest.verify|verify} messages.
                     * @param message CreateSessionEntityTypeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.ICreateSessionEntityTypeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CreateSessionEntityTypeRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.CreateSessionEntityTypeRequest.verify|verify} messages.
                     * @param message CreateSessionEntityTypeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.ICreateSessionEntityTypeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CreateSessionEntityTypeRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CreateSessionEntityTypeRequest
                     * @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.cloud.dialogflow.v2beta1.CreateSessionEntityTypeRequest;

                    /**
                     * Decodes a CreateSessionEntityTypeRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CreateSessionEntityTypeRequest
                     * @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.cloud.dialogflow.v2beta1.CreateSessionEntityTypeRequest;

                    /**
                     * Verifies a CreateSessionEntityTypeRequest 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 CreateSessionEntityTypeRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CreateSessionEntityTypeRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.CreateSessionEntityTypeRequest;

                    /**
                     * Creates a plain object from a CreateSessionEntityTypeRequest message. Also converts values to other types if specified.
                     * @param message CreateSessionEntityTypeRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.CreateSessionEntityTypeRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CreateSessionEntityTypeRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CreateSessionEntityTypeRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an UpdateSessionEntityTypeRequest. */
                interface IUpdateSessionEntityTypeRequest {

                    /** UpdateSessionEntityTypeRequest sessionEntityType */
                    sessionEntityType?: (google.cloud.dialogflow.v2beta1.ISessionEntityType|null);

                    /** UpdateSessionEntityTypeRequest updateMask */
                    updateMask?: (google.protobuf.IFieldMask|null);
                }

                /** Represents an UpdateSessionEntityTypeRequest. */
                class UpdateSessionEntityTypeRequest implements IUpdateSessionEntityTypeRequest {

                    /**
                     * Constructs a new UpdateSessionEntityTypeRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IUpdateSessionEntityTypeRequest);

                    /** UpdateSessionEntityTypeRequest sessionEntityType. */
                    public sessionEntityType?: (google.cloud.dialogflow.v2beta1.ISessionEntityType|null);

                    /** UpdateSessionEntityTypeRequest updateMask. */
                    public updateMask?: (google.protobuf.IFieldMask|null);

                    /**
                     * Creates a new UpdateSessionEntityTypeRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UpdateSessionEntityTypeRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IUpdateSessionEntityTypeRequest): google.cloud.dialogflow.v2beta1.UpdateSessionEntityTypeRequest;

                    /**
                     * Encodes the specified UpdateSessionEntityTypeRequest message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.UpdateSessionEntityTypeRequest.verify|verify} messages.
                     * @param message UpdateSessionEntityTypeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IUpdateSessionEntityTypeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified UpdateSessionEntityTypeRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.UpdateSessionEntityTypeRequest.verify|verify} messages.
                     * @param message UpdateSessionEntityTypeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IUpdateSessionEntityTypeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an UpdateSessionEntityTypeRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns UpdateSessionEntityTypeRequest
                     * @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.cloud.dialogflow.v2beta1.UpdateSessionEntityTypeRequest;

                    /**
                     * Decodes an UpdateSessionEntityTypeRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns UpdateSessionEntityTypeRequest
                     * @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.cloud.dialogflow.v2beta1.UpdateSessionEntityTypeRequest;

                    /**
                     * Verifies an UpdateSessionEntityTypeRequest 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 UpdateSessionEntityTypeRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UpdateSessionEntityTypeRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.UpdateSessionEntityTypeRequest;

                    /**
                     * Creates a plain object from an UpdateSessionEntityTypeRequest message. Also converts values to other types if specified.
                     * @param message UpdateSessionEntityTypeRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.UpdateSessionEntityTypeRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this UpdateSessionEntityTypeRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for UpdateSessionEntityTypeRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteSessionEntityTypeRequest. */
                interface IDeleteSessionEntityTypeRequest {

                    /** DeleteSessionEntityTypeRequest name */
                    name?: (string|null);
                }

                /** Represents a DeleteSessionEntityTypeRequest. */
                class DeleteSessionEntityTypeRequest implements IDeleteSessionEntityTypeRequest {

                    /**
                     * Constructs a new DeleteSessionEntityTypeRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IDeleteSessionEntityTypeRequest);

                    /** DeleteSessionEntityTypeRequest name. */
                    public name: string;

                    /**
                     * Creates a new DeleteSessionEntityTypeRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteSessionEntityTypeRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IDeleteSessionEntityTypeRequest): google.cloud.dialogflow.v2beta1.DeleteSessionEntityTypeRequest;

                    /**
                     * Encodes the specified DeleteSessionEntityTypeRequest message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.DeleteSessionEntityTypeRequest.verify|verify} messages.
                     * @param message DeleteSessionEntityTypeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IDeleteSessionEntityTypeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteSessionEntityTypeRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.DeleteSessionEntityTypeRequest.verify|verify} messages.
                     * @param message DeleteSessionEntityTypeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IDeleteSessionEntityTypeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteSessionEntityTypeRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteSessionEntityTypeRequest
                     * @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.cloud.dialogflow.v2beta1.DeleteSessionEntityTypeRequest;

                    /**
                     * Decodes a DeleteSessionEntityTypeRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteSessionEntityTypeRequest
                     * @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.cloud.dialogflow.v2beta1.DeleteSessionEntityTypeRequest;

                    /**
                     * Verifies a DeleteSessionEntityTypeRequest 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 DeleteSessionEntityTypeRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteSessionEntityTypeRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.DeleteSessionEntityTypeRequest;

                    /**
                     * Creates a plain object from a DeleteSessionEntityTypeRequest message. Also converts values to other types if specified.
                     * @param message DeleteSessionEntityTypeRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.DeleteSessionEntityTypeRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteSessionEntityTypeRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteSessionEntityTypeRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Represents an EntityTypes */
                class EntityTypes extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new EntityTypes 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 EntityTypes 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): EntityTypes;

                    /**
                     * Calls ListEntityTypes.
                     * @param request ListEntityTypesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ListEntityTypesResponse
                     */
                    public listEntityTypes(request: google.cloud.dialogflow.v2beta1.IListEntityTypesRequest, callback: google.cloud.dialogflow.v2beta1.EntityTypes.ListEntityTypesCallback): void;

                    /**
                     * Calls ListEntityTypes.
                     * @param request ListEntityTypesRequest message or plain object
                     * @returns Promise
                     */
                    public listEntityTypes(request: google.cloud.dialogflow.v2beta1.IListEntityTypesRequest): Promise<google.cloud.dialogflow.v2beta1.ListEntityTypesResponse>;

                    /**
                     * Calls GetEntityType.
                     * @param request GetEntityTypeRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and EntityType
                     */
                    public getEntityType(request: google.cloud.dialogflow.v2beta1.IGetEntityTypeRequest, callback: google.cloud.dialogflow.v2beta1.EntityTypes.GetEntityTypeCallback): void;

                    /**
                     * Calls GetEntityType.
                     * @param request GetEntityTypeRequest message or plain object
                     * @returns Promise
                     */
                    public getEntityType(request: google.cloud.dialogflow.v2beta1.IGetEntityTypeRequest): Promise<google.cloud.dialogflow.v2beta1.EntityType>;

                    /**
                     * Calls CreateEntityType.
                     * @param request CreateEntityTypeRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and EntityType
                     */
                    public createEntityType(request: google.cloud.dialogflow.v2beta1.ICreateEntityTypeRequest, callback: google.cloud.dialogflow.v2beta1.EntityTypes.CreateEntityTypeCallback): void;

                    /**
                     * Calls CreateEntityType.
                     * @param request CreateEntityTypeRequest message or plain object
                     * @returns Promise
                     */
                    public createEntityType(request: google.cloud.dialogflow.v2beta1.ICreateEntityTypeRequest): Promise<google.cloud.dialogflow.v2beta1.EntityType>;

                    /**
                     * Calls UpdateEntityType.
                     * @param request UpdateEntityTypeRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and EntityType
                     */
                    public updateEntityType(request: google.cloud.dialogflow.v2beta1.IUpdateEntityTypeRequest, callback: google.cloud.dialogflow.v2beta1.EntityTypes.UpdateEntityTypeCallback): void;

                    /**
                     * Calls UpdateEntityType.
                     * @param request UpdateEntityTypeRequest message or plain object
                     * @returns Promise
                     */
                    public updateEntityType(request: google.cloud.dialogflow.v2beta1.IUpdateEntityTypeRequest): Promise<google.cloud.dialogflow.v2beta1.EntityType>;

                    /**
                     * Calls DeleteEntityType.
                     * @param request DeleteEntityTypeRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Empty
                     */
                    public deleteEntityType(request: google.cloud.dialogflow.v2beta1.IDeleteEntityTypeRequest, callback: google.cloud.dialogflow.v2beta1.EntityTypes.DeleteEntityTypeCallback): void;

                    /**
                     * Calls DeleteEntityType.
                     * @param request DeleteEntityTypeRequest message or plain object
                     * @returns Promise
                     */
                    public deleteEntityType(request: google.cloud.dialogflow.v2beta1.IDeleteEntityTypeRequest): Promise<google.protobuf.Empty>;

                    /**
                     * Calls BatchUpdateEntityTypes.
                     * @param request BatchUpdateEntityTypesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public batchUpdateEntityTypes(request: google.cloud.dialogflow.v2beta1.IBatchUpdateEntityTypesRequest, callback: google.cloud.dialogflow.v2beta1.EntityTypes.BatchUpdateEntityTypesCallback): void;

                    /**
                     * Calls BatchUpdateEntityTypes.
                     * @param request BatchUpdateEntityTypesRequest message or plain object
                     * @returns Promise
                     */
                    public batchUpdateEntityTypes(request: google.cloud.dialogflow.v2beta1.IBatchUpdateEntityTypesRequest): Promise<google.longrunning.Operation>;

                    /**
                     * Calls BatchDeleteEntityTypes.
                     * @param request BatchDeleteEntityTypesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public batchDeleteEntityTypes(request: google.cloud.dialogflow.v2beta1.IBatchDeleteEntityTypesRequest, callback: google.cloud.dialogflow.v2beta1.EntityTypes.BatchDeleteEntityTypesCallback): void;

                    /**
                     * Calls BatchDeleteEntityTypes.
                     * @param request BatchDeleteEntityTypesRequest message or plain object
                     * @returns Promise
                     */
                    public batchDeleteEntityTypes(request: google.cloud.dialogflow.v2beta1.IBatchDeleteEntityTypesRequest): Promise<google.longrunning.Operation>;

                    /**
                     * Calls BatchCreateEntities.
                     * @param request BatchCreateEntitiesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public batchCreateEntities(request: google.cloud.dialogflow.v2beta1.IBatchCreateEntitiesRequest, callback: google.cloud.dialogflow.v2beta1.EntityTypes.BatchCreateEntitiesCallback): void;

                    /**
                     * Calls BatchCreateEntities.
                     * @param request BatchCreateEntitiesRequest message or plain object
                     * @returns Promise
                     */
                    public batchCreateEntities(request: google.cloud.dialogflow.v2beta1.IBatchCreateEntitiesRequest): Promise<google.longrunning.Operation>;

                    /**
                     * Calls BatchUpdateEntities.
                     * @param request BatchUpdateEntitiesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public batchUpdateEntities(request: google.cloud.dialogflow.v2beta1.IBatchUpdateEntitiesRequest, callback: google.cloud.dialogflow.v2beta1.EntityTypes.BatchUpdateEntitiesCallback): void;

                    /**
                     * Calls BatchUpdateEntities.
                     * @param request BatchUpdateEntitiesRequest message or plain object
                     * @returns Promise
                     */
                    public batchUpdateEntities(request: google.cloud.dialogflow.v2beta1.IBatchUpdateEntitiesRequest): Promise<google.longrunning.Operation>;

                    /**
                     * Calls BatchDeleteEntities.
                     * @param request BatchDeleteEntitiesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public batchDeleteEntities(request: google.cloud.dialogflow.v2beta1.IBatchDeleteEntitiesRequest, callback: google.cloud.dialogflow.v2beta1.EntityTypes.BatchDeleteEntitiesCallback): void;

                    /**
                     * Calls BatchDeleteEntities.
                     * @param request BatchDeleteEntitiesRequest message or plain object
                     * @returns Promise
                     */
                    public batchDeleteEntities(request: google.cloud.dialogflow.v2beta1.IBatchDeleteEntitiesRequest): Promise<google.longrunning.Operation>;
                }

                namespace EntityTypes {

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2beta1.EntityTypes|listEntityTypes}.
                     * @param error Error, if any
                     * @param [response] ListEntityTypesResponse
                     */
                    type ListEntityTypesCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2beta1.ListEntityTypesResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2beta1.EntityTypes|getEntityType}.
                     * @param error Error, if any
                     * @param [response] EntityType
                     */
                    type GetEntityTypeCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2beta1.EntityType) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2beta1.EntityTypes|createEntityType}.
                     * @param error Error, if any
                     * @param [response] EntityType
                     */
                    type CreateEntityTypeCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2beta1.EntityType) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2beta1.EntityTypes|updateEntityType}.
                     * @param error Error, if any
                     * @param [response] EntityType
                     */
                    type UpdateEntityTypeCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2beta1.EntityType) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2beta1.EntityTypes|deleteEntityType}.
                     * @param error Error, if any
                     * @param [response] Empty
                     */
                    type DeleteEntityTypeCallback = (error: (Error|null), response?: google.protobuf.Empty) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2beta1.EntityTypes|batchUpdateEntityTypes}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type BatchUpdateEntityTypesCallback = (error: (Error|null), response?: google.longrunning.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2beta1.EntityTypes|batchDeleteEntityTypes}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type BatchDeleteEntityTypesCallback = (error: (Error|null), response?: google.longrunning.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2beta1.EntityTypes|batchCreateEntities}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type BatchCreateEntitiesCallback = (error: (Error|null), response?: google.longrunning.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2beta1.EntityTypes|batchUpdateEntities}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type BatchUpdateEntitiesCallback = (error: (Error|null), response?: google.longrunning.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2beta1.EntityTypes|batchDeleteEntities}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type BatchDeleteEntitiesCallback = (error: (Error|null), response?: google.longrunning.Operation) => void;
                }

                /** Properties of an EntityType. */
                interface IEntityType {

                    /** EntityType name */
                    name?: (string|null);

                    /** EntityType displayName */
                    displayName?: (string|null);

                    /** EntityType kind */
                    kind?: (google.cloud.dialogflow.v2beta1.EntityType.Kind|keyof typeof google.cloud.dialogflow.v2beta1.EntityType.Kind|null);

                    /** EntityType autoExpansionMode */
                    autoExpansionMode?: (google.cloud.dialogflow.v2beta1.EntityType.AutoExpansionMode|keyof typeof google.cloud.dialogflow.v2beta1.EntityType.AutoExpansionMode|null);

                    /** EntityType entities */
                    entities?: (google.cloud.dialogflow.v2beta1.EntityType.IEntity[]|null);

                    /** EntityType enableFuzzyExtraction */
                    enableFuzzyExtraction?: (boolean|null);
                }

                /** Represents an EntityType. */
                class EntityType implements IEntityType {

                    /**
                     * Constructs a new EntityType.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IEntityType);

                    /** EntityType name. */
                    public name: string;

                    /** EntityType displayName. */
                    public displayName: string;

                    /** EntityType kind. */
                    public kind: (google.cloud.dialogflow.v2beta1.EntityType.Kind|keyof typeof google.cloud.dialogflow.v2beta1.EntityType.Kind);

                    /** EntityType autoExpansionMode. */
                    public autoExpansionMode: (google.cloud.dialogflow.v2beta1.EntityType.AutoExpansionMode|keyof typeof google.cloud.dialogflow.v2beta1.EntityType.AutoExpansionMode);

                    /** EntityType entities. */
                    public entities: google.cloud.dialogflow.v2beta1.EntityType.IEntity[];

                    /** EntityType enableFuzzyExtraction. */
                    public enableFuzzyExtraction: boolean;

                    /**
                     * Creates a new EntityType instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns EntityType instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IEntityType): google.cloud.dialogflow.v2beta1.EntityType;

                    /**
                     * Encodes the specified EntityType message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.EntityType.verify|verify} messages.
                     * @param message EntityType message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IEntityType, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified EntityType message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.EntityType.verify|verify} messages.
                     * @param message EntityType message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IEntityType, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an EntityType message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns EntityType
                     * @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.cloud.dialogflow.v2beta1.EntityType;

                    /**
                     * Decodes an EntityType message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns EntityType
                     * @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.cloud.dialogflow.v2beta1.EntityType;

                    /**
                     * Verifies an EntityType 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 EntityType message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns EntityType
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.EntityType;

                    /**
                     * Creates a plain object from an EntityType message. Also converts values to other types if specified.
                     * @param message EntityType
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.EntityType, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this EntityType to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for EntityType
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace EntityType {

                    /** Kind enum. */
                    enum Kind {
                        KIND_UNSPECIFIED = 0,
                        KIND_MAP = 1,
                        KIND_LIST = 2,
                        KIND_REGEXP = 3
                    }

                    /** AutoExpansionMode enum. */
                    enum AutoExpansionMode {
                        AUTO_EXPANSION_MODE_UNSPECIFIED = 0,
                        AUTO_EXPANSION_MODE_DEFAULT = 1
                    }

                    /** Properties of an Entity. */
                    interface IEntity {

                        /** Entity value */
                        value?: (string|null);

                        /** Entity synonyms */
                        synonyms?: (string[]|null);
                    }

                    /** Represents an Entity. */
                    class Entity implements IEntity {

                        /**
                         * Constructs a new Entity.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2beta1.EntityType.IEntity);

                        /** Entity value. */
                        public value: string;

                        /** Entity synonyms. */
                        public synonyms: string[];

                        /**
                         * Creates a new Entity instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns Entity instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2beta1.EntityType.IEntity): google.cloud.dialogflow.v2beta1.EntityType.Entity;

                        /**
                         * Encodes the specified Entity message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.EntityType.Entity.verify|verify} messages.
                         * @param message Entity message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2beta1.EntityType.IEntity, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified Entity message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.EntityType.Entity.verify|verify} messages.
                         * @param message Entity message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.EntityType.IEntity, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes an Entity message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns Entity
                         * @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.cloud.dialogflow.v2beta1.EntityType.Entity;

                        /**
                         * Decodes an Entity message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns Entity
                         * @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.cloud.dialogflow.v2beta1.EntityType.Entity;

                        /**
                         * Verifies an Entity 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 Entity message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns Entity
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.EntityType.Entity;

                        /**
                         * Creates a plain object from an Entity message. Also converts values to other types if specified.
                         * @param message Entity
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.dialogflow.v2beta1.EntityType.Entity, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this Entity to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for Entity
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }
                }

                /** Properties of a ListEntityTypesRequest. */
                interface IListEntityTypesRequest {

                    /** ListEntityTypesRequest parent */
                    parent?: (string|null);

                    /** ListEntityTypesRequest languageCode */
                    languageCode?: (string|null);

                    /** ListEntityTypesRequest pageSize */
                    pageSize?: (number|null);

                    /** ListEntityTypesRequest pageToken */
                    pageToken?: (string|null);
                }

                /** Represents a ListEntityTypesRequest. */
                class ListEntityTypesRequest implements IListEntityTypesRequest {

                    /**
                     * Constructs a new ListEntityTypesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IListEntityTypesRequest);

                    /** ListEntityTypesRequest parent. */
                    public parent: string;

                    /** ListEntityTypesRequest languageCode. */
                    public languageCode: string;

                    /** ListEntityTypesRequest pageSize. */
                    public pageSize: number;

                    /** ListEntityTypesRequest pageToken. */
                    public pageToken: string;

                    /**
                     * Creates a new ListEntityTypesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListEntityTypesRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IListEntityTypesRequest): google.cloud.dialogflow.v2beta1.ListEntityTypesRequest;

                    /**
                     * Encodes the specified ListEntityTypesRequest message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.ListEntityTypesRequest.verify|verify} messages.
                     * @param message ListEntityTypesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IListEntityTypesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListEntityTypesRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.ListEntityTypesRequest.verify|verify} messages.
                     * @param message ListEntityTypesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IListEntityTypesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListEntityTypesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListEntityTypesRequest
                     * @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.cloud.dialogflow.v2beta1.ListEntityTypesRequest;

                    /**
                     * Decodes a ListEntityTypesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListEntityTypesRequest
                     * @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.cloud.dialogflow.v2beta1.ListEntityTypesRequest;

                    /**
                     * Verifies a ListEntityTypesRequest 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 ListEntityTypesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListEntityTypesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.ListEntityTypesRequest;

                    /**
                     * Creates a plain object from a ListEntityTypesRequest message. Also converts values to other types if specified.
                     * @param message ListEntityTypesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.ListEntityTypesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListEntityTypesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListEntityTypesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListEntityTypesResponse. */
                interface IListEntityTypesResponse {

                    /** ListEntityTypesResponse entityTypes */
                    entityTypes?: (google.cloud.dialogflow.v2beta1.IEntityType[]|null);

                    /** ListEntityTypesResponse nextPageToken */
                    nextPageToken?: (string|null);
                }

                /** Represents a ListEntityTypesResponse. */
                class ListEntityTypesResponse implements IListEntityTypesResponse {

                    /**
                     * Constructs a new ListEntityTypesResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IListEntityTypesResponse);

                    /** ListEntityTypesResponse entityTypes. */
                    public entityTypes: google.cloud.dialogflow.v2beta1.IEntityType[];

                    /** ListEntityTypesResponse nextPageToken. */
                    public nextPageToken: string;

                    /**
                     * Creates a new ListEntityTypesResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListEntityTypesResponse instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IListEntityTypesResponse): google.cloud.dialogflow.v2beta1.ListEntityTypesResponse;

                    /**
                     * Encodes the specified ListEntityTypesResponse message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.ListEntityTypesResponse.verify|verify} messages.
                     * @param message ListEntityTypesResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IListEntityTypesResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListEntityTypesResponse message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.ListEntityTypesResponse.verify|verify} messages.
                     * @param message ListEntityTypesResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IListEntityTypesResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListEntityTypesResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListEntityTypesResponse
                     * @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.cloud.dialogflow.v2beta1.ListEntityTypesResponse;

                    /**
                     * Decodes a ListEntityTypesResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListEntityTypesResponse
                     * @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.cloud.dialogflow.v2beta1.ListEntityTypesResponse;

                    /**
                     * Verifies a ListEntityTypesResponse 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 ListEntityTypesResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListEntityTypesResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.ListEntityTypesResponse;

                    /**
                     * Creates a plain object from a ListEntityTypesResponse message. Also converts values to other types if specified.
                     * @param message ListEntityTypesResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.ListEntityTypesResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListEntityTypesResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListEntityTypesResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetEntityTypeRequest. */
                interface IGetEntityTypeRequest {

                    /** GetEntityTypeRequest name */
                    name?: (string|null);

                    /** GetEntityTypeRequest languageCode */
                    languageCode?: (string|null);
                }

                /** Represents a GetEntityTypeRequest. */
                class GetEntityTypeRequest implements IGetEntityTypeRequest {

                    /**
                     * Constructs a new GetEntityTypeRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IGetEntityTypeRequest);

                    /** GetEntityTypeRequest name. */
                    public name: string;

                    /** GetEntityTypeRequest languageCode. */
                    public languageCode: string;

                    /**
                     * Creates a new GetEntityTypeRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetEntityTypeRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IGetEntityTypeRequest): google.cloud.dialogflow.v2beta1.GetEntityTypeRequest;

                    /**
                     * Encodes the specified GetEntityTypeRequest message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.GetEntityTypeRequest.verify|verify} messages.
                     * @param message GetEntityTypeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IGetEntityTypeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetEntityTypeRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.GetEntityTypeRequest.verify|verify} messages.
                     * @param message GetEntityTypeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IGetEntityTypeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetEntityTypeRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetEntityTypeRequest
                     * @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.cloud.dialogflow.v2beta1.GetEntityTypeRequest;

                    /**
                     * Decodes a GetEntityTypeRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetEntityTypeRequest
                     * @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.cloud.dialogflow.v2beta1.GetEntityTypeRequest;

                    /**
                     * Verifies a GetEntityTypeRequest 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 GetEntityTypeRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetEntityTypeRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.GetEntityTypeRequest;

                    /**
                     * Creates a plain object from a GetEntityTypeRequest message. Also converts values to other types if specified.
                     * @param message GetEntityTypeRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.GetEntityTypeRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetEntityTypeRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetEntityTypeRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a CreateEntityTypeRequest. */
                interface ICreateEntityTypeRequest {

                    /** CreateEntityTypeRequest parent */
                    parent?: (string|null);

                    /** CreateEntityTypeRequest entityType */
                    entityType?: (google.cloud.dialogflow.v2beta1.IEntityType|null);

                    /** CreateEntityTypeRequest languageCode */
                    languageCode?: (string|null);
                }

                /** Represents a CreateEntityTypeRequest. */
                class CreateEntityTypeRequest implements ICreateEntityTypeRequest {

                    /**
                     * Constructs a new CreateEntityTypeRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.ICreateEntityTypeRequest);

                    /** CreateEntityTypeRequest parent. */
                    public parent: string;

                    /** CreateEntityTypeRequest entityType. */
                    public entityType?: (google.cloud.dialogflow.v2beta1.IEntityType|null);

                    /** CreateEntityTypeRequest languageCode. */
                    public languageCode: string;

                    /**
                     * Creates a new CreateEntityTypeRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CreateEntityTypeRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.ICreateEntityTypeRequest): google.cloud.dialogflow.v2beta1.CreateEntityTypeRequest;

                    /**
                     * Encodes the specified CreateEntityTypeRequest message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.CreateEntityTypeRequest.verify|verify} messages.
                     * @param message CreateEntityTypeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.ICreateEntityTypeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CreateEntityTypeRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.CreateEntityTypeRequest.verify|verify} messages.
                     * @param message CreateEntityTypeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.ICreateEntityTypeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CreateEntityTypeRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CreateEntityTypeRequest
                     * @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.cloud.dialogflow.v2beta1.CreateEntityTypeRequest;

                    /**
                     * Decodes a CreateEntityTypeRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CreateEntityTypeRequest
                     * @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.cloud.dialogflow.v2beta1.CreateEntityTypeRequest;

                    /**
                     * Verifies a CreateEntityTypeRequest 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 CreateEntityTypeRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CreateEntityTypeRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.CreateEntityTypeRequest;

                    /**
                     * Creates a plain object from a CreateEntityTypeRequest message. Also converts values to other types if specified.
                     * @param message CreateEntityTypeRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.CreateEntityTypeRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CreateEntityTypeRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CreateEntityTypeRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an UpdateEntityTypeRequest. */
                interface IUpdateEntityTypeRequest {

                    /** UpdateEntityTypeRequest entityType */
                    entityType?: (google.cloud.dialogflow.v2beta1.IEntityType|null);

                    /** UpdateEntityTypeRequest languageCode */
                    languageCode?: (string|null);

                    /** UpdateEntityTypeRequest updateMask */
                    updateMask?: (google.protobuf.IFieldMask|null);
                }

                /** Represents an UpdateEntityTypeRequest. */
                class UpdateEntityTypeRequest implements IUpdateEntityTypeRequest {

                    /**
                     * Constructs a new UpdateEntityTypeRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IUpdateEntityTypeRequest);

                    /** UpdateEntityTypeRequest entityType. */
                    public entityType?: (google.cloud.dialogflow.v2beta1.IEntityType|null);

                    /** UpdateEntityTypeRequest languageCode. */
                    public languageCode: string;

                    /** UpdateEntityTypeRequest updateMask. */
                    public updateMask?: (google.protobuf.IFieldMask|null);

                    /**
                     * Creates a new UpdateEntityTypeRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UpdateEntityTypeRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IUpdateEntityTypeRequest): google.cloud.dialogflow.v2beta1.UpdateEntityTypeRequest;

                    /**
                     * Encodes the specified UpdateEntityTypeRequest message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.UpdateEntityTypeRequest.verify|verify} messages.
                     * @param message UpdateEntityTypeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IUpdateEntityTypeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified UpdateEntityTypeRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.UpdateEntityTypeRequest.verify|verify} messages.
                     * @param message UpdateEntityTypeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IUpdateEntityTypeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an UpdateEntityTypeRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns UpdateEntityTypeRequest
                     * @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.cloud.dialogflow.v2beta1.UpdateEntityTypeRequest;

                    /**
                     * Decodes an UpdateEntityTypeRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns UpdateEntityTypeRequest
                     * @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.cloud.dialogflow.v2beta1.UpdateEntityTypeRequest;

                    /**
                     * Verifies an UpdateEntityTypeRequest 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 UpdateEntityTypeRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UpdateEntityTypeRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.UpdateEntityTypeRequest;

                    /**
                     * Creates a plain object from an UpdateEntityTypeRequest message. Also converts values to other types if specified.
                     * @param message UpdateEntityTypeRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.UpdateEntityTypeRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this UpdateEntityTypeRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for UpdateEntityTypeRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteEntityTypeRequest. */
                interface IDeleteEntityTypeRequest {

                    /** DeleteEntityTypeRequest name */
                    name?: (string|null);
                }

                /** Represents a DeleteEntityTypeRequest. */
                class DeleteEntityTypeRequest implements IDeleteEntityTypeRequest {

                    /**
                     * Constructs a new DeleteEntityTypeRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IDeleteEntityTypeRequest);

                    /** DeleteEntityTypeRequest name. */
                    public name: string;

                    /**
                     * Creates a new DeleteEntityTypeRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteEntityTypeRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IDeleteEntityTypeRequest): google.cloud.dialogflow.v2beta1.DeleteEntityTypeRequest;

                    /**
                     * Encodes the specified DeleteEntityTypeRequest message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.DeleteEntityTypeRequest.verify|verify} messages.
                     * @param message DeleteEntityTypeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IDeleteEntityTypeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteEntityTypeRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.DeleteEntityTypeRequest.verify|verify} messages.
                     * @param message DeleteEntityTypeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IDeleteEntityTypeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteEntityTypeRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteEntityTypeRequest
                     * @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.cloud.dialogflow.v2beta1.DeleteEntityTypeRequest;

                    /**
                     * Decodes a DeleteEntityTypeRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteEntityTypeRequest
                     * @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.cloud.dialogflow.v2beta1.DeleteEntityTypeRequest;

                    /**
                     * Verifies a DeleteEntityTypeRequest 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 DeleteEntityTypeRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteEntityTypeRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.DeleteEntityTypeRequest;

                    /**
                     * Creates a plain object from a DeleteEntityTypeRequest message. Also converts values to other types if specified.
                     * @param message DeleteEntityTypeRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.DeleteEntityTypeRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteEntityTypeRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteEntityTypeRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a BatchUpdateEntityTypesRequest. */
                interface IBatchUpdateEntityTypesRequest {

                    /** BatchUpdateEntityTypesRequest parent */
                    parent?: (string|null);

                    /** BatchUpdateEntityTypesRequest entityTypeBatchUri */
                    entityTypeBatchUri?: (string|null);

                    /** BatchUpdateEntityTypesRequest entityTypeBatchInline */
                    entityTypeBatchInline?: (google.cloud.dialogflow.v2beta1.IEntityTypeBatch|null);

                    /** BatchUpdateEntityTypesRequest languageCode */
                    languageCode?: (string|null);

                    /** BatchUpdateEntityTypesRequest updateMask */
                    updateMask?: (google.protobuf.IFieldMask|null);
                }

                /** Represents a BatchUpdateEntityTypesRequest. */
                class BatchUpdateEntityTypesRequest implements IBatchUpdateEntityTypesRequest {

                    /**
                     * Constructs a new BatchUpdateEntityTypesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IBatchUpdateEntityTypesRequest);

                    /** BatchUpdateEntityTypesRequest parent. */
                    public parent: string;

                    /** BatchUpdateEntityTypesRequest entityTypeBatchUri. */
                    public entityTypeBatchUri?: (string|null);

                    /** BatchUpdateEntityTypesRequest entityTypeBatchInline. */
                    public entityTypeBatchInline?: (google.cloud.dialogflow.v2beta1.IEntityTypeBatch|null);

                    /** BatchUpdateEntityTypesRequest languageCode. */
                    public languageCode: string;

                    /** BatchUpdateEntityTypesRequest updateMask. */
                    public updateMask?: (google.protobuf.IFieldMask|null);

                    /** BatchUpdateEntityTypesRequest entityTypeBatch. */
                    public entityTypeBatch?: ("entityTypeBatchUri"|"entityTypeBatchInline");

                    /**
                     * Creates a new BatchUpdateEntityTypesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BatchUpdateEntityTypesRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IBatchUpdateEntityTypesRequest): google.cloud.dialogflow.v2beta1.BatchUpdateEntityTypesRequest;

                    /**
                     * Encodes the specified BatchUpdateEntityTypesRequest message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.BatchUpdateEntityTypesRequest.verify|verify} messages.
                     * @param message BatchUpdateEntityTypesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IBatchUpdateEntityTypesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BatchUpdateEntityTypesRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.BatchUpdateEntityTypesRequest.verify|verify} messages.
                     * @param message BatchUpdateEntityTypesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IBatchUpdateEntityTypesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BatchUpdateEntityTypesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BatchUpdateEntityTypesRequest
                     * @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.cloud.dialogflow.v2beta1.BatchUpdateEntityTypesRequest;

                    /**
                     * Decodes a BatchUpdateEntityTypesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BatchUpdateEntityTypesRequest
                     * @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.cloud.dialogflow.v2beta1.BatchUpdateEntityTypesRequest;

                    /**
                     * Verifies a BatchUpdateEntityTypesRequest 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 BatchUpdateEntityTypesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BatchUpdateEntityTypesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.BatchUpdateEntityTypesRequest;

                    /**
                     * Creates a plain object from a BatchUpdateEntityTypesRequest message. Also converts values to other types if specified.
                     * @param message BatchUpdateEntityTypesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.BatchUpdateEntityTypesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BatchUpdateEntityTypesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BatchUpdateEntityTypesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a BatchUpdateEntityTypesResponse. */
                interface IBatchUpdateEntityTypesResponse {

                    /** BatchUpdateEntityTypesResponse entityTypes */
                    entityTypes?: (google.cloud.dialogflow.v2beta1.IEntityType[]|null);
                }

                /** Represents a BatchUpdateEntityTypesResponse. */
                class BatchUpdateEntityTypesResponse implements IBatchUpdateEntityTypesResponse {

                    /**
                     * Constructs a new BatchUpdateEntityTypesResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IBatchUpdateEntityTypesResponse);

                    /** BatchUpdateEntityTypesResponse entityTypes. */
                    public entityTypes: google.cloud.dialogflow.v2beta1.IEntityType[];

                    /**
                     * Creates a new BatchUpdateEntityTypesResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BatchUpdateEntityTypesResponse instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IBatchUpdateEntityTypesResponse): google.cloud.dialogflow.v2beta1.BatchUpdateEntityTypesResponse;

                    /**
                     * Encodes the specified BatchUpdateEntityTypesResponse message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.BatchUpdateEntityTypesResponse.verify|verify} messages.
                     * @param message BatchUpdateEntityTypesResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IBatchUpdateEntityTypesResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BatchUpdateEntityTypesResponse message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.BatchUpdateEntityTypesResponse.verify|verify} messages.
                     * @param message BatchUpdateEntityTypesResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IBatchUpdateEntityTypesResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BatchUpdateEntityTypesResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BatchUpdateEntityTypesResponse
                     * @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.cloud.dialogflow.v2beta1.BatchUpdateEntityTypesResponse;

                    /**
                     * Decodes a BatchUpdateEntityTypesResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BatchUpdateEntityTypesResponse
                     * @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.cloud.dialogflow.v2beta1.BatchUpdateEntityTypesResponse;

                    /**
                     * Verifies a BatchUpdateEntityTypesResponse 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 BatchUpdateEntityTypesResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BatchUpdateEntityTypesResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.BatchUpdateEntityTypesResponse;

                    /**
                     * Creates a plain object from a BatchUpdateEntityTypesResponse message. Also converts values to other types if specified.
                     * @param message BatchUpdateEntityTypesResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.BatchUpdateEntityTypesResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BatchUpdateEntityTypesResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BatchUpdateEntityTypesResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a BatchDeleteEntityTypesRequest. */
                interface IBatchDeleteEntityTypesRequest {

                    /** BatchDeleteEntityTypesRequest parent */
                    parent?: (string|null);

                    /** BatchDeleteEntityTypesRequest entityTypeNames */
                    entityTypeNames?: (string[]|null);
                }

                /** Represents a BatchDeleteEntityTypesRequest. */
                class BatchDeleteEntityTypesRequest implements IBatchDeleteEntityTypesRequest {

                    /**
                     * Constructs a new BatchDeleteEntityTypesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IBatchDeleteEntityTypesRequest);

                    /** BatchDeleteEntityTypesRequest parent. */
                    public parent: string;

                    /** BatchDeleteEntityTypesRequest entityTypeNames. */
                    public entityTypeNames: string[];

                    /**
                     * Creates a new BatchDeleteEntityTypesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BatchDeleteEntityTypesRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IBatchDeleteEntityTypesRequest): google.cloud.dialogflow.v2beta1.BatchDeleteEntityTypesRequest;

                    /**
                     * Encodes the specified BatchDeleteEntityTypesRequest message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.BatchDeleteEntityTypesRequest.verify|verify} messages.
                     * @param message BatchDeleteEntityTypesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IBatchDeleteEntityTypesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BatchDeleteEntityTypesRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.BatchDeleteEntityTypesRequest.verify|verify} messages.
                     * @param message BatchDeleteEntityTypesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IBatchDeleteEntityTypesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BatchDeleteEntityTypesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BatchDeleteEntityTypesRequest
                     * @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.cloud.dialogflow.v2beta1.BatchDeleteEntityTypesRequest;

                    /**
                     * Decodes a BatchDeleteEntityTypesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BatchDeleteEntityTypesRequest
                     * @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.cloud.dialogflow.v2beta1.BatchDeleteEntityTypesRequest;

                    /**
                     * Verifies a BatchDeleteEntityTypesRequest 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 BatchDeleteEntityTypesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BatchDeleteEntityTypesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.BatchDeleteEntityTypesRequest;

                    /**
                     * Creates a plain object from a BatchDeleteEntityTypesRequest message. Also converts values to other types if specified.
                     * @param message BatchDeleteEntityTypesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.BatchDeleteEntityTypesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BatchDeleteEntityTypesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BatchDeleteEntityTypesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a BatchCreateEntitiesRequest. */
                interface IBatchCreateEntitiesRequest {

                    /** BatchCreateEntitiesRequest parent */
                    parent?: (string|null);

                    /** BatchCreateEntitiesRequest entities */
                    entities?: (google.cloud.dialogflow.v2beta1.EntityType.IEntity[]|null);

                    /** BatchCreateEntitiesRequest languageCode */
                    languageCode?: (string|null);
                }

                /** Represents a BatchCreateEntitiesRequest. */
                class BatchCreateEntitiesRequest implements IBatchCreateEntitiesRequest {

                    /**
                     * Constructs a new BatchCreateEntitiesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IBatchCreateEntitiesRequest);

                    /** BatchCreateEntitiesRequest parent. */
                    public parent: string;

                    /** BatchCreateEntitiesRequest entities. */
                    public entities: google.cloud.dialogflow.v2beta1.EntityType.IEntity[];

                    /** BatchCreateEntitiesRequest languageCode. */
                    public languageCode: string;

                    /**
                     * Creates a new BatchCreateEntitiesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BatchCreateEntitiesRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IBatchCreateEntitiesRequest): google.cloud.dialogflow.v2beta1.BatchCreateEntitiesRequest;

                    /**
                     * Encodes the specified BatchCreateEntitiesRequest message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.BatchCreateEntitiesRequest.verify|verify} messages.
                     * @param message BatchCreateEntitiesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IBatchCreateEntitiesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BatchCreateEntitiesRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.BatchCreateEntitiesRequest.verify|verify} messages.
                     * @param message BatchCreateEntitiesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IBatchCreateEntitiesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BatchCreateEntitiesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BatchCreateEntitiesRequest
                     * @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.cloud.dialogflow.v2beta1.BatchCreateEntitiesRequest;

                    /**
                     * Decodes a BatchCreateEntitiesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BatchCreateEntitiesRequest
                     * @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.cloud.dialogflow.v2beta1.BatchCreateEntitiesRequest;

                    /**
                     * Verifies a BatchCreateEntitiesRequest 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 BatchCreateEntitiesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BatchCreateEntitiesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.BatchCreateEntitiesRequest;

                    /**
                     * Creates a plain object from a BatchCreateEntitiesRequest message. Also converts values to other types if specified.
                     * @param message BatchCreateEntitiesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.BatchCreateEntitiesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BatchCreateEntitiesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BatchCreateEntitiesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a BatchUpdateEntitiesRequest. */
                interface IBatchUpdateEntitiesRequest {

                    /** BatchUpdateEntitiesRequest parent */
                    parent?: (string|null);

                    /** BatchUpdateEntitiesRequest entities */
                    entities?: (google.cloud.dialogflow.v2beta1.EntityType.IEntity[]|null);

                    /** BatchUpdateEntitiesRequest languageCode */
                    languageCode?: (string|null);

                    /** BatchUpdateEntitiesRequest updateMask */
                    updateMask?: (google.protobuf.IFieldMask|null);
                }

                /** Represents a BatchUpdateEntitiesRequest. */
                class BatchUpdateEntitiesRequest implements IBatchUpdateEntitiesRequest {

                    /**
                     * Constructs a new BatchUpdateEntitiesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IBatchUpdateEntitiesRequest);

                    /** BatchUpdateEntitiesRequest parent. */
                    public parent: string;

                    /** BatchUpdateEntitiesRequest entities. */
                    public entities: google.cloud.dialogflow.v2beta1.EntityType.IEntity[];

                    /** BatchUpdateEntitiesRequest languageCode. */
                    public languageCode: string;

                    /** BatchUpdateEntitiesRequest updateMask. */
                    public updateMask?: (google.protobuf.IFieldMask|null);

                    /**
                     * Creates a new BatchUpdateEntitiesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BatchUpdateEntitiesRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IBatchUpdateEntitiesRequest): google.cloud.dialogflow.v2beta1.BatchUpdateEntitiesRequest;

                    /**
                     * Encodes the specified BatchUpdateEntitiesRequest message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.BatchUpdateEntitiesRequest.verify|verify} messages.
                     * @param message BatchUpdateEntitiesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IBatchUpdateEntitiesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BatchUpdateEntitiesRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.BatchUpdateEntitiesRequest.verify|verify} messages.
                     * @param message BatchUpdateEntitiesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IBatchUpdateEntitiesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BatchUpdateEntitiesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BatchUpdateEntitiesRequest
                     * @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.cloud.dialogflow.v2beta1.BatchUpdateEntitiesRequest;

                    /**
                     * Decodes a BatchUpdateEntitiesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BatchUpdateEntitiesRequest
                     * @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.cloud.dialogflow.v2beta1.BatchUpdateEntitiesRequest;

                    /**
                     * Verifies a BatchUpdateEntitiesRequest 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 BatchUpdateEntitiesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BatchUpdateEntitiesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.BatchUpdateEntitiesRequest;

                    /**
                     * Creates a plain object from a BatchUpdateEntitiesRequest message. Also converts values to other types if specified.
                     * @param message BatchUpdateEntitiesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.BatchUpdateEntitiesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BatchUpdateEntitiesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BatchUpdateEntitiesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a BatchDeleteEntitiesRequest. */
                interface IBatchDeleteEntitiesRequest {

                    /** BatchDeleteEntitiesRequest parent */
                    parent?: (string|null);

                    /** BatchDeleteEntitiesRequest entityValues */
                    entityValues?: (string[]|null);

                    /** BatchDeleteEntitiesRequest languageCode */
                    languageCode?: (string|null);
                }

                /** Represents a BatchDeleteEntitiesRequest. */
                class BatchDeleteEntitiesRequest implements IBatchDeleteEntitiesRequest {

                    /**
                     * Constructs a new BatchDeleteEntitiesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IBatchDeleteEntitiesRequest);

                    /** BatchDeleteEntitiesRequest parent. */
                    public parent: string;

                    /** BatchDeleteEntitiesRequest entityValues. */
                    public entityValues: string[];

                    /** BatchDeleteEntitiesRequest languageCode. */
                    public languageCode: string;

                    /**
                     * Creates a new BatchDeleteEntitiesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BatchDeleteEntitiesRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IBatchDeleteEntitiesRequest): google.cloud.dialogflow.v2beta1.BatchDeleteEntitiesRequest;

                    /**
                     * Encodes the specified BatchDeleteEntitiesRequest message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.BatchDeleteEntitiesRequest.verify|verify} messages.
                     * @param message BatchDeleteEntitiesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IBatchDeleteEntitiesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BatchDeleteEntitiesRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.BatchDeleteEntitiesRequest.verify|verify} messages.
                     * @param message BatchDeleteEntitiesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IBatchDeleteEntitiesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BatchDeleteEntitiesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BatchDeleteEntitiesRequest
                     * @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.cloud.dialogflow.v2beta1.BatchDeleteEntitiesRequest;

                    /**
                     * Decodes a BatchDeleteEntitiesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BatchDeleteEntitiesRequest
                     * @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.cloud.dialogflow.v2beta1.BatchDeleteEntitiesRequest;

                    /**
                     * Verifies a BatchDeleteEntitiesRequest 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 BatchDeleteEntitiesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BatchDeleteEntitiesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.BatchDeleteEntitiesRequest;

                    /**
                     * Creates a plain object from a BatchDeleteEntitiesRequest message. Also converts values to other types if specified.
                     * @param message BatchDeleteEntitiesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.BatchDeleteEntitiesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BatchDeleteEntitiesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BatchDeleteEntitiesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an EntityTypeBatch. */
                interface IEntityTypeBatch {

                    /** EntityTypeBatch entityTypes */
                    entityTypes?: (google.cloud.dialogflow.v2beta1.IEntityType[]|null);
                }

                /** Represents an EntityTypeBatch. */
                class EntityTypeBatch implements IEntityTypeBatch {

                    /**
                     * Constructs a new EntityTypeBatch.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IEntityTypeBatch);

                    /** EntityTypeBatch entityTypes. */
                    public entityTypes: google.cloud.dialogflow.v2beta1.IEntityType[];

                    /**
                     * Creates a new EntityTypeBatch instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns EntityTypeBatch instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IEntityTypeBatch): google.cloud.dialogflow.v2beta1.EntityTypeBatch;

                    /**
                     * Encodes the specified EntityTypeBatch message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.EntityTypeBatch.verify|verify} messages.
                     * @param message EntityTypeBatch message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IEntityTypeBatch, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified EntityTypeBatch message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.EntityTypeBatch.verify|verify} messages.
                     * @param message EntityTypeBatch message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IEntityTypeBatch, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an EntityTypeBatch message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns EntityTypeBatch
                     * @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.cloud.dialogflow.v2beta1.EntityTypeBatch;

                    /**
                     * Decodes an EntityTypeBatch message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns EntityTypeBatch
                     * @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.cloud.dialogflow.v2beta1.EntityTypeBatch;

                    /**
                     * Verifies an EntityTypeBatch 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 EntityTypeBatch message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns EntityTypeBatch
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.EntityTypeBatch;

                    /**
                     * Creates a plain object from an EntityTypeBatch message. Also converts values to other types if specified.
                     * @param message EntityTypeBatch
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.EntityTypeBatch, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this EntityTypeBatch to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for EntityTypeBatch
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Represents a Conversations */
                class Conversations extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new Conversations 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 Conversations 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): Conversations;

                    /**
                     * Calls CreateConversation.
                     * @param request CreateConversationRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Conversation
                     */
                    public createConversation(request: google.cloud.dialogflow.v2beta1.ICreateConversationRequest, callback: google.cloud.dialogflow.v2beta1.Conversations.CreateConversationCallback): void;

                    /**
                     * Calls CreateConversation.
                     * @param request CreateConversationRequest message or plain object
                     * @returns Promise
                     */
                    public createConversation(request: google.cloud.dialogflow.v2beta1.ICreateConversationRequest): Promise<google.cloud.dialogflow.v2beta1.Conversation>;

                    /**
                     * Calls ListConversations.
                     * @param request ListConversationsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ListConversationsResponse
                     */
                    public listConversations(request: google.cloud.dialogflow.v2beta1.IListConversationsRequest, callback: google.cloud.dialogflow.v2beta1.Conversations.ListConversationsCallback): void;

                    /**
                     * Calls ListConversations.
                     * @param request ListConversationsRequest message or plain object
                     * @returns Promise
                     */
                    public listConversations(request: google.cloud.dialogflow.v2beta1.IListConversationsRequest): Promise<google.cloud.dialogflow.v2beta1.ListConversationsResponse>;

                    /**
                     * Calls GetConversation.
                     * @param request GetConversationRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Conversation
                     */
                    public getConversation(request: google.cloud.dialogflow.v2beta1.IGetConversationRequest, callback: google.cloud.dialogflow.v2beta1.Conversations.GetConversationCallback): void;

                    /**
                     * Calls GetConversation.
                     * @param request GetConversationRequest message or plain object
                     * @returns Promise
                     */
                    public getConversation(request: google.cloud.dialogflow.v2beta1.IGetConversationRequest): Promise<google.cloud.dialogflow.v2beta1.Conversation>;

                    /**
                     * Calls CompleteConversation.
                     * @param request CompleteConversationRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Conversation
                     */
                    public completeConversation(request: google.cloud.dialogflow.v2beta1.ICompleteConversationRequest, callback: google.cloud.dialogflow.v2beta1.Conversations.CompleteConversationCallback): void;

                    /**
                     * Calls CompleteConversation.
                     * @param request CompleteConversationRequest message or plain object
                     * @returns Promise
                     */
                    public completeConversation(request: google.cloud.dialogflow.v2beta1.ICompleteConversationRequest): Promise<google.cloud.dialogflow.v2beta1.Conversation>;

                    /**
                     * Calls IngestContextReferences.
                     * @param request IngestContextReferencesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and IngestContextReferencesResponse
                     */
                    public ingestContextReferences(request: google.cloud.dialogflow.v2beta1.IIngestContextReferencesRequest, callback: google.cloud.dialogflow.v2beta1.Conversations.IngestContextReferencesCallback): void;

                    /**
                     * Calls IngestContextReferences.
                     * @param request IngestContextReferencesRequest message or plain object
                     * @returns Promise
                     */
                    public ingestContextReferences(request: google.cloud.dialogflow.v2beta1.IIngestContextReferencesRequest): Promise<google.cloud.dialogflow.v2beta1.IngestContextReferencesResponse>;

                    /**
                     * Calls BatchCreateMessages.
                     * @param request BatchCreateMessagesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and BatchCreateMessagesResponse
                     */
                    public batchCreateMessages(request: google.cloud.dialogflow.v2beta1.IBatchCreateMessagesRequest, callback: google.cloud.dialogflow.v2beta1.Conversations.BatchCreateMessagesCallback): void;

                    /**
                     * Calls BatchCreateMessages.
                     * @param request BatchCreateMessagesRequest message or plain object
                     * @returns Promise
                     */
                    public batchCreateMessages(request: google.cloud.dialogflow.v2beta1.IBatchCreateMessagesRequest): Promise<google.cloud.dialogflow.v2beta1.BatchCreateMessagesResponse>;

                    /**
                     * Calls ListMessages.
                     * @param request ListMessagesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ListMessagesResponse
                     */
                    public listMessages(request: google.cloud.dialogflow.v2beta1.IListMessagesRequest, callback: google.cloud.dialogflow.v2beta1.Conversations.ListMessagesCallback): void;

                    /**
                     * Calls ListMessages.
                     * @param request ListMessagesRequest message or plain object
                     * @returns Promise
                     */
                    public listMessages(request: google.cloud.dialogflow.v2beta1.IListMessagesRequest): Promise<google.cloud.dialogflow.v2beta1.ListMessagesResponse>;

                    /**
                     * Calls SuggestConversationSummary.
                     * @param request SuggestConversationSummaryRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and SuggestConversationSummaryResponse
                     */
                    public suggestConversationSummary(request: google.cloud.dialogflow.v2beta1.ISuggestConversationSummaryRequest, callback: google.cloud.dialogflow.v2beta1.Conversations.SuggestConversationSummaryCallback): void;

                    /**
                     * Calls SuggestConversationSummary.
                     * @param request SuggestConversationSummaryRequest message or plain object
                     * @returns Promise
                     */
                    public suggestConversationSummary(request: google.cloud.dialogflow.v2beta1.ISuggestConversationSummaryRequest): Promise<google.cloud.dialogflow.v2beta1.SuggestConversationSummaryResponse>;

                    /**
                     * Calls GenerateStatelessSummary.
                     * @param request GenerateStatelessSummaryRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and GenerateStatelessSummaryResponse
                     */
                    public generateStatelessSummary(request: google.cloud.dialogflow.v2beta1.IGenerateStatelessSummaryRequest, callback: google.cloud.dialogflow.v2beta1.Conversations.GenerateStatelessSummaryCallback): void;

                    /**
                     * Calls GenerateStatelessSummary.
                     * @param request GenerateStatelessSummaryRequest message or plain object
                     * @returns Promise
                     */
                    public generateStatelessSummary(request: google.cloud.dialogflow.v2beta1.IGenerateStatelessSummaryRequest): Promise<google.cloud.dialogflow.v2beta1.GenerateStatelessSummaryResponse>;

                    /**
                     * Calls GenerateStatelessSuggestion.
                     * @param request GenerateStatelessSuggestionRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and GenerateStatelessSuggestionResponse
                     */
                    public generateStatelessSuggestion(request: google.cloud.dialogflow.v2beta1.IGenerateStatelessSuggestionRequest, callback: google.cloud.dialogflow.v2beta1.Conversations.GenerateStatelessSuggestionCallback): void;

                    /**
                     * Calls GenerateStatelessSuggestion.
                     * @param request GenerateStatelessSuggestionRequest message or plain object
                     * @returns Promise
                     */
                    public generateStatelessSuggestion(request: google.cloud.dialogflow.v2beta1.IGenerateStatelessSuggestionRequest): Promise<google.cloud.dialogflow.v2beta1.GenerateStatelessSuggestionResponse>;

                    /**
                     * Calls SearchKnowledge.
                     * @param request SearchKnowledgeRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and SearchKnowledgeResponse
                     */
                    public searchKnowledge(request: google.cloud.dialogflow.v2beta1.ISearchKnowledgeRequest, callback: google.cloud.dialogflow.v2beta1.Conversations.SearchKnowledgeCallback): void;

                    /**
                     * Calls SearchKnowledge.
                     * @param request SearchKnowledgeRequest message or plain object
                     * @returns Promise
                     */
                    public searchKnowledge(request: google.cloud.dialogflow.v2beta1.ISearchKnowledgeRequest): Promise<google.cloud.dialogflow.v2beta1.SearchKnowledgeResponse>;

                    /**
                     * Calls GenerateSuggestions.
                     * @param request GenerateSuggestionsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and GenerateSuggestionsResponse
                     */
                    public generateSuggestions(request: google.cloud.dialogflow.v2beta1.IGenerateSuggestionsRequest, callback: google.cloud.dialogflow.v2beta1.Conversations.GenerateSuggestionsCallback): void;

                    /**
                     * Calls GenerateSuggestions.
                     * @param request GenerateSuggestionsRequest message or plain object
                     * @returns Promise
                     */
                    public generateSuggestions(request: google.cloud.dialogflow.v2beta1.IGenerateSuggestionsRequest): Promise<google.cloud.dialogflow.v2beta1.GenerateSuggestionsResponse>;
                }

                namespace Conversations {

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2beta1.Conversations|createConversation}.
                     * @param error Error, if any
                     * @param [response] Conversation
                     */
                    type CreateConversationCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2beta1.Conversation) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2beta1.Conversations|listConversations}.
                     * @param error Error, if any
                     * @param [response] ListConversationsResponse
                     */
                    type ListConversationsCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2beta1.ListConversationsResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2beta1.Conversations|getConversation}.
                     * @param error Error, if any
                     * @param [response] Conversation
                     */
                    type GetConversationCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2beta1.Conversation) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2beta1.Conversations|completeConversation}.
                     * @param error Error, if any
                     * @param [response] Conversation
                     */
                    type CompleteConversationCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2beta1.Conversation) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2beta1.Conversations|ingestContextReferences}.
                     * @param error Error, if any
                     * @param [response] IngestContextReferencesResponse
                     */
                    type IngestContextReferencesCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2beta1.IngestContextReferencesResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2beta1.Conversations|batchCreateMessages}.
                     * @param error Error, if any
                     * @param [response] BatchCreateMessagesResponse
                     */
                    type BatchCreateMessagesCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2beta1.BatchCreateMessagesResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2beta1.Conversations|listMessages}.
                     * @param error Error, if any
                     * @param [response] ListMessagesResponse
                     */
                    type ListMessagesCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2beta1.ListMessagesResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2beta1.Conversations|suggestConversationSummary}.
                     * @param error Error, if any
                     * @param [response] SuggestConversationSummaryResponse
                     */
                    type SuggestConversationSummaryCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2beta1.SuggestConversationSummaryResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2beta1.Conversations|generateStatelessSummary}.
                     * @param error Error, if any
                     * @param [response] GenerateStatelessSummaryResponse
                     */
                    type GenerateStatelessSummaryCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2beta1.GenerateStatelessSummaryResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2beta1.Conversations|generateStatelessSuggestion}.
                     * @param error Error, if any
                     * @param [response] GenerateStatelessSuggestionResponse
                     */
                    type GenerateStatelessSuggestionCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2beta1.GenerateStatelessSuggestionResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2beta1.Conversations|searchKnowledge}.
                     * @param error Error, if any
                     * @param [response] SearchKnowledgeResponse
                     */
                    type SearchKnowledgeCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2beta1.SearchKnowledgeResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2beta1.Conversations|generateSuggestions}.
                     * @param error Error, if any
                     * @param [response] GenerateSuggestionsResponse
                     */
                    type GenerateSuggestionsCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2beta1.GenerateSuggestionsResponse) => void;
                }

                /** Properties of a Conversation. */
                interface IConversation {

                    /** Conversation name */
                    name?: (string|null);

                    /** Conversation lifecycleState */
                    lifecycleState?: (google.cloud.dialogflow.v2beta1.Conversation.LifecycleState|keyof typeof google.cloud.dialogflow.v2beta1.Conversation.LifecycleState|null);

                    /** Conversation conversationProfile */
                    conversationProfile?: (string|null);

                    /** Conversation phoneNumber */
                    phoneNumber?: (google.cloud.dialogflow.v2beta1.IConversationPhoneNumber|null);

                    /** Conversation conversationStage */
                    conversationStage?: (google.cloud.dialogflow.v2beta1.Conversation.ConversationStage|keyof typeof google.cloud.dialogflow.v2beta1.Conversation.ConversationStage|null);

                    /** Conversation startTime */
                    startTime?: (google.protobuf.ITimestamp|null);

                    /** Conversation endTime */
                    endTime?: (google.protobuf.ITimestamp|null);

                    /** Conversation telephonyConnectionInfo */
                    telephonyConnectionInfo?: (google.cloud.dialogflow.v2beta1.Conversation.ITelephonyConnectionInfo|null);

                    /** Conversation initialConversationProfile */
                    initialConversationProfile?: (google.cloud.dialogflow.v2beta1.IConversationProfile|null);

                    /** Conversation ingestedContextReferences */
                    ingestedContextReferences?: ({ [k: string]: google.cloud.dialogflow.v2beta1.Conversation.IContextReference }|null);

                    /** Conversation initialGeneratorContexts */
                    initialGeneratorContexts?: ({ [k: string]: google.cloud.dialogflow.v2beta1.Conversation.IGeneratorContext }|null);
                }

                /** Represents a Conversation. */
                class Conversation implements IConversation {

                    /**
                     * Constructs a new Conversation.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IConversation);

                    /** Conversation name. */
                    public name: string;

                    /** Conversation lifecycleState. */
                    public lifecycleState: (google.cloud.dialogflow.v2beta1.Conversation.LifecycleState|keyof typeof google.cloud.dialogflow.v2beta1.Conversation.LifecycleState);

                    /** Conversation conversationProfile. */
                    public conversationProfile: string;

                    /** Conversation phoneNumber. */
                    public phoneNumber?: (google.cloud.dialogflow.v2beta1.IConversationPhoneNumber|null);

                    /** Conversation conversationStage. */
                    public conversationStage: (google.cloud.dialogflow.v2beta1.Conversation.ConversationStage|keyof typeof google.cloud.dialogflow.v2beta1.Conversation.ConversationStage);

                    /** Conversation startTime. */
                    public startTime?: (google.protobuf.ITimestamp|null);

                    /** Conversation endTime. */
                    public endTime?: (google.protobuf.ITimestamp|null);

                    /** Conversation telephonyConnectionInfo. */
                    public telephonyConnectionInfo?: (google.cloud.dialogflow.v2beta1.Conversation.ITelephonyConnectionInfo|null);

                    /** Conversation initialConversationProfile. */
                    public initialConversationProfile?: (google.cloud.dialogflow.v2beta1.IConversationProfile|null);

                    /** Conversation ingestedContextReferences. */
                    public ingestedContextReferences: { [k: string]: google.cloud.dialogflow.v2beta1.Conversation.IContextReference };

                    /** Conversation initialGeneratorContexts. */
                    public initialGeneratorContexts: { [k: string]: google.cloud.dialogflow.v2beta1.Conversation.IGeneratorContext };

                    /**
                     * Creates a new Conversation instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Conversation instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IConversation): google.cloud.dialogflow.v2beta1.Conversation;

                    /**
                     * Encodes the specified Conversation message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Conversation.verify|verify} messages.
                     * @param message Conversation message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IConversation, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Conversation message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Conversation.verify|verify} messages.
                     * @param message Conversation message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IConversation, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a Conversation message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Conversation
                     * @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.cloud.dialogflow.v2beta1.Conversation;

                    /**
                     * Decodes a Conversation message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Conversation
                     * @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.cloud.dialogflow.v2beta1.Conversation;

                    /**
                     * Verifies a Conversation 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 Conversation message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Conversation
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.Conversation;

                    /**
                     * Creates a plain object from a Conversation message. Also converts values to other types if specified.
                     * @param message Conversation
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.Conversation, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Conversation to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Conversation
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace Conversation {

                    /** LifecycleState enum. */
                    enum LifecycleState {
                        LIFECYCLE_STATE_UNSPECIFIED = 0,
                        IN_PROGRESS = 1,
                        COMPLETED = 2
                    }

                    /** ConversationStage enum. */
                    enum ConversationStage {
                        CONVERSATION_STAGE_UNSPECIFIED = 0,
                        VIRTUAL_AGENT_STAGE = 1,
                        HUMAN_ASSIST_STAGE = 2
                    }

                    /** Properties of a TelephonyConnectionInfo. */
                    interface ITelephonyConnectionInfo {

                        /** TelephonyConnectionInfo dialedNumber */
                        dialedNumber?: (string|null);

                        /** TelephonyConnectionInfo sdp */
                        sdp?: (string|null);

                        /** TelephonyConnectionInfo sipHeaders */
                        sipHeaders?: (google.cloud.dialogflow.v2beta1.Conversation.TelephonyConnectionInfo.ISipHeader[]|null);

                        /** TelephonyConnectionInfo extraMimeContents */
                        extraMimeContents?: (google.cloud.dialogflow.v2beta1.Conversation.TelephonyConnectionInfo.IMimeContent[]|null);
                    }

                    /** Represents a TelephonyConnectionInfo. */
                    class TelephonyConnectionInfo implements ITelephonyConnectionInfo {

                        /**
                         * Constructs a new TelephonyConnectionInfo.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2beta1.Conversation.ITelephonyConnectionInfo);

                        /** TelephonyConnectionInfo dialedNumber. */
                        public dialedNumber: string;

                        /** TelephonyConnectionInfo sdp. */
                        public sdp: string;

                        /** TelephonyConnectionInfo sipHeaders. */
                        public sipHeaders: google.cloud.dialogflow.v2beta1.Conversation.TelephonyConnectionInfo.ISipHeader[];

                        /** TelephonyConnectionInfo extraMimeContents. */
                        public extraMimeContents: google.cloud.dialogflow.v2beta1.Conversation.TelephonyConnectionInfo.IMimeContent[];

                        /**
                         * Creates a new TelephonyConnectionInfo instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns TelephonyConnectionInfo instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2beta1.Conversation.ITelephonyConnectionInfo): google.cloud.dialogflow.v2beta1.Conversation.TelephonyConnectionInfo;

                        /**
                         * Encodes the specified TelephonyConnectionInfo message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Conversation.TelephonyConnectionInfo.verify|verify} messages.
                         * @param message TelephonyConnectionInfo message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2beta1.Conversation.ITelephonyConnectionInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified TelephonyConnectionInfo message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Conversation.TelephonyConnectionInfo.verify|verify} messages.
                         * @param message TelephonyConnectionInfo message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.Conversation.ITelephonyConnectionInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a TelephonyConnectionInfo message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns TelephonyConnectionInfo
                         * @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.cloud.dialogflow.v2beta1.Conversation.TelephonyConnectionInfo;

                        /**
                         * Decodes a TelephonyConnectionInfo message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns TelephonyConnectionInfo
                         * @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.cloud.dialogflow.v2beta1.Conversation.TelephonyConnectionInfo;

                        /**
                         * Verifies a TelephonyConnectionInfo 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 TelephonyConnectionInfo message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns TelephonyConnectionInfo
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.Conversation.TelephonyConnectionInfo;

                        /**
                         * Creates a plain object from a TelephonyConnectionInfo message. Also converts values to other types if specified.
                         * @param message TelephonyConnectionInfo
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.dialogflow.v2beta1.Conversation.TelephonyConnectionInfo, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this TelephonyConnectionInfo to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for TelephonyConnectionInfo
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    namespace TelephonyConnectionInfo {

                        /** Properties of a SipHeader. */
                        interface ISipHeader {

                            /** SipHeader name */
                            name?: (string|null);

                            /** SipHeader value */
                            value?: (string|null);
                        }

                        /** Represents a SipHeader. */
                        class SipHeader implements ISipHeader {

                            /**
                             * Constructs a new SipHeader.
                             * @param [properties] Properties to set
                             */
                            constructor(properties?: google.cloud.dialogflow.v2beta1.Conversation.TelephonyConnectionInfo.ISipHeader);

                            /** SipHeader name. */
                            public name: string;

                            /** SipHeader value. */
                            public value: string;

                            /**
                             * Creates a new SipHeader instance using the specified properties.
                             * @param [properties] Properties to set
                             * @returns SipHeader instance
                             */
                            public static create(properties?: google.cloud.dialogflow.v2beta1.Conversation.TelephonyConnectionInfo.ISipHeader): google.cloud.dialogflow.v2beta1.Conversation.TelephonyConnectionInfo.SipHeader;

                            /**
                             * Encodes the specified SipHeader message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Conversation.TelephonyConnectionInfo.SipHeader.verify|verify} messages.
                             * @param message SipHeader message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encode(message: google.cloud.dialogflow.v2beta1.Conversation.TelephonyConnectionInfo.ISipHeader, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Encodes the specified SipHeader message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Conversation.TelephonyConnectionInfo.SipHeader.verify|verify} messages.
                             * @param message SipHeader message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.Conversation.TelephonyConnectionInfo.ISipHeader, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Decodes a SipHeader message from the specified reader or buffer.
                             * @param reader Reader or buffer to decode from
                             * @param [length] Message length if known beforehand
                             * @returns SipHeader
                             * @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.cloud.dialogflow.v2beta1.Conversation.TelephonyConnectionInfo.SipHeader;

                            /**
                             * Decodes a SipHeader message from the specified reader or buffer, length delimited.
                             * @param reader Reader or buffer to decode from
                             * @returns SipHeader
                             * @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.cloud.dialogflow.v2beta1.Conversation.TelephonyConnectionInfo.SipHeader;

                            /**
                             * Verifies a SipHeader 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 SipHeader message from a plain object. Also converts values to their respective internal types.
                             * @param object Plain object
                             * @returns SipHeader
                             */
                            public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.Conversation.TelephonyConnectionInfo.SipHeader;

                            /**
                             * Creates a plain object from a SipHeader message. Also converts values to other types if specified.
                             * @param message SipHeader
                             * @param [options] Conversion options
                             * @returns Plain object
                             */
                            public static toObject(message: google.cloud.dialogflow.v2beta1.Conversation.TelephonyConnectionInfo.SipHeader, options?: $protobuf.IConversionOptions): { [k: string]: any };

                            /**
                             * Converts this SipHeader to JSON.
                             * @returns JSON object
                             */
                            public toJSON(): { [k: string]: any };

                            /**
                             * Gets the default type url for SipHeader
                             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                             * @returns The default type url
                             */
                            public static getTypeUrl(typeUrlPrefix?: string): string;
                        }

                        /** Properties of a MimeContent. */
                        interface IMimeContent {

                            /** MimeContent mimeType */
                            mimeType?: (string|null);

                            /** MimeContent content */
                            content?: (Uint8Array|Buffer|string|null);
                        }

                        /** Represents a MimeContent. */
                        class MimeContent implements IMimeContent {

                            /**
                             * Constructs a new MimeContent.
                             * @param [properties] Properties to set
                             */
                            constructor(properties?: google.cloud.dialogflow.v2beta1.Conversation.TelephonyConnectionInfo.IMimeContent);

                            /** MimeContent mimeType. */
                            public mimeType: string;

                            /** MimeContent content. */
                            public content: (Uint8Array|Buffer|string);

                            /**
                             * Creates a new MimeContent instance using the specified properties.
                             * @param [properties] Properties to set
                             * @returns MimeContent instance
                             */
                            public static create(properties?: google.cloud.dialogflow.v2beta1.Conversation.TelephonyConnectionInfo.IMimeContent): google.cloud.dialogflow.v2beta1.Conversation.TelephonyConnectionInfo.MimeContent;

                            /**
                             * Encodes the specified MimeContent message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Conversation.TelephonyConnectionInfo.MimeContent.verify|verify} messages.
                             * @param message MimeContent message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encode(message: google.cloud.dialogflow.v2beta1.Conversation.TelephonyConnectionInfo.IMimeContent, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Encodes the specified MimeContent message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Conversation.TelephonyConnectionInfo.MimeContent.verify|verify} messages.
                             * @param message MimeContent message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.Conversation.TelephonyConnectionInfo.IMimeContent, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Decodes a MimeContent message from the specified reader or buffer.
                             * @param reader Reader or buffer to decode from
                             * @param [length] Message length if known beforehand
                             * @returns MimeContent
                             * @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.cloud.dialogflow.v2beta1.Conversation.TelephonyConnectionInfo.MimeContent;

                            /**
                             * Decodes a MimeContent message from the specified reader or buffer, length delimited.
                             * @param reader Reader or buffer to decode from
                             * @returns MimeContent
                             * @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.cloud.dialogflow.v2beta1.Conversation.TelephonyConnectionInfo.MimeContent;

                            /**
                             * Verifies a MimeContent 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 MimeContent message from a plain object. Also converts values to their respective internal types.
                             * @param object Plain object
                             * @returns MimeContent
                             */
                            public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.Conversation.TelephonyConnectionInfo.MimeContent;

                            /**
                             * Creates a plain object from a MimeContent message. Also converts values to other types if specified.
                             * @param message MimeContent
                             * @param [options] Conversion options
                             * @returns Plain object
                             */
                            public static toObject(message: google.cloud.dialogflow.v2beta1.Conversation.TelephonyConnectionInfo.MimeContent, options?: $protobuf.IConversionOptions): { [k: string]: any };

                            /**
                             * Converts this MimeContent to JSON.
                             * @returns JSON object
                             */
                            public toJSON(): { [k: string]: any };

                            /**
                             * Gets the default type url for MimeContent
                             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                             * @returns The default type url
                             */
                            public static getTypeUrl(typeUrlPrefix?: string): string;
                        }
                    }

                    /** Properties of a ContextReference. */
                    interface IContextReference {

                        /** ContextReference contextContents */
                        contextContents?: (google.cloud.dialogflow.v2beta1.Conversation.ContextReference.IContextContent[]|null);

                        /** ContextReference updateMode */
                        updateMode?: (google.cloud.dialogflow.v2beta1.Conversation.ContextReference.UpdateMode|keyof typeof google.cloud.dialogflow.v2beta1.Conversation.ContextReference.UpdateMode|null);

                        /** ContextReference languageCode */
                        languageCode?: (string|null);

                        /** ContextReference createTime */
                        createTime?: (google.protobuf.ITimestamp|null);
                    }

                    /** Represents a ContextReference. */
                    class ContextReference implements IContextReference {

                        /**
                         * Constructs a new ContextReference.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2beta1.Conversation.IContextReference);

                        /** ContextReference contextContents. */
                        public contextContents: google.cloud.dialogflow.v2beta1.Conversation.ContextReference.IContextContent[];

                        /** ContextReference updateMode. */
                        public updateMode: (google.cloud.dialogflow.v2beta1.Conversation.ContextReference.UpdateMode|keyof typeof google.cloud.dialogflow.v2beta1.Conversation.ContextReference.UpdateMode);

                        /** ContextReference languageCode. */
                        public languageCode: string;

                        /** ContextReference createTime. */
                        public createTime?: (google.protobuf.ITimestamp|null);

                        /**
                         * Creates a new ContextReference instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns ContextReference instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2beta1.Conversation.IContextReference): google.cloud.dialogflow.v2beta1.Conversation.ContextReference;

                        /**
                         * Encodes the specified ContextReference message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Conversation.ContextReference.verify|verify} messages.
                         * @param message ContextReference message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2beta1.Conversation.IContextReference, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified ContextReference message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Conversation.ContextReference.verify|verify} messages.
                         * @param message ContextReference message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.Conversation.IContextReference, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a ContextReference message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns ContextReference
                         * @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.cloud.dialogflow.v2beta1.Conversation.ContextReference;

                        /**
                         * Decodes a ContextReference message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns ContextReference
                         * @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.cloud.dialogflow.v2beta1.Conversation.ContextReference;

                        /**
                         * Verifies a ContextReference 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 ContextReference message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns ContextReference
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.Conversation.ContextReference;

                        /**
                         * Creates a plain object from a ContextReference message. Also converts values to other types if specified.
                         * @param message ContextReference
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.dialogflow.v2beta1.Conversation.ContextReference, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this ContextReference to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for ContextReference
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    namespace ContextReference {

                        /** Properties of a ContextContent. */
                        interface IContextContent {

                            /** ContextContent content */
                            content?: (string|null);

                            /** ContextContent contentFormat */
                            contentFormat?: (google.cloud.dialogflow.v2beta1.Conversation.ContextReference.ContextContent.ContentFormat|keyof typeof google.cloud.dialogflow.v2beta1.Conversation.ContextReference.ContextContent.ContentFormat|null);

                            /** ContextContent ingestionTime */
                            ingestionTime?: (google.protobuf.ITimestamp|null);

                            /** ContextContent answerRecord */
                            answerRecord?: (string|null);
                        }

                        /** Represents a ContextContent. */
                        class ContextContent implements IContextContent {

                            /**
                             * Constructs a new ContextContent.
                             * @param [properties] Properties to set
                             */
                            constructor(properties?: google.cloud.dialogflow.v2beta1.Conversation.ContextReference.IContextContent);

                            /** ContextContent content. */
                            public content: string;

                            /** ContextContent contentFormat. */
                            public contentFormat: (google.cloud.dialogflow.v2beta1.Conversation.ContextReference.ContextContent.ContentFormat|keyof typeof google.cloud.dialogflow.v2beta1.Conversation.ContextReference.ContextContent.ContentFormat);

                            /** ContextContent ingestionTime. */
                            public ingestionTime?: (google.protobuf.ITimestamp|null);

                            /** ContextContent answerRecord. */
                            public answerRecord: string;

                            /**
                             * Creates a new ContextContent instance using the specified properties.
                             * @param [properties] Properties to set
                             * @returns ContextContent instance
                             */
                            public static create(properties?: google.cloud.dialogflow.v2beta1.Conversation.ContextReference.IContextContent): google.cloud.dialogflow.v2beta1.Conversation.ContextReference.ContextContent;

                            /**
                             * Encodes the specified ContextContent message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Conversation.ContextReference.ContextContent.verify|verify} messages.
                             * @param message ContextContent message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encode(message: google.cloud.dialogflow.v2beta1.Conversation.ContextReference.IContextContent, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Encodes the specified ContextContent message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Conversation.ContextReference.ContextContent.verify|verify} messages.
                             * @param message ContextContent message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.Conversation.ContextReference.IContextContent, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Decodes a ContextContent message from the specified reader or buffer.
                             * @param reader Reader or buffer to decode from
                             * @param [length] Message length if known beforehand
                             * @returns ContextContent
                             * @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.cloud.dialogflow.v2beta1.Conversation.ContextReference.ContextContent;

                            /**
                             * Decodes a ContextContent message from the specified reader or buffer, length delimited.
                             * @param reader Reader or buffer to decode from
                             * @returns ContextContent
                             * @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.cloud.dialogflow.v2beta1.Conversation.ContextReference.ContextContent;

                            /**
                             * Verifies a ContextContent 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 ContextContent message from a plain object. Also converts values to their respective internal types.
                             * @param object Plain object
                             * @returns ContextContent
                             */
                            public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.Conversation.ContextReference.ContextContent;

                            /**
                             * Creates a plain object from a ContextContent message. Also converts values to other types if specified.
                             * @param message ContextContent
                             * @param [options] Conversion options
                             * @returns Plain object
                             */
                            public static toObject(message: google.cloud.dialogflow.v2beta1.Conversation.ContextReference.ContextContent, options?: $protobuf.IConversionOptions): { [k: string]: any };

                            /**
                             * Converts this ContextContent to JSON.
                             * @returns JSON object
                             */
                            public toJSON(): { [k: string]: any };

                            /**
                             * Gets the default type url for ContextContent
                             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                             * @returns The default type url
                             */
                            public static getTypeUrl(typeUrlPrefix?: string): string;
                        }

                        namespace ContextContent {

                            /** ContentFormat enum. */
                            enum ContentFormat {
                                CONTENT_FORMAT_UNSPECIFIED = 0,
                                JSON = 1,
                                PLAIN_TEXT = 2
                            }
                        }

                        /** UpdateMode enum. */
                        enum UpdateMode {
                            UPDATE_MODE_UNSPECIFIED = 0,
                            APPEND = 1,
                            OVERWRITE = 2
                        }
                    }

                    /** Properties of a GeneratorContext. */
                    interface IGeneratorContext {

                        /** GeneratorContext generatorType */
                        generatorType?: (google.cloud.dialogflow.v2beta1.Conversation.GeneratorContext.GeneratorType|keyof typeof google.cloud.dialogflow.v2beta1.Conversation.GeneratorContext.GeneratorType|null);
                    }

                    /** Represents a GeneratorContext. */
                    class GeneratorContext implements IGeneratorContext {

                        /**
                         * Constructs a new GeneratorContext.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2beta1.Conversation.IGeneratorContext);

                        /** GeneratorContext generatorType. */
                        public generatorType: (google.cloud.dialogflow.v2beta1.Conversation.GeneratorContext.GeneratorType|keyof typeof google.cloud.dialogflow.v2beta1.Conversation.GeneratorContext.GeneratorType);

                        /**
                         * Creates a new GeneratorContext instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns GeneratorContext instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2beta1.Conversation.IGeneratorContext): google.cloud.dialogflow.v2beta1.Conversation.GeneratorContext;

                        /**
                         * Encodes the specified GeneratorContext message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Conversation.GeneratorContext.verify|verify} messages.
                         * @param message GeneratorContext message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2beta1.Conversation.IGeneratorContext, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified GeneratorContext message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Conversation.GeneratorContext.verify|verify} messages.
                         * @param message GeneratorContext message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.Conversation.IGeneratorContext, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a GeneratorContext message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns GeneratorContext
                         * @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.cloud.dialogflow.v2beta1.Conversation.GeneratorContext;

                        /**
                         * Decodes a GeneratorContext message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns GeneratorContext
                         * @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.cloud.dialogflow.v2beta1.Conversation.GeneratorContext;

                        /**
                         * Verifies a GeneratorContext 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 GeneratorContext message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns GeneratorContext
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.Conversation.GeneratorContext;

                        /**
                         * Creates a plain object from a GeneratorContext message. Also converts values to other types if specified.
                         * @param message GeneratorContext
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.dialogflow.v2beta1.Conversation.GeneratorContext, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this GeneratorContext to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for GeneratorContext
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    namespace GeneratorContext {

                        /** GeneratorType enum. */
                        enum GeneratorType {
                            GENERATOR_TYPE_UNSPECIFIED = 0,
                            FREE_FORM = 1,
                            AGENT_COACHING = 2,
                            SUMMARIZATION = 3,
                            TRANSLATION = 4,
                            AGENT_FEEDBACK = 5,
                            CUSTOMER_MESSAGE_GENERATION = 6
                        }
                    }
                }

                /** Properties of a ConversationPhoneNumber. */
                interface IConversationPhoneNumber {

                    /** ConversationPhoneNumber countryCode */
                    countryCode?: (number|null);

                    /** ConversationPhoneNumber phoneNumber */
                    phoneNumber?: (string|null);
                }

                /** Represents a ConversationPhoneNumber. */
                class ConversationPhoneNumber implements IConversationPhoneNumber {

                    /**
                     * Constructs a new ConversationPhoneNumber.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IConversationPhoneNumber);

                    /** ConversationPhoneNumber countryCode. */
                    public countryCode: number;

                    /** ConversationPhoneNumber phoneNumber. */
                    public phoneNumber: string;

                    /**
                     * Creates a new ConversationPhoneNumber instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ConversationPhoneNumber instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IConversationPhoneNumber): google.cloud.dialogflow.v2beta1.ConversationPhoneNumber;

                    /**
                     * Encodes the specified ConversationPhoneNumber message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.ConversationPhoneNumber.verify|verify} messages.
                     * @param message ConversationPhoneNumber message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IConversationPhoneNumber, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ConversationPhoneNumber message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.ConversationPhoneNumber.verify|verify} messages.
                     * @param message ConversationPhoneNumber message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IConversationPhoneNumber, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ConversationPhoneNumber message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ConversationPhoneNumber
                     * @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.cloud.dialogflow.v2beta1.ConversationPhoneNumber;

                    /**
                     * Decodes a ConversationPhoneNumber message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ConversationPhoneNumber
                     * @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.cloud.dialogflow.v2beta1.ConversationPhoneNumber;

                    /**
                     * Verifies a ConversationPhoneNumber 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 ConversationPhoneNumber message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ConversationPhoneNumber
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.ConversationPhoneNumber;

                    /**
                     * Creates a plain object from a ConversationPhoneNumber message. Also converts values to other types if specified.
                     * @param message ConversationPhoneNumber
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.ConversationPhoneNumber, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ConversationPhoneNumber to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ConversationPhoneNumber
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a CreateConversationRequest. */
                interface ICreateConversationRequest {

                    /** CreateConversationRequest parent */
                    parent?: (string|null);

                    /** CreateConversationRequest conversation */
                    conversation?: (google.cloud.dialogflow.v2beta1.IConversation|null);

                    /** CreateConversationRequest conversationId */
                    conversationId?: (string|null);
                }

                /** Represents a CreateConversationRequest. */
                class CreateConversationRequest implements ICreateConversationRequest {

                    /**
                     * Constructs a new CreateConversationRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.ICreateConversationRequest);

                    /** CreateConversationRequest parent. */
                    public parent: string;

                    /** CreateConversationRequest conversation. */
                    public conversation?: (google.cloud.dialogflow.v2beta1.IConversation|null);

                    /** CreateConversationRequest conversationId. */
                    public conversationId: string;

                    /**
                     * Creates a new CreateConversationRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CreateConversationRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.ICreateConversationRequest): google.cloud.dialogflow.v2beta1.CreateConversationRequest;

                    /**
                     * Encodes the specified CreateConversationRequest message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.CreateConversationRequest.verify|verify} messages.
                     * @param message CreateConversationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.ICreateConversationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CreateConversationRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.CreateConversationRequest.verify|verify} messages.
                     * @param message CreateConversationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.ICreateConversationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CreateConversationRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CreateConversationRequest
                     * @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.cloud.dialogflow.v2beta1.CreateConversationRequest;

                    /**
                     * Decodes a CreateConversationRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CreateConversationRequest
                     * @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.cloud.dialogflow.v2beta1.CreateConversationRequest;

                    /**
                     * Verifies a CreateConversationRequest 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 CreateConversationRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CreateConversationRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.CreateConversationRequest;

                    /**
                     * Creates a plain object from a CreateConversationRequest message. Also converts values to other types if specified.
                     * @param message CreateConversationRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.CreateConversationRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CreateConversationRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CreateConversationRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListConversationsRequest. */
                interface IListConversationsRequest {

                    /** ListConversationsRequest parent */
                    parent?: (string|null);

                    /** ListConversationsRequest pageSize */
                    pageSize?: (number|null);

                    /** ListConversationsRequest pageToken */
                    pageToken?: (string|null);

                    /** ListConversationsRequest filter */
                    filter?: (string|null);
                }

                /** Represents a ListConversationsRequest. */
                class ListConversationsRequest implements IListConversationsRequest {

                    /**
                     * Constructs a new ListConversationsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IListConversationsRequest);

                    /** ListConversationsRequest parent. */
                    public parent: string;

                    /** ListConversationsRequest pageSize. */
                    public pageSize: number;

                    /** ListConversationsRequest pageToken. */
                    public pageToken: string;

                    /** ListConversationsRequest filter. */
                    public filter: string;

                    /**
                     * Creates a new ListConversationsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListConversationsRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IListConversationsRequest): google.cloud.dialogflow.v2beta1.ListConversationsRequest;

                    /**
                     * Encodes the specified ListConversationsRequest message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.ListConversationsRequest.verify|verify} messages.
                     * @param message ListConversationsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IListConversationsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListConversationsRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.ListConversationsRequest.verify|verify} messages.
                     * @param message ListConversationsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IListConversationsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListConversationsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListConversationsRequest
                     * @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.cloud.dialogflow.v2beta1.ListConversationsRequest;

                    /**
                     * Decodes a ListConversationsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListConversationsRequest
                     * @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.cloud.dialogflow.v2beta1.ListConversationsRequest;

                    /**
                     * Verifies a ListConversationsRequest 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 ListConversationsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListConversationsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.ListConversationsRequest;

                    /**
                     * Creates a plain object from a ListConversationsRequest message. Also converts values to other types if specified.
                     * @param message ListConversationsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.ListConversationsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListConversationsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListConversationsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListConversationsResponse. */
                interface IListConversationsResponse {

                    /** ListConversationsResponse conversations */
                    conversations?: (google.cloud.dialogflow.v2beta1.IConversation[]|null);

                    /** ListConversationsResponse nextPageToken */
                    nextPageToken?: (string|null);
                }

                /** Represents a ListConversationsResponse. */
                class ListConversationsResponse implements IListConversationsResponse {

                    /**
                     * Constructs a new ListConversationsResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IListConversationsResponse);

                    /** ListConversationsResponse conversations. */
                    public conversations: google.cloud.dialogflow.v2beta1.IConversation[];

                    /** ListConversationsResponse nextPageToken. */
                    public nextPageToken: string;

                    /**
                     * Creates a new ListConversationsResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListConversationsResponse instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IListConversationsResponse): google.cloud.dialogflow.v2beta1.ListConversationsResponse;

                    /**
                     * Encodes the specified ListConversationsResponse message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.ListConversationsResponse.verify|verify} messages.
                     * @param message ListConversationsResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IListConversationsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListConversationsResponse message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.ListConversationsResponse.verify|verify} messages.
                     * @param message ListConversationsResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IListConversationsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListConversationsResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListConversationsResponse
                     * @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.cloud.dialogflow.v2beta1.ListConversationsResponse;

                    /**
                     * Decodes a ListConversationsResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListConversationsResponse
                     * @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.cloud.dialogflow.v2beta1.ListConversationsResponse;

                    /**
                     * Verifies a ListConversationsResponse 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 ListConversationsResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListConversationsResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.ListConversationsResponse;

                    /**
                     * Creates a plain object from a ListConversationsResponse message. Also converts values to other types if specified.
                     * @param message ListConversationsResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.ListConversationsResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListConversationsResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListConversationsResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetConversationRequest. */
                interface IGetConversationRequest {

                    /** GetConversationRequest name */
                    name?: (string|null);
                }

                /** Represents a GetConversationRequest. */
                class GetConversationRequest implements IGetConversationRequest {

                    /**
                     * Constructs a new GetConversationRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IGetConversationRequest);

                    /** GetConversationRequest name. */
                    public name: string;

                    /**
                     * Creates a new GetConversationRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetConversationRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IGetConversationRequest): google.cloud.dialogflow.v2beta1.GetConversationRequest;

                    /**
                     * Encodes the specified GetConversationRequest message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.GetConversationRequest.verify|verify} messages.
                     * @param message GetConversationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IGetConversationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetConversationRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.GetConversationRequest.verify|verify} messages.
                     * @param message GetConversationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IGetConversationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetConversationRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetConversationRequest
                     * @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.cloud.dialogflow.v2beta1.GetConversationRequest;

                    /**
                     * Decodes a GetConversationRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetConversationRequest
                     * @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.cloud.dialogflow.v2beta1.GetConversationRequest;

                    /**
                     * Verifies a GetConversationRequest 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 GetConversationRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetConversationRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.GetConversationRequest;

                    /**
                     * Creates a plain object from a GetConversationRequest message. Also converts values to other types if specified.
                     * @param message GetConversationRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.GetConversationRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetConversationRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetConversationRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a CompleteConversationRequest. */
                interface ICompleteConversationRequest {

                    /** CompleteConversationRequest name */
                    name?: (string|null);
                }

                /** Represents a CompleteConversationRequest. */
                class CompleteConversationRequest implements ICompleteConversationRequest {

                    /**
                     * Constructs a new CompleteConversationRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.ICompleteConversationRequest);

                    /** CompleteConversationRequest name. */
                    public name: string;

                    /**
                     * Creates a new CompleteConversationRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CompleteConversationRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.ICompleteConversationRequest): google.cloud.dialogflow.v2beta1.CompleteConversationRequest;

                    /**
                     * Encodes the specified CompleteConversationRequest message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.CompleteConversationRequest.verify|verify} messages.
                     * @param message CompleteConversationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.ICompleteConversationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CompleteConversationRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.CompleteConversationRequest.verify|verify} messages.
                     * @param message CompleteConversationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.ICompleteConversationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CompleteConversationRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CompleteConversationRequest
                     * @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.cloud.dialogflow.v2beta1.CompleteConversationRequest;

                    /**
                     * Decodes a CompleteConversationRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CompleteConversationRequest
                     * @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.cloud.dialogflow.v2beta1.CompleteConversationRequest;

                    /**
                     * Verifies a CompleteConversationRequest 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 CompleteConversationRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CompleteConversationRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.CompleteConversationRequest;

                    /**
                     * Creates a plain object from a CompleteConversationRequest message. Also converts values to other types if specified.
                     * @param message CompleteConversationRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.CompleteConversationRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CompleteConversationRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CompleteConversationRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a CreateMessageRequest. */
                interface ICreateMessageRequest {

                    /** CreateMessageRequest parent */
                    parent?: (string|null);

                    /** CreateMessageRequest message */
                    message?: (google.cloud.dialogflow.v2beta1.IMessage|null);
                }

                /** Represents a CreateMessageRequest. */
                class CreateMessageRequest implements ICreateMessageRequest {

                    /**
                     * Constructs a new CreateMessageRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.ICreateMessageRequest);

                    /** CreateMessageRequest parent. */
                    public parent: string;

                    /** CreateMessageRequest message. */
                    public message?: (google.cloud.dialogflow.v2beta1.IMessage|null);

                    /**
                     * Creates a new CreateMessageRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CreateMessageRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.ICreateMessageRequest): google.cloud.dialogflow.v2beta1.CreateMessageRequest;

                    /**
                     * Encodes the specified CreateMessageRequest message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.CreateMessageRequest.verify|verify} messages.
                     * @param message CreateMessageRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.ICreateMessageRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CreateMessageRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.CreateMessageRequest.verify|verify} messages.
                     * @param message CreateMessageRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.ICreateMessageRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CreateMessageRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CreateMessageRequest
                     * @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.cloud.dialogflow.v2beta1.CreateMessageRequest;

                    /**
                     * Decodes a CreateMessageRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CreateMessageRequest
                     * @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.cloud.dialogflow.v2beta1.CreateMessageRequest;

                    /**
                     * Verifies a CreateMessageRequest 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 CreateMessageRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CreateMessageRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.CreateMessageRequest;

                    /**
                     * Creates a plain object from a CreateMessageRequest message. Also converts values to other types if specified.
                     * @param message CreateMessageRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.CreateMessageRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CreateMessageRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CreateMessageRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a BatchCreateMessagesRequest. */
                interface IBatchCreateMessagesRequest {

                    /** BatchCreateMessagesRequest parent */
                    parent?: (string|null);

                    /** BatchCreateMessagesRequest requests */
                    requests?: (google.cloud.dialogflow.v2beta1.ICreateMessageRequest[]|null);
                }

                /** Represents a BatchCreateMessagesRequest. */
                class BatchCreateMessagesRequest implements IBatchCreateMessagesRequest {

                    /**
                     * Constructs a new BatchCreateMessagesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IBatchCreateMessagesRequest);

                    /** BatchCreateMessagesRequest parent. */
                    public parent: string;

                    /** BatchCreateMessagesRequest requests. */
                    public requests: google.cloud.dialogflow.v2beta1.ICreateMessageRequest[];

                    /**
                     * Creates a new BatchCreateMessagesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BatchCreateMessagesRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IBatchCreateMessagesRequest): google.cloud.dialogflow.v2beta1.BatchCreateMessagesRequest;

                    /**
                     * Encodes the specified BatchCreateMessagesRequest message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.BatchCreateMessagesRequest.verify|verify} messages.
                     * @param message BatchCreateMessagesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IBatchCreateMessagesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BatchCreateMessagesRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.BatchCreateMessagesRequest.verify|verify} messages.
                     * @param message BatchCreateMessagesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IBatchCreateMessagesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BatchCreateMessagesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BatchCreateMessagesRequest
                     * @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.cloud.dialogflow.v2beta1.BatchCreateMessagesRequest;

                    /**
                     * Decodes a BatchCreateMessagesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BatchCreateMessagesRequest
                     * @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.cloud.dialogflow.v2beta1.BatchCreateMessagesRequest;

                    /**
                     * Verifies a BatchCreateMessagesRequest 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 BatchCreateMessagesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BatchCreateMessagesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.BatchCreateMessagesRequest;

                    /**
                     * Creates a plain object from a BatchCreateMessagesRequest message. Also converts values to other types if specified.
                     * @param message BatchCreateMessagesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.BatchCreateMessagesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BatchCreateMessagesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BatchCreateMessagesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a BatchCreateMessagesResponse. */
                interface IBatchCreateMessagesResponse {

                    /** BatchCreateMessagesResponse messages */
                    messages?: (google.cloud.dialogflow.v2beta1.IMessage[]|null);
                }

                /** Represents a BatchCreateMessagesResponse. */
                class BatchCreateMessagesResponse implements IBatchCreateMessagesResponse {

                    /**
                     * Constructs a new BatchCreateMessagesResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IBatchCreateMessagesResponse);

                    /** BatchCreateMessagesResponse messages. */
                    public messages: google.cloud.dialogflow.v2beta1.IMessage[];

                    /**
                     * Creates a new BatchCreateMessagesResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BatchCreateMessagesResponse instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IBatchCreateMessagesResponse): google.cloud.dialogflow.v2beta1.BatchCreateMessagesResponse;

                    /**
                     * Encodes the specified BatchCreateMessagesResponse message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.BatchCreateMessagesResponse.verify|verify} messages.
                     * @param message BatchCreateMessagesResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IBatchCreateMessagesResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BatchCreateMessagesResponse message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.BatchCreateMessagesResponse.verify|verify} messages.
                     * @param message BatchCreateMessagesResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IBatchCreateMessagesResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BatchCreateMessagesResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BatchCreateMessagesResponse
                     * @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.cloud.dialogflow.v2beta1.BatchCreateMessagesResponse;

                    /**
                     * Decodes a BatchCreateMessagesResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BatchCreateMessagesResponse
                     * @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.cloud.dialogflow.v2beta1.BatchCreateMessagesResponse;

                    /**
                     * Verifies a BatchCreateMessagesResponse 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 BatchCreateMessagesResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BatchCreateMessagesResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.BatchCreateMessagesResponse;

                    /**
                     * Creates a plain object from a BatchCreateMessagesResponse message. Also converts values to other types if specified.
                     * @param message BatchCreateMessagesResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.BatchCreateMessagesResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BatchCreateMessagesResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BatchCreateMessagesResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListMessagesRequest. */
                interface IListMessagesRequest {

                    /** ListMessagesRequest parent */
                    parent?: (string|null);

                    /** ListMessagesRequest filter */
                    filter?: (string|null);

                    /** ListMessagesRequest pageSize */
                    pageSize?: (number|null);

                    /** ListMessagesRequest pageToken */
                    pageToken?: (string|null);
                }

                /** Represents a ListMessagesRequest. */
                class ListMessagesRequest implements IListMessagesRequest {

                    /**
                     * Constructs a new ListMessagesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IListMessagesRequest);

                    /** ListMessagesRequest parent. */
                    public parent: string;

                    /** ListMessagesRequest filter. */
                    public filter: string;

                    /** ListMessagesRequest pageSize. */
                    public pageSize: number;

                    /** ListMessagesRequest pageToken. */
                    public pageToken: string;

                    /**
                     * Creates a new ListMessagesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListMessagesRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IListMessagesRequest): google.cloud.dialogflow.v2beta1.ListMessagesRequest;

                    /**
                     * Encodes the specified ListMessagesRequest message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.ListMessagesRequest.verify|verify} messages.
                     * @param message ListMessagesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IListMessagesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListMessagesRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.ListMessagesRequest.verify|verify} messages.
                     * @param message ListMessagesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IListMessagesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListMessagesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListMessagesRequest
                     * @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.cloud.dialogflow.v2beta1.ListMessagesRequest;

                    /**
                     * Decodes a ListMessagesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListMessagesRequest
                     * @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.cloud.dialogflow.v2beta1.ListMessagesRequest;

                    /**
                     * Verifies a ListMessagesRequest 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 ListMessagesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListMessagesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.ListMessagesRequest;

                    /**
                     * Creates a plain object from a ListMessagesRequest message. Also converts values to other types if specified.
                     * @param message ListMessagesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.ListMessagesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListMessagesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListMessagesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListMessagesResponse. */
                interface IListMessagesResponse {

                    /** ListMessagesResponse messages */
                    messages?: (google.cloud.dialogflow.v2beta1.IMessage[]|null);

                    /** ListMessagesResponse nextPageToken */
                    nextPageToken?: (string|null);
                }

                /** Represents a ListMessagesResponse. */
                class ListMessagesResponse implements IListMessagesResponse {

                    /**
                     * Constructs a new ListMessagesResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IListMessagesResponse);

                    /** ListMessagesResponse messages. */
                    public messages: google.cloud.dialogflow.v2beta1.IMessage[];

                    /** ListMessagesResponse nextPageToken. */
                    public nextPageToken: string;

                    /**
                     * Creates a new ListMessagesResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListMessagesResponse instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IListMessagesResponse): google.cloud.dialogflow.v2beta1.ListMessagesResponse;

                    /**
                     * Encodes the specified ListMessagesResponse message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.ListMessagesResponse.verify|verify} messages.
                     * @param message ListMessagesResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IListMessagesResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListMessagesResponse message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.ListMessagesResponse.verify|verify} messages.
                     * @param message ListMessagesResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IListMessagesResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListMessagesResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListMessagesResponse
                     * @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.cloud.dialogflow.v2beta1.ListMessagesResponse;

                    /**
                     * Decodes a ListMessagesResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListMessagesResponse
                     * @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.cloud.dialogflow.v2beta1.ListMessagesResponse;

                    /**
                     * Verifies a ListMessagesResponse 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 ListMessagesResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListMessagesResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.ListMessagesResponse;

                    /**
                     * Creates a plain object from a ListMessagesResponse message. Also converts values to other types if specified.
                     * @param message ListMessagesResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.ListMessagesResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListMessagesResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListMessagesResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an IngestContextReferencesRequest. */
                interface IIngestContextReferencesRequest {

                    /** IngestContextReferencesRequest conversation */
                    conversation?: (string|null);

                    /** IngestContextReferencesRequest contextReferences */
                    contextReferences?: ({ [k: string]: google.cloud.dialogflow.v2beta1.Conversation.IContextReference }|null);
                }

                /** Represents an IngestContextReferencesRequest. */
                class IngestContextReferencesRequest implements IIngestContextReferencesRequest {

                    /**
                     * Constructs a new IngestContextReferencesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IIngestContextReferencesRequest);

                    /** IngestContextReferencesRequest conversation. */
                    public conversation: string;

                    /** IngestContextReferencesRequest contextReferences. */
                    public contextReferences: { [k: string]: google.cloud.dialogflow.v2beta1.Conversation.IContextReference };

                    /**
                     * Creates a new IngestContextReferencesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns IngestContextReferencesRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IIngestContextReferencesRequest): google.cloud.dialogflow.v2beta1.IngestContextReferencesRequest;

                    /**
                     * Encodes the specified IngestContextReferencesRequest message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.IngestContextReferencesRequest.verify|verify} messages.
                     * @param message IngestContextReferencesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IIngestContextReferencesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified IngestContextReferencesRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.IngestContextReferencesRequest.verify|verify} messages.
                     * @param message IngestContextReferencesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IIngestContextReferencesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an IngestContextReferencesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns IngestContextReferencesRequest
                     * @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.cloud.dialogflow.v2beta1.IngestContextReferencesRequest;

                    /**
                     * Decodes an IngestContextReferencesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns IngestContextReferencesRequest
                     * @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.cloud.dialogflow.v2beta1.IngestContextReferencesRequest;

                    /**
                     * Verifies an IngestContextReferencesRequest 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 IngestContextReferencesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns IngestContextReferencesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.IngestContextReferencesRequest;

                    /**
                     * Creates a plain object from an IngestContextReferencesRequest message. Also converts values to other types if specified.
                     * @param message IngestContextReferencesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.IngestContextReferencesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this IngestContextReferencesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for IngestContextReferencesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an IngestContextReferencesResponse. */
                interface IIngestContextReferencesResponse {

                    /** IngestContextReferencesResponse ingestedContextReferences */
                    ingestedContextReferences?: ({ [k: string]: google.cloud.dialogflow.v2beta1.Conversation.IContextReference }|null);
                }

                /** Represents an IngestContextReferencesResponse. */
                class IngestContextReferencesResponse implements IIngestContextReferencesResponse {

                    /**
                     * Constructs a new IngestContextReferencesResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IIngestContextReferencesResponse);

                    /** IngestContextReferencesResponse ingestedContextReferences. */
                    public ingestedContextReferences: { [k: string]: google.cloud.dialogflow.v2beta1.Conversation.IContextReference };

                    /**
                     * Creates a new IngestContextReferencesResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns IngestContextReferencesResponse instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IIngestContextReferencesResponse): google.cloud.dialogflow.v2beta1.IngestContextReferencesResponse;

                    /**
                     * Encodes the specified IngestContextReferencesResponse message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.IngestContextReferencesResponse.verify|verify} messages.
                     * @param message IngestContextReferencesResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IIngestContextReferencesResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified IngestContextReferencesResponse message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.IngestContextReferencesResponse.verify|verify} messages.
                     * @param message IngestContextReferencesResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IIngestContextReferencesResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an IngestContextReferencesResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns IngestContextReferencesResponse
                     * @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.cloud.dialogflow.v2beta1.IngestContextReferencesResponse;

                    /**
                     * Decodes an IngestContextReferencesResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns IngestContextReferencesResponse
                     * @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.cloud.dialogflow.v2beta1.IngestContextReferencesResponse;

                    /**
                     * Verifies an IngestContextReferencesResponse 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 IngestContextReferencesResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns IngestContextReferencesResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.IngestContextReferencesResponse;

                    /**
                     * Creates a plain object from an IngestContextReferencesResponse message. Also converts values to other types if specified.
                     * @param message IngestContextReferencesResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.IngestContextReferencesResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this IngestContextReferencesResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for IngestContextReferencesResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SuggestConversationSummaryRequest. */
                interface ISuggestConversationSummaryRequest {

                    /** SuggestConversationSummaryRequest conversation */
                    conversation?: (string|null);

                    /** SuggestConversationSummaryRequest latestMessage */
                    latestMessage?: (string|null);

                    /** SuggestConversationSummaryRequest contextSize */
                    contextSize?: (number|null);

                    /** SuggestConversationSummaryRequest assistQueryParams */
                    assistQueryParams?: (google.cloud.dialogflow.v2beta1.IAssistQueryParameters|null);
                }

                /** Represents a SuggestConversationSummaryRequest. */
                class SuggestConversationSummaryRequest implements ISuggestConversationSummaryRequest {

                    /**
                     * Constructs a new SuggestConversationSummaryRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.ISuggestConversationSummaryRequest);

                    /** SuggestConversationSummaryRequest conversation. */
                    public conversation: string;

                    /** SuggestConversationSummaryRequest latestMessage. */
                    public latestMessage: string;

                    /** SuggestConversationSummaryRequest contextSize. */
                    public contextSize: number;

                    /** SuggestConversationSummaryRequest assistQueryParams. */
                    public assistQueryParams?: (google.cloud.dialogflow.v2beta1.IAssistQueryParameters|null);

                    /**
                     * Creates a new SuggestConversationSummaryRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SuggestConversationSummaryRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.ISuggestConversationSummaryRequest): google.cloud.dialogflow.v2beta1.SuggestConversationSummaryRequest;

                    /**
                     * Encodes the specified SuggestConversationSummaryRequest message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.SuggestConversationSummaryRequest.verify|verify} messages.
                     * @param message SuggestConversationSummaryRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.ISuggestConversationSummaryRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SuggestConversationSummaryRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.SuggestConversationSummaryRequest.verify|verify} messages.
                     * @param message SuggestConversationSummaryRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.ISuggestConversationSummaryRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SuggestConversationSummaryRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SuggestConversationSummaryRequest
                     * @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.cloud.dialogflow.v2beta1.SuggestConversationSummaryRequest;

                    /**
                     * Decodes a SuggestConversationSummaryRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SuggestConversationSummaryRequest
                     * @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.cloud.dialogflow.v2beta1.SuggestConversationSummaryRequest;

                    /**
                     * Verifies a SuggestConversationSummaryRequest 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 SuggestConversationSummaryRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SuggestConversationSummaryRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.SuggestConversationSummaryRequest;

                    /**
                     * Creates a plain object from a SuggestConversationSummaryRequest message. Also converts values to other types if specified.
                     * @param message SuggestConversationSummaryRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.SuggestConversationSummaryRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SuggestConversationSummaryRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SuggestConversationSummaryRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SuggestConversationSummaryResponse. */
                interface ISuggestConversationSummaryResponse {

                    /** SuggestConversationSummaryResponse summary */
                    summary?: (google.cloud.dialogflow.v2beta1.SuggestConversationSummaryResponse.ISummary|null);

                    /** SuggestConversationSummaryResponse latestMessage */
                    latestMessage?: (string|null);

                    /** SuggestConversationSummaryResponse contextSize */
                    contextSize?: (number|null);
                }

                /** Represents a SuggestConversationSummaryResponse. */
                class SuggestConversationSummaryResponse implements ISuggestConversationSummaryResponse {

                    /**
                     * Constructs a new SuggestConversationSummaryResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.ISuggestConversationSummaryResponse);

                    /** SuggestConversationSummaryResponse summary. */
                    public summary?: (google.cloud.dialogflow.v2beta1.SuggestConversationSummaryResponse.ISummary|null);

                    /** SuggestConversationSummaryResponse latestMessage. */
                    public latestMessage: string;

                    /** SuggestConversationSummaryResponse contextSize. */
                    public contextSize: number;

                    /**
                     * Creates a new SuggestConversationSummaryResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SuggestConversationSummaryResponse instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.ISuggestConversationSummaryResponse): google.cloud.dialogflow.v2beta1.SuggestConversationSummaryResponse;

                    /**
                     * Encodes the specified SuggestConversationSummaryResponse message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.SuggestConversationSummaryResponse.verify|verify} messages.
                     * @param message SuggestConversationSummaryResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.ISuggestConversationSummaryResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SuggestConversationSummaryResponse message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.SuggestConversationSummaryResponse.verify|verify} messages.
                     * @param message SuggestConversationSummaryResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.ISuggestConversationSummaryResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SuggestConversationSummaryResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SuggestConversationSummaryResponse
                     * @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.cloud.dialogflow.v2beta1.SuggestConversationSummaryResponse;

                    /**
                     * Decodes a SuggestConversationSummaryResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SuggestConversationSummaryResponse
                     * @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.cloud.dialogflow.v2beta1.SuggestConversationSummaryResponse;

                    /**
                     * Verifies a SuggestConversationSummaryResponse 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 SuggestConversationSummaryResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SuggestConversationSummaryResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.SuggestConversationSummaryResponse;

                    /**
                     * Creates a plain object from a SuggestConversationSummaryResponse message. Also converts values to other types if specified.
                     * @param message SuggestConversationSummaryResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.SuggestConversationSummaryResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SuggestConversationSummaryResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SuggestConversationSummaryResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace SuggestConversationSummaryResponse {

                    /** Properties of a Summary. */
                    interface ISummary {

                        /** Summary text */
                        text?: (string|null);

                        /** Summary textSections */
                        textSections?: ({ [k: string]: string }|null);

                        /** Summary sortedTextSections */
                        sortedTextSections?: (google.cloud.dialogflow.v2beta1.SuggestConversationSummaryResponse.Summary.ISummarySection[]|null);

                        /** Summary answerRecord */
                        answerRecord?: (string|null);

                        /** Summary baselineModelVersion */
                        baselineModelVersion?: (string|null);
                    }

                    /** Represents a Summary. */
                    class Summary implements ISummary {

                        /**
                         * Constructs a new Summary.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2beta1.SuggestConversationSummaryResponse.ISummary);

                        /** Summary text. */
                        public text: string;

                        /** Summary textSections. */
                        public textSections: { [k: string]: string };

                        /** Summary sortedTextSections. */
                        public sortedTextSections: google.cloud.dialogflow.v2beta1.SuggestConversationSummaryResponse.Summary.ISummarySection[];

                        /** Summary answerRecord. */
                        public answerRecord: string;

                        /** Summary baselineModelVersion. */
                        public baselineModelVersion: string;

                        /**
                         * Creates a new Summary instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns Summary instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2beta1.SuggestConversationSummaryResponse.ISummary): google.cloud.dialogflow.v2beta1.SuggestConversationSummaryResponse.Summary;

                        /**
                         * Encodes the specified Summary message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.SuggestConversationSummaryResponse.Summary.verify|verify} messages.
                         * @param message Summary message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2beta1.SuggestConversationSummaryResponse.ISummary, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified Summary message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.SuggestConversationSummaryResponse.Summary.verify|verify} messages.
                         * @param message Summary message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.SuggestConversationSummaryResponse.ISummary, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a Summary message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns Summary
                         * @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.cloud.dialogflow.v2beta1.SuggestConversationSummaryResponse.Summary;

                        /**
                         * Decodes a Summary message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns Summary
                         * @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.cloud.dialogflow.v2beta1.SuggestConversationSummaryResponse.Summary;

                        /**
                         * Verifies a Summary 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 Summary message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns Summary
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.SuggestConversationSummaryResponse.Summary;

                        /**
                         * Creates a plain object from a Summary message. Also converts values to other types if specified.
                         * @param message Summary
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.dialogflow.v2beta1.SuggestConversationSummaryResponse.Summary, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this Summary to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for Summary
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    namespace Summary {

                        /** Properties of a SummarySection. */
                        interface ISummarySection {

                            /** SummarySection section */
                            section?: (string|null);

                            /** SummarySection summary */
                            summary?: (string|null);
                        }

                        /** Represents a SummarySection. */
                        class SummarySection implements ISummarySection {

                            /**
                             * Constructs a new SummarySection.
                             * @param [properties] Properties to set
                             */
                            constructor(properties?: google.cloud.dialogflow.v2beta1.SuggestConversationSummaryResponse.Summary.ISummarySection);

                            /** SummarySection section. */
                            public section: string;

                            /** SummarySection summary. */
                            public summary: string;

                            /**
                             * Creates a new SummarySection instance using the specified properties.
                             * @param [properties] Properties to set
                             * @returns SummarySection instance
                             */
                            public static create(properties?: google.cloud.dialogflow.v2beta1.SuggestConversationSummaryResponse.Summary.ISummarySection): google.cloud.dialogflow.v2beta1.SuggestConversationSummaryResponse.Summary.SummarySection;

                            /**
                             * Encodes the specified SummarySection message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.SuggestConversationSummaryResponse.Summary.SummarySection.verify|verify} messages.
                             * @param message SummarySection message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encode(message: google.cloud.dialogflow.v2beta1.SuggestConversationSummaryResponse.Summary.ISummarySection, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Encodes the specified SummarySection message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.SuggestConversationSummaryResponse.Summary.SummarySection.verify|verify} messages.
                             * @param message SummarySection message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.SuggestConversationSummaryResponse.Summary.ISummarySection, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Decodes a SummarySection message from the specified reader or buffer.
                             * @param reader Reader or buffer to decode from
                             * @param [length] Message length if known beforehand
                             * @returns SummarySection
                             * @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.cloud.dialogflow.v2beta1.SuggestConversationSummaryResponse.Summary.SummarySection;

                            /**
                             * Decodes a SummarySection message from the specified reader or buffer, length delimited.
                             * @param reader Reader or buffer to decode from
                             * @returns SummarySection
                             * @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.cloud.dialogflow.v2beta1.SuggestConversationSummaryResponse.Summary.SummarySection;

                            /**
                             * Verifies a SummarySection 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 SummarySection message from a plain object. Also converts values to their respective internal types.
                             * @param object Plain object
                             * @returns SummarySection
                             */
                            public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.SuggestConversationSummaryResponse.Summary.SummarySection;

                            /**
                             * Creates a plain object from a SummarySection message. Also converts values to other types if specified.
                             * @param message SummarySection
                             * @param [options] Conversion options
                             * @returns Plain object
                             */
                            public static toObject(message: google.cloud.dialogflow.v2beta1.SuggestConversationSummaryResponse.Summary.SummarySection, options?: $protobuf.IConversionOptions): { [k: string]: any };

                            /**
                             * Converts this SummarySection to JSON.
                             * @returns JSON object
                             */
                            public toJSON(): { [k: string]: any };

                            /**
                             * Gets the default type url for SummarySection
                             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                             * @returns The default type url
                             */
                            public static getTypeUrl(typeUrlPrefix?: string): string;
                        }
                    }
                }

                /** Properties of a GenerateStatelessSummaryRequest. */
                interface IGenerateStatelessSummaryRequest {

                    /** GenerateStatelessSummaryRequest statelessConversation */
                    statelessConversation?: (google.cloud.dialogflow.v2beta1.GenerateStatelessSummaryRequest.IMinimalConversation|null);

                    /** GenerateStatelessSummaryRequest conversationProfile */
                    conversationProfile?: (google.cloud.dialogflow.v2beta1.IConversationProfile|null);

                    /** GenerateStatelessSummaryRequest latestMessage */
                    latestMessage?: (string|null);

                    /** GenerateStatelessSummaryRequest maxContextSize */
                    maxContextSize?: (number|null);
                }

                /** Represents a GenerateStatelessSummaryRequest. */
                class GenerateStatelessSummaryRequest implements IGenerateStatelessSummaryRequest {

                    /**
                     * Constructs a new GenerateStatelessSummaryRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IGenerateStatelessSummaryRequest);

                    /** GenerateStatelessSummaryRequest statelessConversation. */
                    public statelessConversation?: (google.cloud.dialogflow.v2beta1.GenerateStatelessSummaryRequest.IMinimalConversation|null);

                    /** GenerateStatelessSummaryRequest conversationProfile. */
                    public conversationProfile?: (google.cloud.dialogflow.v2beta1.IConversationProfile|null);

                    /** GenerateStatelessSummaryRequest latestMessage. */
                    public latestMessage: string;

                    /** GenerateStatelessSummaryRequest maxContextSize. */
                    public maxContextSize: number;

                    /**
                     * Creates a new GenerateStatelessSummaryRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GenerateStatelessSummaryRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IGenerateStatelessSummaryRequest): google.cloud.dialogflow.v2beta1.GenerateStatelessSummaryRequest;

                    /**
                     * Encodes the specified GenerateStatelessSummaryRequest message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.GenerateStatelessSummaryRequest.verify|verify} messages.
                     * @param message GenerateStatelessSummaryRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IGenerateStatelessSummaryRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GenerateStatelessSummaryRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.GenerateStatelessSummaryRequest.verify|verify} messages.
                     * @param message GenerateStatelessSummaryRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IGenerateStatelessSummaryRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GenerateStatelessSummaryRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GenerateStatelessSummaryRequest
                     * @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.cloud.dialogflow.v2beta1.GenerateStatelessSummaryRequest;

                    /**
                     * Decodes a GenerateStatelessSummaryRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GenerateStatelessSummaryRequest
                     * @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.cloud.dialogflow.v2beta1.GenerateStatelessSummaryRequest;

                    /**
                     * Verifies a GenerateStatelessSummaryRequest 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 GenerateStatelessSummaryRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GenerateStatelessSummaryRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.GenerateStatelessSummaryRequest;

                    /**
                     * Creates a plain object from a GenerateStatelessSummaryRequest message. Also converts values to other types if specified.
                     * @param message GenerateStatelessSummaryRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.GenerateStatelessSummaryRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GenerateStatelessSummaryRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GenerateStatelessSummaryRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace GenerateStatelessSummaryRequest {

                    /** Properties of a MinimalConversation. */
                    interface IMinimalConversation {

                        /** MinimalConversation messages */
                        messages?: (google.cloud.dialogflow.v2beta1.IMessage[]|null);

                        /** MinimalConversation parent */
                        parent?: (string|null);
                    }

                    /** Represents a MinimalConversation. */
                    class MinimalConversation implements IMinimalConversation {

                        /**
                         * Constructs a new MinimalConversation.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2beta1.GenerateStatelessSummaryRequest.IMinimalConversation);

                        /** MinimalConversation messages. */
                        public messages: google.cloud.dialogflow.v2beta1.IMessage[];

                        /** MinimalConversation parent. */
                        public parent: string;

                        /**
                         * Creates a new MinimalConversation instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns MinimalConversation instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2beta1.GenerateStatelessSummaryRequest.IMinimalConversation): google.cloud.dialogflow.v2beta1.GenerateStatelessSummaryRequest.MinimalConversation;

                        /**
                         * Encodes the specified MinimalConversation message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.GenerateStatelessSummaryRequest.MinimalConversation.verify|verify} messages.
                         * @param message MinimalConversation message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2beta1.GenerateStatelessSummaryRequest.IMinimalConversation, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified MinimalConversation message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.GenerateStatelessSummaryRequest.MinimalConversation.verify|verify} messages.
                         * @param message MinimalConversation message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.GenerateStatelessSummaryRequest.IMinimalConversation, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a MinimalConversation message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns MinimalConversation
                         * @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.cloud.dialogflow.v2beta1.GenerateStatelessSummaryRequest.MinimalConversation;

                        /**
                         * Decodes a MinimalConversation message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns MinimalConversation
                         * @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.cloud.dialogflow.v2beta1.GenerateStatelessSummaryRequest.MinimalConversation;

                        /**
                         * Verifies a MinimalConversation 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 MinimalConversation message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns MinimalConversation
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.GenerateStatelessSummaryRequest.MinimalConversation;

                        /**
                         * Creates a plain object from a MinimalConversation message. Also converts values to other types if specified.
                         * @param message MinimalConversation
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.dialogflow.v2beta1.GenerateStatelessSummaryRequest.MinimalConversation, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this MinimalConversation to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for MinimalConversation
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }
                }

                /** Properties of a GenerateStatelessSummaryResponse. */
                interface IGenerateStatelessSummaryResponse {

                    /** GenerateStatelessSummaryResponse summary */
                    summary?: (google.cloud.dialogflow.v2beta1.GenerateStatelessSummaryResponse.ISummary|null);

                    /** GenerateStatelessSummaryResponse latestMessage */
                    latestMessage?: (string|null);

                    /** GenerateStatelessSummaryResponse contextSize */
                    contextSize?: (number|null);
                }

                /** Represents a GenerateStatelessSummaryResponse. */
                class GenerateStatelessSummaryResponse implements IGenerateStatelessSummaryResponse {

                    /**
                     * Constructs a new GenerateStatelessSummaryResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IGenerateStatelessSummaryResponse);

                    /** GenerateStatelessSummaryResponse summary. */
                    public summary?: (google.cloud.dialogflow.v2beta1.GenerateStatelessSummaryResponse.ISummary|null);

                    /** GenerateStatelessSummaryResponse latestMessage. */
                    public latestMessage: string;

                    /** GenerateStatelessSummaryResponse contextSize. */
                    public contextSize: number;

                    /**
                     * Creates a new GenerateStatelessSummaryResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GenerateStatelessSummaryResponse instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IGenerateStatelessSummaryResponse): google.cloud.dialogflow.v2beta1.GenerateStatelessSummaryResponse;

                    /**
                     * Encodes the specified GenerateStatelessSummaryResponse message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.GenerateStatelessSummaryResponse.verify|verify} messages.
                     * @param message GenerateStatelessSummaryResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IGenerateStatelessSummaryResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GenerateStatelessSummaryResponse message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.GenerateStatelessSummaryResponse.verify|verify} messages.
                     * @param message GenerateStatelessSummaryResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IGenerateStatelessSummaryResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GenerateStatelessSummaryResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GenerateStatelessSummaryResponse
                     * @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.cloud.dialogflow.v2beta1.GenerateStatelessSummaryResponse;

                    /**
                     * Decodes a GenerateStatelessSummaryResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GenerateStatelessSummaryResponse
                     * @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.cloud.dialogflow.v2beta1.GenerateStatelessSummaryResponse;

                    /**
                     * Verifies a GenerateStatelessSummaryResponse 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 GenerateStatelessSummaryResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GenerateStatelessSummaryResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.GenerateStatelessSummaryResponse;

                    /**
                     * Creates a plain object from a GenerateStatelessSummaryResponse message. Also converts values to other types if specified.
                     * @param message GenerateStatelessSummaryResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.GenerateStatelessSummaryResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GenerateStatelessSummaryResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GenerateStatelessSummaryResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace GenerateStatelessSummaryResponse {

                    /** Properties of a Summary. */
                    interface ISummary {

                        /** Summary text */
                        text?: (string|null);

                        /** Summary textSections */
                        textSections?: ({ [k: string]: string }|null);

                        /** Summary baselineModelVersion */
                        baselineModelVersion?: (string|null);
                    }

                    /** Represents a Summary. */
                    class Summary implements ISummary {

                        /**
                         * Constructs a new Summary.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2beta1.GenerateStatelessSummaryResponse.ISummary);

                        /** Summary text. */
                        public text: string;

                        /** Summary textSections. */
                        public textSections: { [k: string]: string };

                        /** Summary baselineModelVersion. */
                        public baselineModelVersion: string;

                        /**
                         * Creates a new Summary instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns Summary instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2beta1.GenerateStatelessSummaryResponse.ISummary): google.cloud.dialogflow.v2beta1.GenerateStatelessSummaryResponse.Summary;

                        /**
                         * Encodes the specified Summary message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.GenerateStatelessSummaryResponse.Summary.verify|verify} messages.
                         * @param message Summary message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2beta1.GenerateStatelessSummaryResponse.ISummary, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified Summary message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.GenerateStatelessSummaryResponse.Summary.verify|verify} messages.
                         * @param message Summary message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.GenerateStatelessSummaryResponse.ISummary, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a Summary message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns Summary
                         * @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.cloud.dialogflow.v2beta1.GenerateStatelessSummaryResponse.Summary;

                        /**
                         * Decodes a Summary message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns Summary
                         * @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.cloud.dialogflow.v2beta1.GenerateStatelessSummaryResponse.Summary;

                        /**
                         * Verifies a Summary 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 Summary message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns Summary
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.GenerateStatelessSummaryResponse.Summary;

                        /**
                         * Creates a plain object from a Summary message. Also converts values to other types if specified.
                         * @param message Summary
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.dialogflow.v2beta1.GenerateStatelessSummaryResponse.Summary, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this Summary to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for Summary
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }
                }

                /** Properties of a GenerateStatelessSuggestionRequest. */
                interface IGenerateStatelessSuggestionRequest {

                    /** GenerateStatelessSuggestionRequest parent */
                    parent?: (string|null);

                    /** GenerateStatelessSuggestionRequest generator */
                    generator?: (google.cloud.dialogflow.v2beta1.IGenerator|null);

                    /** GenerateStatelessSuggestionRequest generatorName */
                    generatorName?: (string|null);

                    /** GenerateStatelessSuggestionRequest contextReferences */
                    contextReferences?: ({ [k: string]: google.cloud.dialogflow.v2beta1.Conversation.IContextReference }|null);

                    /** GenerateStatelessSuggestionRequest conversationContext */
                    conversationContext?: (google.cloud.dialogflow.v2beta1.IConversationContext|null);

                    /** GenerateStatelessSuggestionRequest triggerEvents */
                    triggerEvents?: (google.cloud.dialogflow.v2beta1.TriggerEvent[]|null);

                    /** GenerateStatelessSuggestionRequest securitySettings */
                    securitySettings?: (string|null);
                }

                /** Represents a GenerateStatelessSuggestionRequest. */
                class GenerateStatelessSuggestionRequest implements IGenerateStatelessSuggestionRequest {

                    /**
                     * Constructs a new GenerateStatelessSuggestionRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IGenerateStatelessSuggestionRequest);

                    /** GenerateStatelessSuggestionRequest parent. */
                    public parent: string;

                    /** GenerateStatelessSuggestionRequest generator. */
                    public generator?: (google.cloud.dialogflow.v2beta1.IGenerator|null);

                    /** GenerateStatelessSuggestionRequest generatorName. */
                    public generatorName?: (string|null);

                    /** GenerateStatelessSuggestionRequest contextReferences. */
                    public contextReferences: { [k: string]: google.cloud.dialogflow.v2beta1.Conversation.IContextReference };

                    /** GenerateStatelessSuggestionRequest conversationContext. */
                    public conversationContext?: (google.cloud.dialogflow.v2beta1.IConversationContext|null);

                    /** GenerateStatelessSuggestionRequest triggerEvents. */
                    public triggerEvents: google.cloud.dialogflow.v2beta1.TriggerEvent[];

                    /** GenerateStatelessSuggestionRequest securitySettings. */
                    public securitySettings: string;

                    /** GenerateStatelessSuggestionRequest generatorResource. */
                    public generatorResource?: ("generator"|"generatorName");

                    /**
                     * Creates a new GenerateStatelessSuggestionRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GenerateStatelessSuggestionRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IGenerateStatelessSuggestionRequest): google.cloud.dialogflow.v2beta1.GenerateStatelessSuggestionRequest;

                    /**
                     * Encodes the specified GenerateStatelessSuggestionRequest message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.GenerateStatelessSuggestionRequest.verify|verify} messages.
                     * @param message GenerateStatelessSuggestionRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IGenerateStatelessSuggestionRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GenerateStatelessSuggestionRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.GenerateStatelessSuggestionRequest.verify|verify} messages.
                     * @param message GenerateStatelessSuggestionRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IGenerateStatelessSuggestionRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GenerateStatelessSuggestionRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GenerateStatelessSuggestionRequest
                     * @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.cloud.dialogflow.v2beta1.GenerateStatelessSuggestionRequest;

                    /**
                     * Decodes a GenerateStatelessSuggestionRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GenerateStatelessSuggestionRequest
                     * @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.cloud.dialogflow.v2beta1.GenerateStatelessSuggestionRequest;

                    /**
                     * Verifies a GenerateStatelessSuggestionRequest 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 GenerateStatelessSuggestionRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GenerateStatelessSuggestionRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.GenerateStatelessSuggestionRequest;

                    /**
                     * Creates a plain object from a GenerateStatelessSuggestionRequest message. Also converts values to other types if specified.
                     * @param message GenerateStatelessSuggestionRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.GenerateStatelessSuggestionRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GenerateStatelessSuggestionRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GenerateStatelessSuggestionRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GenerateStatelessSuggestionResponse. */
                interface IGenerateStatelessSuggestionResponse {

                    /** GenerateStatelessSuggestionResponse generatorSuggestion */
                    generatorSuggestion?: (google.cloud.dialogflow.v2beta1.IGeneratorSuggestion|null);
                }

                /** Represents a GenerateStatelessSuggestionResponse. */
                class GenerateStatelessSuggestionResponse implements IGenerateStatelessSuggestionResponse {

                    /**
                     * Constructs a new GenerateStatelessSuggestionResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IGenerateStatelessSuggestionResponse);

                    /** GenerateStatelessSuggestionResponse generatorSuggestion. */
                    public generatorSuggestion?: (google.cloud.dialogflow.v2beta1.IGeneratorSuggestion|null);

                    /**
                     * Creates a new GenerateStatelessSuggestionResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GenerateStatelessSuggestionResponse instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IGenerateStatelessSuggestionResponse): google.cloud.dialogflow.v2beta1.GenerateStatelessSuggestionResponse;

                    /**
                     * Encodes the specified GenerateStatelessSuggestionResponse message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.GenerateStatelessSuggestionResponse.verify|verify} messages.
                     * @param message GenerateStatelessSuggestionResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IGenerateStatelessSuggestionResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GenerateStatelessSuggestionResponse message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.GenerateStatelessSuggestionResponse.verify|verify} messages.
                     * @param message GenerateStatelessSuggestionResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IGenerateStatelessSuggestionResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GenerateStatelessSuggestionResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GenerateStatelessSuggestionResponse
                     * @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.cloud.dialogflow.v2beta1.GenerateStatelessSuggestionResponse;

                    /**
                     * Decodes a GenerateStatelessSuggestionResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GenerateStatelessSuggestionResponse
                     * @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.cloud.dialogflow.v2beta1.GenerateStatelessSuggestionResponse;

                    /**
                     * Verifies a GenerateStatelessSuggestionResponse 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 GenerateStatelessSuggestionResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GenerateStatelessSuggestionResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.GenerateStatelessSuggestionResponse;

                    /**
                     * Creates a plain object from a GenerateStatelessSuggestionResponse message. Also converts values to other types if specified.
                     * @param message GenerateStatelessSuggestionResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.GenerateStatelessSuggestionResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GenerateStatelessSuggestionResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GenerateStatelessSuggestionResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SearchKnowledgeRequest. */
                interface ISearchKnowledgeRequest {

                    /** SearchKnowledgeRequest parent */
                    parent?: (string|null);

                    /** SearchKnowledgeRequest query */
                    query?: (google.cloud.dialogflow.v2beta1.ITextInput|null);

                    /** SearchKnowledgeRequest conversationProfile */
                    conversationProfile?: (string|null);

                    /** SearchKnowledgeRequest sessionId */
                    sessionId?: (string|null);

                    /** SearchKnowledgeRequest conversation */
                    conversation?: (string|null);

                    /** SearchKnowledgeRequest latestMessage */
                    latestMessage?: (string|null);

                    /** SearchKnowledgeRequest querySource */
                    querySource?: (google.cloud.dialogflow.v2beta1.SearchKnowledgeRequest.QuerySource|keyof typeof google.cloud.dialogflow.v2beta1.SearchKnowledgeRequest.QuerySource|null);

                    /** SearchKnowledgeRequest endUserMetadata */
                    endUserMetadata?: (google.protobuf.IStruct|null);

                    /** SearchKnowledgeRequest searchConfig */
                    searchConfig?: (google.cloud.dialogflow.v2beta1.SearchKnowledgeRequest.ISearchConfig|null);

                    /** SearchKnowledgeRequest exactSearch */
                    exactSearch?: (boolean|null);
                }

                /** Represents a SearchKnowledgeRequest. */
                class SearchKnowledgeRequest implements ISearchKnowledgeRequest {

                    /**
                     * Constructs a new SearchKnowledgeRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.ISearchKnowledgeRequest);

                    /** SearchKnowledgeRequest parent. */
                    public parent: string;

                    /** SearchKnowledgeRequest query. */
                    public query?: (google.cloud.dialogflow.v2beta1.ITextInput|null);

                    /** SearchKnowledgeRequest conversationProfile. */
                    public conversationProfile: string;

                    /** SearchKnowledgeRequest sessionId. */
                    public sessionId: string;

                    /** SearchKnowledgeRequest conversation. */
                    public conversation: string;

                    /** SearchKnowledgeRequest latestMessage. */
                    public latestMessage: string;

                    /** SearchKnowledgeRequest querySource. */
                    public querySource: (google.cloud.dialogflow.v2beta1.SearchKnowledgeRequest.QuerySource|keyof typeof google.cloud.dialogflow.v2beta1.SearchKnowledgeRequest.QuerySource);

                    /** SearchKnowledgeRequest endUserMetadata. */
                    public endUserMetadata?: (google.protobuf.IStruct|null);

                    /** SearchKnowledgeRequest searchConfig. */
                    public searchConfig?: (google.cloud.dialogflow.v2beta1.SearchKnowledgeRequest.ISearchConfig|null);

                    /** SearchKnowledgeRequest exactSearch. */
                    public exactSearch: boolean;

                    /**
                     * Creates a new SearchKnowledgeRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SearchKnowledgeRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.ISearchKnowledgeRequest): google.cloud.dialogflow.v2beta1.SearchKnowledgeRequest;

                    /**
                     * Encodes the specified SearchKnowledgeRequest message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.SearchKnowledgeRequest.verify|verify} messages.
                     * @param message SearchKnowledgeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.ISearchKnowledgeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SearchKnowledgeRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.SearchKnowledgeRequest.verify|verify} messages.
                     * @param message SearchKnowledgeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.ISearchKnowledgeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SearchKnowledgeRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SearchKnowledgeRequest
                     * @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.cloud.dialogflow.v2beta1.SearchKnowledgeRequest;

                    /**
                     * Decodes a SearchKnowledgeRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SearchKnowledgeRequest
                     * @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.cloud.dialogflow.v2beta1.SearchKnowledgeRequest;

                    /**
                     * Verifies a SearchKnowledgeRequest 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 SearchKnowledgeRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SearchKnowledgeRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.SearchKnowledgeRequest;

                    /**
                     * Creates a plain object from a SearchKnowledgeRequest message. Also converts values to other types if specified.
                     * @param message SearchKnowledgeRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.SearchKnowledgeRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SearchKnowledgeRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SearchKnowledgeRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace SearchKnowledgeRequest {

                    /** QuerySource enum. */
                    enum QuerySource {
                        QUERY_SOURCE_UNSPECIFIED = 0,
                        AGENT_QUERY = 1,
                        SUGGESTED_QUERY = 2
                    }

                    /** Properties of a SearchConfig. */
                    interface ISearchConfig {

                        /** SearchConfig boostSpecs */
                        boostSpecs?: (google.cloud.dialogflow.v2beta1.SearchKnowledgeRequest.SearchConfig.IBoostSpecs[]|null);

                        /** SearchConfig filterSpecs */
                        filterSpecs?: (google.cloud.dialogflow.v2beta1.SearchKnowledgeRequest.SearchConfig.IFilterSpecs[]|null);
                    }

                    /** Represents a SearchConfig. */
                    class SearchConfig implements ISearchConfig {

                        /**
                         * Constructs a new SearchConfig.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2beta1.SearchKnowledgeRequest.ISearchConfig);

                        /** SearchConfig boostSpecs. */
                        public boostSpecs: google.cloud.dialogflow.v2beta1.SearchKnowledgeRequest.SearchConfig.IBoostSpecs[];

                        /** SearchConfig filterSpecs. */
                        public filterSpecs: google.cloud.dialogflow.v2beta1.SearchKnowledgeRequest.SearchConfig.IFilterSpecs[];

                        /**
                         * Creates a new SearchConfig instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns SearchConfig instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2beta1.SearchKnowledgeRequest.ISearchConfig): google.cloud.dialogflow.v2beta1.SearchKnowledgeRequest.SearchConfig;

                        /**
                         * Encodes the specified SearchConfig message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.SearchKnowledgeRequest.SearchConfig.verify|verify} messages.
                         * @param message SearchConfig message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2beta1.SearchKnowledgeRequest.ISearchConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified SearchConfig message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.SearchKnowledgeRequest.SearchConfig.verify|verify} messages.
                         * @param message SearchConfig message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.SearchKnowledgeRequest.ISearchConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a SearchConfig message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns SearchConfig
                         * @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.cloud.dialogflow.v2beta1.SearchKnowledgeRequest.SearchConfig;

                        /**
                         * Decodes a SearchConfig message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns SearchConfig
                         * @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.cloud.dialogflow.v2beta1.SearchKnowledgeRequest.SearchConfig;

                        /**
                         * Verifies a SearchConfig 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 SearchConfig message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns SearchConfig
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.SearchKnowledgeRequest.SearchConfig;

                        /**
                         * Creates a plain object from a SearchConfig message. Also converts values to other types if specified.
                         * @param message SearchConfig
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.dialogflow.v2beta1.SearchKnowledgeRequest.SearchConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this SearchConfig to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for SearchConfig
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    namespace SearchConfig {

                        /** Properties of a BoostSpecs. */
                        interface IBoostSpecs {

                            /** BoostSpecs dataStores */
                            dataStores?: (string[]|null);

                            /** BoostSpecs spec */
                            spec?: (google.cloud.dialogflow.v2beta1.SearchKnowledgeRequest.SearchConfig.BoostSpecs.IBoostSpec[]|null);
                        }

                        /** Represents a BoostSpecs. */
                        class BoostSpecs implements IBoostSpecs {

                            /**
                             * Constructs a new BoostSpecs.
                             * @param [properties] Properties to set
                             */
                            constructor(properties?: google.cloud.dialogflow.v2beta1.SearchKnowledgeRequest.SearchConfig.IBoostSpecs);

                            /** BoostSpecs dataStores. */
                            public dataStores: string[];

                            /** BoostSpecs spec. */
                            public spec: google.cloud.dialogflow.v2beta1.SearchKnowledgeRequest.SearchConfig.BoostSpecs.IBoostSpec[];

                            /**
                             * Creates a new BoostSpecs instance using the specified properties.
                             * @param [properties] Properties to set
                             * @returns BoostSpecs instance
                             */
                            public static create(properties?: google.cloud.dialogflow.v2beta1.SearchKnowledgeRequest.SearchConfig.IBoostSpecs): google.cloud.dialogflow.v2beta1.SearchKnowledgeRequest.SearchConfig.BoostSpecs;

                            /**
                             * Encodes the specified BoostSpecs message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.SearchKnowledgeRequest.SearchConfig.BoostSpecs.verify|verify} messages.
                             * @param message BoostSpecs message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encode(message: google.cloud.dialogflow.v2beta1.SearchKnowledgeRequest.SearchConfig.IBoostSpecs, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Encodes the specified BoostSpecs message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.SearchKnowledgeRequest.SearchConfig.BoostSpecs.verify|verify} messages.
                             * @param message BoostSpecs message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.SearchKnowledgeRequest.SearchConfig.IBoostSpecs, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Decodes a BoostSpecs message from the specified reader or buffer.
                             * @param reader Reader or buffer to decode from
                             * @param [length] Message length if known beforehand
                             * @returns BoostSpecs
                             * @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.cloud.dialogflow.v2beta1.SearchKnowledgeRequest.SearchConfig.BoostSpecs;

                            /**
                             * Decodes a BoostSpecs message from the specified reader or buffer, length delimited.
                             * @param reader Reader or buffer to decode from
                             * @returns BoostSpecs
                             * @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.cloud.dialogflow.v2beta1.SearchKnowledgeRequest.SearchConfig.BoostSpecs;

                            /**
                             * Verifies a BoostSpecs 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 BoostSpecs message from a plain object. Also converts values to their respective internal types.
                             * @param object Plain object
                             * @returns BoostSpecs
                             */
                            public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.SearchKnowledgeRequest.SearchConfig.BoostSpecs;

                            /**
                             * Creates a plain object from a BoostSpecs message. Also converts values to other types if specified.
                             * @param message BoostSpecs
                             * @param [options] Conversion options
                             * @returns Plain object
                             */
                            public static toObject(message: google.cloud.dialogflow.v2beta1.SearchKnowledgeRequest.SearchConfig.BoostSpecs, options?: $protobuf.IConversionOptions): { [k: string]: any };

                            /**
                             * Converts this BoostSpecs to JSON.
                             * @returns JSON object
                             */
                            public toJSON(): { [k: string]: any };

                            /**
                             * Gets the default type url for BoostSpecs
                             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                             * @returns The default type url
                             */
                            public static getTypeUrl(typeUrlPrefix?: string): string;
                        }

                        namespace BoostSpecs {

                            /** Properties of a BoostSpec. */
                            interface IBoostSpec {

                                /** BoostSpec conditionBoostSpecs */
                                conditionBoostSpecs?: (google.cloud.dialogflow.v2beta1.SearchKnowledgeRequest.SearchConfig.BoostSpecs.BoostSpec.IConditionBoostSpec[]|null);
                            }

                            /** Represents a BoostSpec. */
                            class BoostSpec implements IBoostSpec {

                                /**
                                 * Constructs a new BoostSpec.
                                 * @param [properties] Properties to set
                                 */
                                constructor(properties?: google.cloud.dialogflow.v2beta1.SearchKnowledgeRequest.SearchConfig.BoostSpecs.IBoostSpec);

                                /** BoostSpec conditionBoostSpecs. */
                                public conditionBoostSpecs: google.cloud.dialogflow.v2beta1.SearchKnowledgeRequest.SearchConfig.BoostSpecs.BoostSpec.IConditionBoostSpec[];

                                /**
                                 * Creates a new BoostSpec instance using the specified properties.
                                 * @param [properties] Properties to set
                                 * @returns BoostSpec instance
                                 */
                                public static create(properties?: google.cloud.dialogflow.v2beta1.SearchKnowledgeRequest.SearchConfig.BoostSpecs.IBoostSpec): google.cloud.dialogflow.v2beta1.SearchKnowledgeRequest.SearchConfig.BoostSpecs.BoostSpec;

                                /**
                                 * Encodes the specified BoostSpec message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.SearchKnowledgeRequest.SearchConfig.BoostSpecs.BoostSpec.verify|verify} messages.
                                 * @param message BoostSpec message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encode(message: google.cloud.dialogflow.v2beta1.SearchKnowledgeRequest.SearchConfig.BoostSpecs.IBoostSpec, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Encodes the specified BoostSpec message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.SearchKnowledgeRequest.SearchConfig.BoostSpecs.BoostSpec.verify|verify} messages.
                                 * @param message BoostSpec message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.SearchKnowledgeRequest.SearchConfig.BoostSpecs.IBoostSpec, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Decodes a BoostSpec message from the specified reader or buffer.
                                 * @param reader Reader or buffer to decode from
                                 * @param [length] Message length if known beforehand
                                 * @returns BoostSpec
                                 * @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.cloud.dialogflow.v2beta1.SearchKnowledgeRequest.SearchConfig.BoostSpecs.BoostSpec;

                                /**
                                 * Decodes a BoostSpec message from the specified reader or buffer, length delimited.
                                 * @param reader Reader or buffer to decode from
                                 * @returns BoostSpec
                                 * @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.cloud.dialogflow.v2beta1.SearchKnowledgeRequest.SearchConfig.BoostSpecs.BoostSpec;

                                /**
                                 * Verifies a BoostSpec 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 BoostSpec message from a plain object. Also converts values to their respective internal types.
                                 * @param object Plain object
                                 * @returns BoostSpec
                                 */
                                public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.SearchKnowledgeRequest.SearchConfig.BoostSpecs.BoostSpec;

                                /**
                                 * Creates a plain object from a BoostSpec message. Also converts values to other types if specified.
                                 * @param message BoostSpec
                                 * @param [options] Conversion options
                                 * @returns Plain object
                                 */
                                public static toObject(message: google.cloud.dialogflow.v2beta1.SearchKnowledgeRequest.SearchConfig.BoostSpecs.BoostSpec, options?: $protobuf.IConversionOptions): { [k: string]: any };

                                /**
                                 * Converts this BoostSpec to JSON.
                                 * @returns JSON object
                                 */
                                public toJSON(): { [k: string]: any };

                                /**
                                 * Gets the default type url for BoostSpec
                                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                                 * @returns The default type url
                                 */
                                public static getTypeUrl(typeUrlPrefix?: string): string;
                            }

                            namespace BoostSpec {

                                /** Properties of a ConditionBoostSpec. */
                                interface IConditionBoostSpec {

                                    /** ConditionBoostSpec condition */
                                    condition?: (string|null);

                                    /** ConditionBoostSpec boost */
                                    boost?: (number|null);

                                    /** ConditionBoostSpec boostControlSpec */
                                    boostControlSpec?: (google.cloud.dialogflow.v2beta1.SearchKnowledgeRequest.SearchConfig.BoostSpecs.BoostSpec.ConditionBoostSpec.IBoostControlSpec|null);
                                }

                                /** Represents a ConditionBoostSpec. */
                                class ConditionBoostSpec implements IConditionBoostSpec {

                                    /**
                                     * Constructs a new ConditionBoostSpec.
                                     * @param [properties] Properties to set
                                     */
                                    constructor(properties?: google.cloud.dialogflow.v2beta1.SearchKnowledgeRequest.SearchConfig.BoostSpecs.BoostSpec.IConditionBoostSpec);

                                    /** ConditionBoostSpec condition. */
                                    public condition: string;

                                    /** ConditionBoostSpec boost. */
                                    public boost: number;

                                    /** ConditionBoostSpec boostControlSpec. */
                                    public boostControlSpec?: (google.cloud.dialogflow.v2beta1.SearchKnowledgeRequest.SearchConfig.BoostSpecs.BoostSpec.ConditionBoostSpec.IBoostControlSpec|null);

                                    /**
                                     * Creates a new ConditionBoostSpec instance using the specified properties.
                                     * @param [properties] Properties to set
                                     * @returns ConditionBoostSpec instance
                                     */
                                    public static create(properties?: google.cloud.dialogflow.v2beta1.SearchKnowledgeRequest.SearchConfig.BoostSpecs.BoostSpec.IConditionBoostSpec): google.cloud.dialogflow.v2beta1.SearchKnowledgeRequest.SearchConfig.BoostSpecs.BoostSpec.ConditionBoostSpec;

                                    /**
                                     * Encodes the specified ConditionBoostSpec message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.SearchKnowledgeRequest.SearchConfig.BoostSpecs.BoostSpec.ConditionBoostSpec.verify|verify} messages.
                                     * @param message ConditionBoostSpec message or plain object to encode
                                     * @param [writer] Writer to encode to
                                     * @returns Writer
                                     */
                                    public static encode(message: google.cloud.dialogflow.v2beta1.SearchKnowledgeRequest.SearchConfig.BoostSpecs.BoostSpec.IConditionBoostSpec, writer?: $protobuf.Writer): $protobuf.Writer;

                                    /**
                                     * Encodes the specified ConditionBoostSpec message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.SearchKnowledgeRequest.SearchConfig.BoostSpecs.BoostSpec.ConditionBoostSpec.verify|verify} messages.
                                     * @param message ConditionBoostSpec message or plain object to encode
                                     * @param [writer] Writer to encode to
                                     * @returns Writer
                                     */
                                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.SearchKnowledgeRequest.SearchConfig.BoostSpecs.BoostSpec.IConditionBoostSpec, writer?: $protobuf.Writer): $protobuf.Writer;

                                    /**
                                     * Decodes a ConditionBoostSpec message from the specified reader or buffer.
                                     * @param reader Reader or buffer to decode from
                                     * @param [length] Message length if known beforehand
                                     * @returns ConditionBoostSpec
                                     * @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.cloud.dialogflow.v2beta1.SearchKnowledgeRequest.SearchConfig.BoostSpecs.BoostSpec.ConditionBoostSpec;

                                    /**
                                     * Decodes a ConditionBoostSpec message from the specified reader or buffer, length delimited.
                                     * @param reader Reader or buffer to decode from
                                     * @returns ConditionBoostSpec
                                     * @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.cloud.dialogflow.v2beta1.SearchKnowledgeRequest.SearchConfig.BoostSpecs.BoostSpec.ConditionBoostSpec;

                                    /**
                                     * Verifies a ConditionBoostSpec 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 ConditionBoostSpec message from a plain object. Also converts values to their respective internal types.
                                     * @param object Plain object
                                     * @returns ConditionBoostSpec
                                     */
                                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.SearchKnowledgeRequest.SearchConfig.BoostSpecs.BoostSpec.ConditionBoostSpec;

                                    /**
                                     * Creates a plain object from a ConditionBoostSpec message. Also converts values to other types if specified.
                                     * @param message ConditionBoostSpec
                                     * @param [options] Conversion options
                                     * @returns Plain object
                                     */
                                    public static toObject(message: google.cloud.dialogflow.v2beta1.SearchKnowledgeRequest.SearchConfig.BoostSpecs.BoostSpec.ConditionBoostSpec, options?: $protobuf.IConversionOptions): { [k: string]: any };

                                    /**
                                     * Converts this ConditionBoostSpec to JSON.
                                     * @returns JSON object
                                     */
                                    public toJSON(): { [k: string]: any };

                                    /**
                                     * Gets the default type url for ConditionBoostSpec
                                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                                     * @returns The default type url
                                     */
                                    public static getTypeUrl(typeUrlPrefix?: string): string;
                                }

                                namespace ConditionBoostSpec {

                                    /** Properties of a BoostControlSpec. */
                                    interface IBoostControlSpec {

                                        /** BoostControlSpec fieldName */
                                        fieldName?: (string|null);

                                        /** BoostControlSpec attributeType */
                                        attributeType?: (google.cloud.dialogflow.v2beta1.SearchKnowledgeRequest.SearchConfig.BoostSpecs.BoostSpec.ConditionBoostSpec.BoostControlSpec.AttributeType|keyof typeof google.cloud.dialogflow.v2beta1.SearchKnowledgeRequest.SearchConfig.BoostSpecs.BoostSpec.ConditionBoostSpec.BoostControlSpec.AttributeType|null);

                                        /** BoostControlSpec interpolationType */
                                        interpolationType?: (google.cloud.dialogflow.v2beta1.SearchKnowledgeRequest.SearchConfig.BoostSpecs.BoostSpec.ConditionBoostSpec.BoostControlSpec.InterpolationType|keyof typeof google.cloud.dialogflow.v2beta1.SearchKnowledgeRequest.SearchConfig.BoostSpecs.BoostSpec.ConditionBoostSpec.BoostControlSpec.InterpolationType|null);

                                        /** BoostControlSpec controlPoints */
                                        controlPoints?: (google.cloud.dialogflow.v2beta1.SearchKnowledgeRequest.SearchConfig.BoostSpecs.BoostSpec.ConditionBoostSpec.BoostControlSpec.IControlPoint[]|null);
                                    }

                                    /** Represents a BoostControlSpec. */
                                    class BoostControlSpec implements IBoostControlSpec {

                                        /**
                                         * Constructs a new BoostControlSpec.
                                         * @param [properties] Properties to set
                                         */
                                        constructor(properties?: google.cloud.dialogflow.v2beta1.SearchKnowledgeRequest.SearchConfig.BoostSpecs.BoostSpec.ConditionBoostSpec.IBoostControlSpec);

                                        /** BoostControlSpec fieldName. */
                                        public fieldName: string;

                                        /** BoostControlSpec attributeType. */
                                        public attributeType: (google.cloud.dialogflow.v2beta1.SearchKnowledgeRequest.SearchConfig.BoostSpecs.BoostSpec.ConditionBoostSpec.BoostControlSpec.AttributeType|keyof typeof google.cloud.dialogflow.v2beta1.SearchKnowledgeRequest.SearchConfig.BoostSpecs.BoostSpec.ConditionBoostSpec.BoostControlSpec.AttributeType);

                                        /** BoostControlSpec interpolationType. */
                                        public interpolationType: (google.cloud.dialogflow.v2beta1.SearchKnowledgeRequest.SearchConfig.BoostSpecs.BoostSpec.ConditionBoostSpec.BoostControlSpec.InterpolationType|keyof typeof google.cloud.dialogflow.v2beta1.SearchKnowledgeRequest.SearchConfig.BoostSpecs.BoostSpec.ConditionBoostSpec.BoostControlSpec.InterpolationType);

                                        /** BoostControlSpec controlPoints. */
                                        public controlPoints: google.cloud.dialogflow.v2beta1.SearchKnowledgeRequest.SearchConfig.BoostSpecs.BoostSpec.ConditionBoostSpec.BoostControlSpec.IControlPoint[];

                                        /**
                                         * Creates a new BoostControlSpec instance using the specified properties.
                                         * @param [properties] Properties to set
                                         * @returns BoostControlSpec instance
                                         */
                                        public static create(properties?: google.cloud.dialogflow.v2beta1.SearchKnowledgeRequest.SearchConfig.BoostSpecs.BoostSpec.ConditionBoostSpec.IBoostControlSpec): google.cloud.dialogflow.v2beta1.SearchKnowledgeRequest.SearchConfig.BoostSpecs.BoostSpec.ConditionBoostSpec.BoostControlSpec;

                                        /**
                                         * Encodes the specified BoostControlSpec message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.SearchKnowledgeRequest.SearchConfig.BoostSpecs.BoostSpec.ConditionBoostSpec.BoostControlSpec.verify|verify} messages.
                                         * @param message BoostControlSpec message or plain object to encode
                                         * @param [writer] Writer to encode to
                                         * @returns Writer
                                         */
                                        public static encode(message: google.cloud.dialogflow.v2beta1.SearchKnowledgeRequest.SearchConfig.BoostSpecs.BoostSpec.ConditionBoostSpec.IBoostControlSpec, writer?: $protobuf.Writer): $protobuf.Writer;

                                        /**
                                         * Encodes the specified BoostControlSpec message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.SearchKnowledgeRequest.SearchConfig.BoostSpecs.BoostSpec.ConditionBoostSpec.BoostControlSpec.verify|verify} messages.
                                         * @param message BoostControlSpec message or plain object to encode
                                         * @param [writer] Writer to encode to
                                         * @returns Writer
                                         */
                                        public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.SearchKnowledgeRequest.SearchConfig.BoostSpecs.BoostSpec.ConditionBoostSpec.IBoostControlSpec, writer?: $protobuf.Writer): $protobuf.Writer;

                                        /**
                                         * Decodes a BoostControlSpec message from the specified reader or buffer.
                                         * @param reader Reader or buffer to decode from
                                         * @param [length] Message length if known beforehand
                                         * @returns BoostControlSpec
                                         * @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.cloud.dialogflow.v2beta1.SearchKnowledgeRequest.SearchConfig.BoostSpecs.BoostSpec.ConditionBoostSpec.BoostControlSpec;

                                        /**
                                         * Decodes a BoostControlSpec message from the specified reader or buffer, length delimited.
                                         * @param reader Reader or buffer to decode from
                                         * @returns BoostControlSpec
                                         * @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.cloud.dialogflow.v2beta1.SearchKnowledgeRequest.SearchConfig.BoostSpecs.BoostSpec.ConditionBoostSpec.BoostControlSpec;

                                        /**
                                         * Verifies a BoostControlSpec 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 BoostControlSpec message from a plain object. Also converts values to their respective internal types.
                                         * @param object Plain object
                                         * @returns BoostControlSpec
                                         */
                                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.SearchKnowledgeRequest.SearchConfig.BoostSpecs.BoostSpec.ConditionBoostSpec.BoostControlSpec;

                                        /**
                                         * Creates a plain object from a BoostControlSpec message. Also converts values to other types if specified.
                                         * @param message BoostControlSpec
                                         * @param [options] Conversion options
                                         * @returns Plain object
                                         */
                                        public static toObject(message: google.cloud.dialogflow.v2beta1.SearchKnowledgeRequest.SearchConfig.BoostSpecs.BoostSpec.ConditionBoostSpec.BoostControlSpec, options?: $protobuf.IConversionOptions): { [k: string]: any };

                                        /**
                                         * Converts this BoostControlSpec to JSON.
                                         * @returns JSON object
                                         */
                                        public toJSON(): { [k: string]: any };

                                        /**
                                         * Gets the default type url for BoostControlSpec
                                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                                         * @returns The default type url
                                         */
                                        public static getTypeUrl(typeUrlPrefix?: string): string;
                                    }

                                    namespace BoostControlSpec {

                                        /** AttributeType enum. */
                                        enum AttributeType {
                                            ATTRIBUTE_TYPE_UNSPECIFIED = 0,
                                            NUMERICAL = 1,
                                            FRESHNESS = 2
                                        }

                                        /** InterpolationType enum. */
                                        enum InterpolationType {
                                            INTERPOLATION_TYPE_UNSPECIFIED = 0,
                                            LINEAR = 1
                                        }

                                        /** Properties of a ControlPoint. */
                                        interface IControlPoint {

                                            /** ControlPoint attributeValue */
                                            attributeValue?: (string|null);

                                            /** ControlPoint boostAmount */
                                            boostAmount?: (number|null);
                                        }

                                        /** Represents a ControlPoint. */
                                        class ControlPoint implements IControlPoint {

                                            /**
                                             * Constructs a new ControlPoint.
                                             * @param [properties] Properties to set
                                             */
                                            constructor(properties?: google.cloud.dialogflow.v2beta1.SearchKnowledgeRequest.SearchConfig.BoostSpecs.BoostSpec.ConditionBoostSpec.BoostControlSpec.IControlPoint);

                                            /** ControlPoint attributeValue. */
                                            public attributeValue: string;

                                            /** ControlPoint boostAmount. */
                                            public boostAmount: number;

                                            /**
                                             * Creates a new ControlPoint instance using the specified properties.
                                             * @param [properties] Properties to set
                                             * @returns ControlPoint instance
                                             */
                                            public static create(properties?: google.cloud.dialogflow.v2beta1.SearchKnowledgeRequest.SearchConfig.BoostSpecs.BoostSpec.ConditionBoostSpec.BoostControlSpec.IControlPoint): google.cloud.dialogflow.v2beta1.SearchKnowledgeRequest.SearchConfig.BoostSpecs.BoostSpec.ConditionBoostSpec.BoostControlSpec.ControlPoint;

                                            /**
                                             * Encodes the specified ControlPoint message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.SearchKnowledgeRequest.SearchConfig.BoostSpecs.BoostSpec.ConditionBoostSpec.BoostControlSpec.ControlPoint.verify|verify} messages.
                                             * @param message ControlPoint message or plain object to encode
                                             * @param [writer] Writer to encode to
                                             * @returns Writer
                                             */
                                            public static encode(message: google.cloud.dialogflow.v2beta1.SearchKnowledgeRequest.SearchConfig.BoostSpecs.BoostSpec.ConditionBoostSpec.BoostControlSpec.IControlPoint, writer?: $protobuf.Writer): $protobuf.Writer;

                                            /**
                                             * Encodes the specified ControlPoint message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.SearchKnowledgeRequest.SearchConfig.BoostSpecs.BoostSpec.ConditionBoostSpec.BoostControlSpec.ControlPoint.verify|verify} messages.
                                             * @param message ControlPoint message or plain object to encode
                                             * @param [writer] Writer to encode to
                                             * @returns Writer
                                             */
                                            public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.SearchKnowledgeRequest.SearchConfig.BoostSpecs.BoostSpec.ConditionBoostSpec.BoostControlSpec.IControlPoint, writer?: $protobuf.Writer): $protobuf.Writer;

                                            /**
                                             * Decodes a ControlPoint message from the specified reader or buffer.
                                             * @param reader Reader or buffer to decode from
                                             * @param [length] Message length if known beforehand
                                             * @returns ControlPoint
                                             * @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.cloud.dialogflow.v2beta1.SearchKnowledgeRequest.SearchConfig.BoostSpecs.BoostSpec.ConditionBoostSpec.BoostControlSpec.ControlPoint;

                                            /**
                                             * Decodes a ControlPoint message from the specified reader or buffer, length delimited.
                                             * @param reader Reader or buffer to decode from
                                             * @returns ControlPoint
                                             * @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.cloud.dialogflow.v2beta1.SearchKnowledgeRequest.SearchConfig.BoostSpecs.BoostSpec.ConditionBoostSpec.BoostControlSpec.ControlPoint;

                                            /**
                                             * Verifies a ControlPoint 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 ControlPoint message from a plain object. Also converts values to their respective internal types.
                                             * @param object Plain object
                                             * @returns ControlPoint
                                             */
                                            public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.SearchKnowledgeRequest.SearchConfig.BoostSpecs.BoostSpec.ConditionBoostSpec.BoostControlSpec.ControlPoint;

                                            /**
                                             * Creates a plain object from a ControlPoint message. Also converts values to other types if specified.
                                             * @param message ControlPoint
                                             * @param [options] Conversion options
                                             * @returns Plain object
                                             */
                                            public static toObject(message: google.cloud.dialogflow.v2beta1.SearchKnowledgeRequest.SearchConfig.BoostSpecs.BoostSpec.ConditionBoostSpec.BoostControlSpec.ControlPoint, options?: $protobuf.IConversionOptions): { [k: string]: any };

                                            /**
                                             * Converts this ControlPoint to JSON.
                                             * @returns JSON object
                                             */
                                            public toJSON(): { [k: string]: any };

                                            /**
                                             * Gets the default type url for ControlPoint
                                             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                                             * @returns The default type url
                                             */
                                            public static getTypeUrl(typeUrlPrefix?: string): string;
                                        }
                                    }
                                }
                            }
                        }

                        /** Properties of a FilterSpecs. */
                        interface IFilterSpecs {

                            /** FilterSpecs dataStores */
                            dataStores?: (string[]|null);

                            /** FilterSpecs filter */
                            filter?: (string|null);
                        }

                        /** Represents a FilterSpecs. */
                        class FilterSpecs implements IFilterSpecs {

                            /**
                             * Constructs a new FilterSpecs.
                             * @param [properties] Properties to set
                             */
                            constructor(properties?: google.cloud.dialogflow.v2beta1.SearchKnowledgeRequest.SearchConfig.IFilterSpecs);

                            /** FilterSpecs dataStores. */
                            public dataStores: string[];

                            /** FilterSpecs filter. */
                            public filter: string;

                            /**
                             * Creates a new FilterSpecs instance using the specified properties.
                             * @param [properties] Properties to set
                             * @returns FilterSpecs instance
                             */
                            public static create(properties?: google.cloud.dialogflow.v2beta1.SearchKnowledgeRequest.SearchConfig.IFilterSpecs): google.cloud.dialogflow.v2beta1.SearchKnowledgeRequest.SearchConfig.FilterSpecs;

                            /**
                             * Encodes the specified FilterSpecs message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.SearchKnowledgeRequest.SearchConfig.FilterSpecs.verify|verify} messages.
                             * @param message FilterSpecs message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encode(message: google.cloud.dialogflow.v2beta1.SearchKnowledgeRequest.SearchConfig.IFilterSpecs, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Encodes the specified FilterSpecs message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.SearchKnowledgeRequest.SearchConfig.FilterSpecs.verify|verify} messages.
                             * @param message FilterSpecs message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.SearchKnowledgeRequest.SearchConfig.IFilterSpecs, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Decodes a FilterSpecs message from the specified reader or buffer.
                             * @param reader Reader or buffer to decode from
                             * @param [length] Message length if known beforehand
                             * @returns FilterSpecs
                             * @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.cloud.dialogflow.v2beta1.SearchKnowledgeRequest.SearchConfig.FilterSpecs;

                            /**
                             * Decodes a FilterSpecs message from the specified reader or buffer, length delimited.
                             * @param reader Reader or buffer to decode from
                             * @returns FilterSpecs
                             * @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.cloud.dialogflow.v2beta1.SearchKnowledgeRequest.SearchConfig.FilterSpecs;

                            /**
                             * Verifies a FilterSpecs 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 FilterSpecs message from a plain object. Also converts values to their respective internal types.
                             * @param object Plain object
                             * @returns FilterSpecs
                             */
                            public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.SearchKnowledgeRequest.SearchConfig.FilterSpecs;

                            /**
                             * Creates a plain object from a FilterSpecs message. Also converts values to other types if specified.
                             * @param message FilterSpecs
                             * @param [options] Conversion options
                             * @returns Plain object
                             */
                            public static toObject(message: google.cloud.dialogflow.v2beta1.SearchKnowledgeRequest.SearchConfig.FilterSpecs, options?: $protobuf.IConversionOptions): { [k: string]: any };

                            /**
                             * Converts this FilterSpecs to JSON.
                             * @returns JSON object
                             */
                            public toJSON(): { [k: string]: any };

                            /**
                             * Gets the default type url for FilterSpecs
                             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                             * @returns The default type url
                             */
                            public static getTypeUrl(typeUrlPrefix?: string): string;
                        }
                    }
                }

                /** Properties of a SearchKnowledgeDebugInfo. */
                interface ISearchKnowledgeDebugInfo {

                    /** SearchKnowledgeDebugInfo datastoreResponseReason */
                    datastoreResponseReason?: (google.cloud.dialogflow.v2beta1.DatastoreResponseReason|keyof typeof google.cloud.dialogflow.v2beta1.DatastoreResponseReason|null);

                    /** SearchKnowledgeDebugInfo searchKnowledgeBehavior */
                    searchKnowledgeBehavior?: (google.cloud.dialogflow.v2beta1.SearchKnowledgeDebugInfo.ISearchKnowledgeBehavior|null);

                    /** SearchKnowledgeDebugInfo ingestedContextReferenceDebugInfo */
                    ingestedContextReferenceDebugInfo?: (google.cloud.dialogflow.v2beta1.IIngestedContextReferenceDebugInfo|null);

                    /** SearchKnowledgeDebugInfo serviceLatency */
                    serviceLatency?: (google.cloud.dialogflow.v2beta1.IServiceLatency|null);
                }

                /** Represents a SearchKnowledgeDebugInfo. */
                class SearchKnowledgeDebugInfo implements ISearchKnowledgeDebugInfo {

                    /**
                     * Constructs a new SearchKnowledgeDebugInfo.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.ISearchKnowledgeDebugInfo);

                    /** SearchKnowledgeDebugInfo datastoreResponseReason. */
                    public datastoreResponseReason: (google.cloud.dialogflow.v2beta1.DatastoreResponseReason|keyof typeof google.cloud.dialogflow.v2beta1.DatastoreResponseReason);

                    /** SearchKnowledgeDebugInfo searchKnowledgeBehavior. */
                    public searchKnowledgeBehavior?: (google.cloud.dialogflow.v2beta1.SearchKnowledgeDebugInfo.ISearchKnowledgeBehavior|null);

                    /** SearchKnowledgeDebugInfo ingestedContextReferenceDebugInfo. */
                    public ingestedContextReferenceDebugInfo?: (google.cloud.dialogflow.v2beta1.IIngestedContextReferenceDebugInfo|null);

                    /** SearchKnowledgeDebugInfo serviceLatency. */
                    public serviceLatency?: (google.cloud.dialogflow.v2beta1.IServiceLatency|null);

                    /**
                     * Creates a new SearchKnowledgeDebugInfo instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SearchKnowledgeDebugInfo instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.ISearchKnowledgeDebugInfo): google.cloud.dialogflow.v2beta1.SearchKnowledgeDebugInfo;

                    /**
                     * Encodes the specified SearchKnowledgeDebugInfo message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.SearchKnowledgeDebugInfo.verify|verify} messages.
                     * @param message SearchKnowledgeDebugInfo message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.ISearchKnowledgeDebugInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SearchKnowledgeDebugInfo message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.SearchKnowledgeDebugInfo.verify|verify} messages.
                     * @param message SearchKnowledgeDebugInfo message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.ISearchKnowledgeDebugInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SearchKnowledgeDebugInfo message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SearchKnowledgeDebugInfo
                     * @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.cloud.dialogflow.v2beta1.SearchKnowledgeDebugInfo;

                    /**
                     * Decodes a SearchKnowledgeDebugInfo message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SearchKnowledgeDebugInfo
                     * @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.cloud.dialogflow.v2beta1.SearchKnowledgeDebugInfo;

                    /**
                     * Verifies a SearchKnowledgeDebugInfo 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 SearchKnowledgeDebugInfo message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SearchKnowledgeDebugInfo
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.SearchKnowledgeDebugInfo;

                    /**
                     * Creates a plain object from a SearchKnowledgeDebugInfo message. Also converts values to other types if specified.
                     * @param message SearchKnowledgeDebugInfo
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.SearchKnowledgeDebugInfo, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SearchKnowledgeDebugInfo to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SearchKnowledgeDebugInfo
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace SearchKnowledgeDebugInfo {

                    /** Properties of a SearchKnowledgeBehavior. */
                    interface ISearchKnowledgeBehavior {

                        /** SearchKnowledgeBehavior answerGenerationRewriterOn */
                        answerGenerationRewriterOn?: (boolean|null);

                        /** SearchKnowledgeBehavior endUserMetadataIncluded */
                        endUserMetadataIncluded?: (boolean|null);

                        /** SearchKnowledgeBehavior thirdPartyConnectorAllowed */
                        thirdPartyConnectorAllowed?: (boolean|null);
                    }

                    /** Represents a SearchKnowledgeBehavior. */
                    class SearchKnowledgeBehavior implements ISearchKnowledgeBehavior {

                        /**
                         * Constructs a new SearchKnowledgeBehavior.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2beta1.SearchKnowledgeDebugInfo.ISearchKnowledgeBehavior);

                        /** SearchKnowledgeBehavior answerGenerationRewriterOn. */
                        public answerGenerationRewriterOn: boolean;

                        /** SearchKnowledgeBehavior endUserMetadataIncluded. */
                        public endUserMetadataIncluded: boolean;

                        /** SearchKnowledgeBehavior thirdPartyConnectorAllowed. */
                        public thirdPartyConnectorAllowed: boolean;

                        /**
                         * Creates a new SearchKnowledgeBehavior instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns SearchKnowledgeBehavior instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2beta1.SearchKnowledgeDebugInfo.ISearchKnowledgeBehavior): google.cloud.dialogflow.v2beta1.SearchKnowledgeDebugInfo.SearchKnowledgeBehavior;

                        /**
                         * Encodes the specified SearchKnowledgeBehavior message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.SearchKnowledgeDebugInfo.SearchKnowledgeBehavior.verify|verify} messages.
                         * @param message SearchKnowledgeBehavior message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2beta1.SearchKnowledgeDebugInfo.ISearchKnowledgeBehavior, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified SearchKnowledgeBehavior message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.SearchKnowledgeDebugInfo.SearchKnowledgeBehavior.verify|verify} messages.
                         * @param message SearchKnowledgeBehavior message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.SearchKnowledgeDebugInfo.ISearchKnowledgeBehavior, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a SearchKnowledgeBehavior message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns SearchKnowledgeBehavior
                         * @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.cloud.dialogflow.v2beta1.SearchKnowledgeDebugInfo.SearchKnowledgeBehavior;

                        /**
                         * Decodes a SearchKnowledgeBehavior message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns SearchKnowledgeBehavior
                         * @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.cloud.dialogflow.v2beta1.SearchKnowledgeDebugInfo.SearchKnowledgeBehavior;

                        /**
                         * Verifies a SearchKnowledgeBehavior 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 SearchKnowledgeBehavior message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns SearchKnowledgeBehavior
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.SearchKnowledgeDebugInfo.SearchKnowledgeBehavior;

                        /**
                         * Creates a plain object from a SearchKnowledgeBehavior message. Also converts values to other types if specified.
                         * @param message SearchKnowledgeBehavior
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.dialogflow.v2beta1.SearchKnowledgeDebugInfo.SearchKnowledgeBehavior, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this SearchKnowledgeBehavior to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for SearchKnowledgeBehavior
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }
                }

                /** Properties of a SearchKnowledgeResponse. */
                interface ISearchKnowledgeResponse {

                    /** SearchKnowledgeResponse answers */
                    answers?: (google.cloud.dialogflow.v2beta1.ISearchKnowledgeAnswer[]|null);

                    /** SearchKnowledgeResponse rewrittenQuery */
                    rewrittenQuery?: (string|null);

                    /** SearchKnowledgeResponse searchKnowledgeDebugInfo */
                    searchKnowledgeDebugInfo?: (google.cloud.dialogflow.v2beta1.ISearchKnowledgeDebugInfo|null);
                }

                /** Represents a SearchKnowledgeResponse. */
                class SearchKnowledgeResponse implements ISearchKnowledgeResponse {

                    /**
                     * Constructs a new SearchKnowledgeResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.ISearchKnowledgeResponse);

                    /** SearchKnowledgeResponse answers. */
                    public answers: google.cloud.dialogflow.v2beta1.ISearchKnowledgeAnswer[];

                    /** SearchKnowledgeResponse rewrittenQuery. */
                    public rewrittenQuery: string;

                    /** SearchKnowledgeResponse searchKnowledgeDebugInfo. */
                    public searchKnowledgeDebugInfo?: (google.cloud.dialogflow.v2beta1.ISearchKnowledgeDebugInfo|null);

                    /**
                     * Creates a new SearchKnowledgeResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SearchKnowledgeResponse instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.ISearchKnowledgeResponse): google.cloud.dialogflow.v2beta1.SearchKnowledgeResponse;

                    /**
                     * Encodes the specified SearchKnowledgeResponse message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.SearchKnowledgeResponse.verify|verify} messages.
                     * @param message SearchKnowledgeResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.ISearchKnowledgeResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SearchKnowledgeResponse message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.SearchKnowledgeResponse.verify|verify} messages.
                     * @param message SearchKnowledgeResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.ISearchKnowledgeResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SearchKnowledgeResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SearchKnowledgeResponse
                     * @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.cloud.dialogflow.v2beta1.SearchKnowledgeResponse;

                    /**
                     * Decodes a SearchKnowledgeResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SearchKnowledgeResponse
                     * @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.cloud.dialogflow.v2beta1.SearchKnowledgeResponse;

                    /**
                     * Verifies a SearchKnowledgeResponse 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 SearchKnowledgeResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SearchKnowledgeResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.SearchKnowledgeResponse;

                    /**
                     * Creates a plain object from a SearchKnowledgeResponse message. Also converts values to other types if specified.
                     * @param message SearchKnowledgeResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.SearchKnowledgeResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SearchKnowledgeResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SearchKnowledgeResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SearchKnowledgeAnswer. */
                interface ISearchKnowledgeAnswer {

                    /** SearchKnowledgeAnswer answer */
                    answer?: (string|null);

                    /** SearchKnowledgeAnswer answerType */
                    answerType?: (google.cloud.dialogflow.v2beta1.SearchKnowledgeAnswer.AnswerType|keyof typeof google.cloud.dialogflow.v2beta1.SearchKnowledgeAnswer.AnswerType|null);

                    /** SearchKnowledgeAnswer answerSources */
                    answerSources?: (google.cloud.dialogflow.v2beta1.SearchKnowledgeAnswer.IAnswerSource[]|null);

                    /** SearchKnowledgeAnswer answerRecord */
                    answerRecord?: (string|null);
                }

                /** Represents a SearchKnowledgeAnswer. */
                class SearchKnowledgeAnswer implements ISearchKnowledgeAnswer {

                    /**
                     * Constructs a new SearchKnowledgeAnswer.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.ISearchKnowledgeAnswer);

                    /** SearchKnowledgeAnswer answer. */
                    public answer: string;

                    /** SearchKnowledgeAnswer answerType. */
                    public answerType: (google.cloud.dialogflow.v2beta1.SearchKnowledgeAnswer.AnswerType|keyof typeof google.cloud.dialogflow.v2beta1.SearchKnowledgeAnswer.AnswerType);

                    /** SearchKnowledgeAnswer answerSources. */
                    public answerSources: google.cloud.dialogflow.v2beta1.SearchKnowledgeAnswer.IAnswerSource[];

                    /** SearchKnowledgeAnswer answerRecord. */
                    public answerRecord: string;

                    /**
                     * Creates a new SearchKnowledgeAnswer instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SearchKnowledgeAnswer instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.ISearchKnowledgeAnswer): google.cloud.dialogflow.v2beta1.SearchKnowledgeAnswer;

                    /**
                     * Encodes the specified SearchKnowledgeAnswer message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.SearchKnowledgeAnswer.verify|verify} messages.
                     * @param message SearchKnowledgeAnswer message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.ISearchKnowledgeAnswer, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SearchKnowledgeAnswer message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.SearchKnowledgeAnswer.verify|verify} messages.
                     * @param message SearchKnowledgeAnswer message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.ISearchKnowledgeAnswer, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SearchKnowledgeAnswer message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SearchKnowledgeAnswer
                     * @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.cloud.dialogflow.v2beta1.SearchKnowledgeAnswer;

                    /**
                     * Decodes a SearchKnowledgeAnswer message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SearchKnowledgeAnswer
                     * @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.cloud.dialogflow.v2beta1.SearchKnowledgeAnswer;

                    /**
                     * Verifies a SearchKnowledgeAnswer 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 SearchKnowledgeAnswer message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SearchKnowledgeAnswer
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.SearchKnowledgeAnswer;

                    /**
                     * Creates a plain object from a SearchKnowledgeAnswer message. Also converts values to other types if specified.
                     * @param message SearchKnowledgeAnswer
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.SearchKnowledgeAnswer, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SearchKnowledgeAnswer to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SearchKnowledgeAnswer
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace SearchKnowledgeAnswer {

                    /** AnswerType enum. */
                    enum AnswerType {
                        ANSWER_TYPE_UNSPECIFIED = 0,
                        FAQ = 1,
                        GENERATIVE = 2,
                        INTENT = 3
                    }

                    /** Properties of an AnswerSource. */
                    interface IAnswerSource {

                        /** AnswerSource title */
                        title?: (string|null);

                        /** AnswerSource uri */
                        uri?: (string|null);

                        /** AnswerSource snippet */
                        snippet?: (string|null);

                        /** AnswerSource metadata */
                        metadata?: (google.protobuf.IStruct|null);
                    }

                    /** Represents an AnswerSource. */
                    class AnswerSource implements IAnswerSource {

                        /**
                         * Constructs a new AnswerSource.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2beta1.SearchKnowledgeAnswer.IAnswerSource);

                        /** AnswerSource title. */
                        public title: string;

                        /** AnswerSource uri. */
                        public uri: string;

                        /** AnswerSource snippet. */
                        public snippet: string;

                        /** AnswerSource metadata. */
                        public metadata?: (google.protobuf.IStruct|null);

                        /**
                         * Creates a new AnswerSource instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns AnswerSource instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2beta1.SearchKnowledgeAnswer.IAnswerSource): google.cloud.dialogflow.v2beta1.SearchKnowledgeAnswer.AnswerSource;

                        /**
                         * Encodes the specified AnswerSource message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.SearchKnowledgeAnswer.AnswerSource.verify|verify} messages.
                         * @param message AnswerSource message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2beta1.SearchKnowledgeAnswer.IAnswerSource, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified AnswerSource message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.SearchKnowledgeAnswer.AnswerSource.verify|verify} messages.
                         * @param message AnswerSource message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.SearchKnowledgeAnswer.IAnswerSource, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes an AnswerSource message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns AnswerSource
                         * @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.cloud.dialogflow.v2beta1.SearchKnowledgeAnswer.AnswerSource;

                        /**
                         * Decodes an AnswerSource message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns AnswerSource
                         * @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.cloud.dialogflow.v2beta1.SearchKnowledgeAnswer.AnswerSource;

                        /**
                         * Verifies an AnswerSource 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 AnswerSource message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns AnswerSource
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.SearchKnowledgeAnswer.AnswerSource;

                        /**
                         * Creates a plain object from an AnswerSource message. Also converts values to other types if specified.
                         * @param message AnswerSource
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.dialogflow.v2beta1.SearchKnowledgeAnswer.AnswerSource, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this AnswerSource to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for AnswerSource
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }
                }

                /** Properties of a GenerateSuggestionsRequest. */
                interface IGenerateSuggestionsRequest {

                    /** GenerateSuggestionsRequest conversation */
                    conversation?: (string|null);

                    /** GenerateSuggestionsRequest latestMessage */
                    latestMessage?: (string|null);

                    /** GenerateSuggestionsRequest triggerEvents */
                    triggerEvents?: (google.cloud.dialogflow.v2beta1.TriggerEvent[]|null);
                }

                /** Represents a GenerateSuggestionsRequest. */
                class GenerateSuggestionsRequest implements IGenerateSuggestionsRequest {

                    /**
                     * Constructs a new GenerateSuggestionsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IGenerateSuggestionsRequest);

                    /** GenerateSuggestionsRequest conversation. */
                    public conversation: string;

                    /** GenerateSuggestionsRequest latestMessage. */
                    public latestMessage: string;

                    /** GenerateSuggestionsRequest triggerEvents. */
                    public triggerEvents: google.cloud.dialogflow.v2beta1.TriggerEvent[];

                    /**
                     * Creates a new GenerateSuggestionsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GenerateSuggestionsRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IGenerateSuggestionsRequest): google.cloud.dialogflow.v2beta1.GenerateSuggestionsRequest;

                    /**
                     * Encodes the specified GenerateSuggestionsRequest message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.GenerateSuggestionsRequest.verify|verify} messages.
                     * @param message GenerateSuggestionsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IGenerateSuggestionsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GenerateSuggestionsRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.GenerateSuggestionsRequest.verify|verify} messages.
                     * @param message GenerateSuggestionsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IGenerateSuggestionsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GenerateSuggestionsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GenerateSuggestionsRequest
                     * @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.cloud.dialogflow.v2beta1.GenerateSuggestionsRequest;

                    /**
                     * Decodes a GenerateSuggestionsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GenerateSuggestionsRequest
                     * @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.cloud.dialogflow.v2beta1.GenerateSuggestionsRequest;

                    /**
                     * Verifies a GenerateSuggestionsRequest 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 GenerateSuggestionsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GenerateSuggestionsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.GenerateSuggestionsRequest;

                    /**
                     * Creates a plain object from a GenerateSuggestionsRequest message. Also converts values to other types if specified.
                     * @param message GenerateSuggestionsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.GenerateSuggestionsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GenerateSuggestionsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GenerateSuggestionsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Represents a ConversationProfiles */
                class ConversationProfiles extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new ConversationProfiles 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 ConversationProfiles 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): ConversationProfiles;

                    /**
                     * Calls ListConversationProfiles.
                     * @param request ListConversationProfilesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ListConversationProfilesResponse
                     */
                    public listConversationProfiles(request: google.cloud.dialogflow.v2beta1.IListConversationProfilesRequest, callback: google.cloud.dialogflow.v2beta1.ConversationProfiles.ListConversationProfilesCallback): void;

                    /**
                     * Calls ListConversationProfiles.
                     * @param request ListConversationProfilesRequest message or plain object
                     * @returns Promise
                     */
                    public listConversationProfiles(request: google.cloud.dialogflow.v2beta1.IListConversationProfilesRequest): Promise<google.cloud.dialogflow.v2beta1.ListConversationProfilesResponse>;

                    /**
                     * Calls GetConversationProfile.
                     * @param request GetConversationProfileRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ConversationProfile
                     */
                    public getConversationProfile(request: google.cloud.dialogflow.v2beta1.IGetConversationProfileRequest, callback: google.cloud.dialogflow.v2beta1.ConversationProfiles.GetConversationProfileCallback): void;

                    /**
                     * Calls GetConversationProfile.
                     * @param request GetConversationProfileRequest message or plain object
                     * @returns Promise
                     */
                    public getConversationProfile(request: google.cloud.dialogflow.v2beta1.IGetConversationProfileRequest): Promise<google.cloud.dialogflow.v2beta1.ConversationProfile>;

                    /**
                     * Calls CreateConversationProfile.
                     * @param request CreateConversationProfileRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ConversationProfile
                     */
                    public createConversationProfile(request: google.cloud.dialogflow.v2beta1.ICreateConversationProfileRequest, callback: google.cloud.dialogflow.v2beta1.ConversationProfiles.CreateConversationProfileCallback): void;

                    /**
                     * Calls CreateConversationProfile.
                     * @param request CreateConversationProfileRequest message or plain object
                     * @returns Promise
                     */
                    public createConversationProfile(request: google.cloud.dialogflow.v2beta1.ICreateConversationProfileRequest): Promise<google.cloud.dialogflow.v2beta1.ConversationProfile>;

                    /**
                     * Calls UpdateConversationProfile.
                     * @param request UpdateConversationProfileRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ConversationProfile
                     */
                    public updateConversationProfile(request: google.cloud.dialogflow.v2beta1.IUpdateConversationProfileRequest, callback: google.cloud.dialogflow.v2beta1.ConversationProfiles.UpdateConversationProfileCallback): void;

                    /**
                     * Calls UpdateConversationProfile.
                     * @param request UpdateConversationProfileRequest message or plain object
                     * @returns Promise
                     */
                    public updateConversationProfile(request: google.cloud.dialogflow.v2beta1.IUpdateConversationProfileRequest): Promise<google.cloud.dialogflow.v2beta1.ConversationProfile>;

                    /**
                     * Calls DeleteConversationProfile.
                     * @param request DeleteConversationProfileRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Empty
                     */
                    public deleteConversationProfile(request: google.cloud.dialogflow.v2beta1.IDeleteConversationProfileRequest, callback: google.cloud.dialogflow.v2beta1.ConversationProfiles.DeleteConversationProfileCallback): void;

                    /**
                     * Calls DeleteConversationProfile.
                     * @param request DeleteConversationProfileRequest message or plain object
                     * @returns Promise
                     */
                    public deleteConversationProfile(request: google.cloud.dialogflow.v2beta1.IDeleteConversationProfileRequest): Promise<google.protobuf.Empty>;

                    /**
                     * Calls SetSuggestionFeatureConfig.
                     * @param request SetSuggestionFeatureConfigRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setSuggestionFeatureConfig(request: google.cloud.dialogflow.v2beta1.ISetSuggestionFeatureConfigRequest, callback: google.cloud.dialogflow.v2beta1.ConversationProfiles.SetSuggestionFeatureConfigCallback): void;

                    /**
                     * Calls SetSuggestionFeatureConfig.
                     * @param request SetSuggestionFeatureConfigRequest message or plain object
                     * @returns Promise
                     */
                    public setSuggestionFeatureConfig(request: google.cloud.dialogflow.v2beta1.ISetSuggestionFeatureConfigRequest): Promise<google.longrunning.Operation>;

                    /**
                     * Calls ClearSuggestionFeatureConfig.
                     * @param request ClearSuggestionFeatureConfigRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public clearSuggestionFeatureConfig(request: google.cloud.dialogflow.v2beta1.IClearSuggestionFeatureConfigRequest, callback: google.cloud.dialogflow.v2beta1.ConversationProfiles.ClearSuggestionFeatureConfigCallback): void;

                    /**
                     * Calls ClearSuggestionFeatureConfig.
                     * @param request ClearSuggestionFeatureConfigRequest message or plain object
                     * @returns Promise
                     */
                    public clearSuggestionFeatureConfig(request: google.cloud.dialogflow.v2beta1.IClearSuggestionFeatureConfigRequest): Promise<google.longrunning.Operation>;
                }

                namespace ConversationProfiles {

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2beta1.ConversationProfiles|listConversationProfiles}.
                     * @param error Error, if any
                     * @param [response] ListConversationProfilesResponse
                     */
                    type ListConversationProfilesCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2beta1.ListConversationProfilesResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2beta1.ConversationProfiles|getConversationProfile}.
                     * @param error Error, if any
                     * @param [response] ConversationProfile
                     */
                    type GetConversationProfileCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2beta1.ConversationProfile) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2beta1.ConversationProfiles|createConversationProfile}.
                     * @param error Error, if any
                     * @param [response] ConversationProfile
                     */
                    type CreateConversationProfileCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2beta1.ConversationProfile) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2beta1.ConversationProfiles|updateConversationProfile}.
                     * @param error Error, if any
                     * @param [response] ConversationProfile
                     */
                    type UpdateConversationProfileCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2beta1.ConversationProfile) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2beta1.ConversationProfiles|deleteConversationProfile}.
                     * @param error Error, if any
                     * @param [response] Empty
                     */
                    type DeleteConversationProfileCallback = (error: (Error|null), response?: google.protobuf.Empty) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2beta1.ConversationProfiles|setSuggestionFeatureConfig}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetSuggestionFeatureConfigCallback = (error: (Error|null), response?: google.longrunning.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2beta1.ConversationProfiles|clearSuggestionFeatureConfig}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type ClearSuggestionFeatureConfigCallback = (error: (Error|null), response?: google.longrunning.Operation) => void;
                }

                /** Properties of a ConversationProfile. */
                interface IConversationProfile {

                    /** ConversationProfile name */
                    name?: (string|null);

                    /** ConversationProfile displayName */
                    displayName?: (string|null);

                    /** ConversationProfile createTime */
                    createTime?: (google.protobuf.ITimestamp|null);

                    /** ConversationProfile updateTime */
                    updateTime?: (google.protobuf.ITimestamp|null);

                    /** ConversationProfile useBidiStreaming */
                    useBidiStreaming?: (boolean|null);

                    /** ConversationProfile automatedAgentConfig */
                    automatedAgentConfig?: (google.cloud.dialogflow.v2beta1.IAutomatedAgentConfig|null);

                    /** ConversationProfile humanAgentAssistantConfig */
                    humanAgentAssistantConfig?: (google.cloud.dialogflow.v2beta1.IHumanAgentAssistantConfig|null);

                    /** ConversationProfile humanAgentHandoffConfig */
                    humanAgentHandoffConfig?: (google.cloud.dialogflow.v2beta1.IHumanAgentHandoffConfig|null);

                    /** ConversationProfile notificationConfig */
                    notificationConfig?: (google.cloud.dialogflow.v2beta1.INotificationConfig|null);

                    /** ConversationProfile loggingConfig */
                    loggingConfig?: (google.cloud.dialogflow.v2beta1.ILoggingConfig|null);

                    /** ConversationProfile newMessageEventNotificationConfig */
                    newMessageEventNotificationConfig?: (google.cloud.dialogflow.v2beta1.INotificationConfig|null);

                    /** ConversationProfile newRecognitionResultNotificationConfig */
                    newRecognitionResultNotificationConfig?: (google.cloud.dialogflow.v2beta1.INotificationConfig|null);

                    /** ConversationProfile sttConfig */
                    sttConfig?: (google.cloud.dialogflow.v2beta1.ISpeechToTextConfig|null);

                    /** ConversationProfile languageCode */
                    languageCode?: (string|null);

                    /** ConversationProfile timeZone */
                    timeZone?: (string|null);

                    /** ConversationProfile securitySettings */
                    securitySettings?: (string|null);

                    /** ConversationProfile ttsConfig */
                    ttsConfig?: (google.cloud.dialogflow.v2beta1.ISynthesizeSpeechConfig|null);
                }

                /** Represents a ConversationProfile. */
                class ConversationProfile implements IConversationProfile {

                    /**
                     * Constructs a new ConversationProfile.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IConversationProfile);

                    /** ConversationProfile name. */
                    public name: string;

                    /** ConversationProfile displayName. */
                    public displayName: string;

                    /** ConversationProfile createTime. */
                    public createTime?: (google.protobuf.ITimestamp|null);

                    /** ConversationProfile updateTime. */
                    public updateTime?: (google.protobuf.ITimestamp|null);

                    /** ConversationProfile useBidiStreaming. */
                    public useBidiStreaming: boolean;

                    /** ConversationProfile automatedAgentConfig. */
                    public automatedAgentConfig?: (google.cloud.dialogflow.v2beta1.IAutomatedAgentConfig|null);

                    /** ConversationProfile humanAgentAssistantConfig. */
                    public humanAgentAssistantConfig?: (google.cloud.dialogflow.v2beta1.IHumanAgentAssistantConfig|null);

                    /** ConversationProfile humanAgentHandoffConfig. */
                    public humanAgentHandoffConfig?: (google.cloud.dialogflow.v2beta1.IHumanAgentHandoffConfig|null);

                    /** ConversationProfile notificationConfig. */
                    public notificationConfig?: (google.cloud.dialogflow.v2beta1.INotificationConfig|null);

                    /** ConversationProfile loggingConfig. */
                    public loggingConfig?: (google.cloud.dialogflow.v2beta1.ILoggingConfig|null);

                    /** ConversationProfile newMessageEventNotificationConfig. */
                    public newMessageEventNotificationConfig?: (google.cloud.dialogflow.v2beta1.INotificationConfig|null);

                    /** ConversationProfile newRecognitionResultNotificationConfig. */
                    public newRecognitionResultNotificationConfig?: (google.cloud.dialogflow.v2beta1.INotificationConfig|null);

                    /** ConversationProfile sttConfig. */
                    public sttConfig?: (google.cloud.dialogflow.v2beta1.ISpeechToTextConfig|null);

                    /** ConversationProfile languageCode. */
                    public languageCode: string;

                    /** ConversationProfile timeZone. */
                    public timeZone: string;

                    /** ConversationProfile securitySettings. */
                    public securitySettings: string;

                    /** ConversationProfile ttsConfig. */
                    public ttsConfig?: (google.cloud.dialogflow.v2beta1.ISynthesizeSpeechConfig|null);

                    /**
                     * Creates a new ConversationProfile instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ConversationProfile instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IConversationProfile): google.cloud.dialogflow.v2beta1.ConversationProfile;

                    /**
                     * Encodes the specified ConversationProfile message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.ConversationProfile.verify|verify} messages.
                     * @param message ConversationProfile message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IConversationProfile, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ConversationProfile message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.ConversationProfile.verify|verify} messages.
                     * @param message ConversationProfile message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IConversationProfile, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ConversationProfile message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ConversationProfile
                     * @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.cloud.dialogflow.v2beta1.ConversationProfile;

                    /**
                     * Decodes a ConversationProfile message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ConversationProfile
                     * @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.cloud.dialogflow.v2beta1.ConversationProfile;

                    /**
                     * Verifies a ConversationProfile 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 ConversationProfile message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ConversationProfile
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.ConversationProfile;

                    /**
                     * Creates a plain object from a ConversationProfile message. Also converts values to other types if specified.
                     * @param message ConversationProfile
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.ConversationProfile, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ConversationProfile to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ConversationProfile
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AutomatedAgentConfig. */
                interface IAutomatedAgentConfig {

                    /** AutomatedAgentConfig agent */
                    agent?: (string|null);

                    /** AutomatedAgentConfig sessionTtl */
                    sessionTtl?: (google.protobuf.IDuration|null);
                }

                /** Represents an AutomatedAgentConfig. */
                class AutomatedAgentConfig implements IAutomatedAgentConfig {

                    /**
                     * Constructs a new AutomatedAgentConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IAutomatedAgentConfig);

                    /** AutomatedAgentConfig agent. */
                    public agent: string;

                    /** AutomatedAgentConfig sessionTtl. */
                    public sessionTtl?: (google.protobuf.IDuration|null);

                    /**
                     * Creates a new AutomatedAgentConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AutomatedAgentConfig instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IAutomatedAgentConfig): google.cloud.dialogflow.v2beta1.AutomatedAgentConfig;

                    /**
                     * Encodes the specified AutomatedAgentConfig message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.AutomatedAgentConfig.verify|verify} messages.
                     * @param message AutomatedAgentConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IAutomatedAgentConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AutomatedAgentConfig message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.AutomatedAgentConfig.verify|verify} messages.
                     * @param message AutomatedAgentConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IAutomatedAgentConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AutomatedAgentConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AutomatedAgentConfig
                     * @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.cloud.dialogflow.v2beta1.AutomatedAgentConfig;

                    /**
                     * Decodes an AutomatedAgentConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AutomatedAgentConfig
                     * @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.cloud.dialogflow.v2beta1.AutomatedAgentConfig;

                    /**
                     * Verifies an AutomatedAgentConfig 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 AutomatedAgentConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AutomatedAgentConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.AutomatedAgentConfig;

                    /**
                     * Creates a plain object from an AutomatedAgentConfig message. Also converts values to other types if specified.
                     * @param message AutomatedAgentConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.AutomatedAgentConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AutomatedAgentConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AutomatedAgentConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a HumanAgentAssistantConfig. */
                interface IHumanAgentAssistantConfig {

                    /** HumanAgentAssistantConfig notificationConfig */
                    notificationConfig?: (google.cloud.dialogflow.v2beta1.INotificationConfig|null);

                    /** HumanAgentAssistantConfig humanAgentSuggestionConfig */
                    humanAgentSuggestionConfig?: (google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.ISuggestionConfig|null);

                    /** HumanAgentAssistantConfig endUserSuggestionConfig */
                    endUserSuggestionConfig?: (google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.ISuggestionConfig|null);

                    /** HumanAgentAssistantConfig messageAnalysisConfig */
                    messageAnalysisConfig?: (google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.IMessageAnalysisConfig|null);
                }

                /** Represents a HumanAgentAssistantConfig. */
                class HumanAgentAssistantConfig implements IHumanAgentAssistantConfig {

                    /**
                     * Constructs a new HumanAgentAssistantConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IHumanAgentAssistantConfig);

                    /** HumanAgentAssistantConfig notificationConfig. */
                    public notificationConfig?: (google.cloud.dialogflow.v2beta1.INotificationConfig|null);

                    /** HumanAgentAssistantConfig humanAgentSuggestionConfig. */
                    public humanAgentSuggestionConfig?: (google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.ISuggestionConfig|null);

                    /** HumanAgentAssistantConfig endUserSuggestionConfig. */
                    public endUserSuggestionConfig?: (google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.ISuggestionConfig|null);

                    /** HumanAgentAssistantConfig messageAnalysisConfig. */
                    public messageAnalysisConfig?: (google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.IMessageAnalysisConfig|null);

                    /**
                     * Creates a new HumanAgentAssistantConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns HumanAgentAssistantConfig instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IHumanAgentAssistantConfig): google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig;

                    /**
                     * Encodes the specified HumanAgentAssistantConfig message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.verify|verify} messages.
                     * @param message HumanAgentAssistantConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IHumanAgentAssistantConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified HumanAgentAssistantConfig message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.verify|verify} messages.
                     * @param message HumanAgentAssistantConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IHumanAgentAssistantConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a HumanAgentAssistantConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns HumanAgentAssistantConfig
                     * @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.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig;

                    /**
                     * Decodes a HumanAgentAssistantConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns HumanAgentAssistantConfig
                     * @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.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig;

                    /**
                     * Verifies a HumanAgentAssistantConfig 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 HumanAgentAssistantConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns HumanAgentAssistantConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig;

                    /**
                     * Creates a plain object from a HumanAgentAssistantConfig message. Also converts values to other types if specified.
                     * @param message HumanAgentAssistantConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this HumanAgentAssistantConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for HumanAgentAssistantConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace HumanAgentAssistantConfig {

                    /** Properties of a SuggestionTriggerSettings. */
                    interface ISuggestionTriggerSettings {

                        /** SuggestionTriggerSettings noSmallTalk */
                        noSmallTalk?: (boolean|null);

                        /** SuggestionTriggerSettings onlyEndUser */
                        onlyEndUser?: (boolean|null);
                    }

                    /** Represents a SuggestionTriggerSettings. */
                    class SuggestionTriggerSettings implements ISuggestionTriggerSettings {

                        /**
                         * Constructs a new SuggestionTriggerSettings.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.ISuggestionTriggerSettings);

                        /** SuggestionTriggerSettings noSmallTalk. */
                        public noSmallTalk: boolean;

                        /** SuggestionTriggerSettings onlyEndUser. */
                        public onlyEndUser: boolean;

                        /**
                         * Creates a new SuggestionTriggerSettings instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns SuggestionTriggerSettings instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.ISuggestionTriggerSettings): google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.SuggestionTriggerSettings;

                        /**
                         * Encodes the specified SuggestionTriggerSettings message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.SuggestionTriggerSettings.verify|verify} messages.
                         * @param message SuggestionTriggerSettings message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.ISuggestionTriggerSettings, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified SuggestionTriggerSettings message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.SuggestionTriggerSettings.verify|verify} messages.
                         * @param message SuggestionTriggerSettings message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.ISuggestionTriggerSettings, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a SuggestionTriggerSettings message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns SuggestionTriggerSettings
                         * @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.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.SuggestionTriggerSettings;

                        /**
                         * Decodes a SuggestionTriggerSettings message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns SuggestionTriggerSettings
                         * @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.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.SuggestionTriggerSettings;

                        /**
                         * Verifies a SuggestionTriggerSettings 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 SuggestionTriggerSettings message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns SuggestionTriggerSettings
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.SuggestionTriggerSettings;

                        /**
                         * Creates a plain object from a SuggestionTriggerSettings message. Also converts values to other types if specified.
                         * @param message SuggestionTriggerSettings
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.SuggestionTriggerSettings, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this SuggestionTriggerSettings to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for SuggestionTriggerSettings
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    /** Properties of a SuggestionFeatureConfig. */
                    interface ISuggestionFeatureConfig {

                        /** SuggestionFeatureConfig suggestionFeature */
                        suggestionFeature?: (google.cloud.dialogflow.v2beta1.ISuggestionFeature|null);

                        /** SuggestionFeatureConfig enableEventBasedSuggestion */
                        enableEventBasedSuggestion?: (boolean|null);

                        /** SuggestionFeatureConfig disableAgentQueryLogging */
                        disableAgentQueryLogging?: (boolean|null);

                        /** SuggestionFeatureConfig enableQuerySuggestionWhenNoAnswer */
                        enableQuerySuggestionWhenNoAnswer?: (boolean|null);

                        /** SuggestionFeatureConfig enableConversationAugmentedQuery */
                        enableConversationAugmentedQuery?: (boolean|null);

                        /** SuggestionFeatureConfig enableQuerySuggestionOnly */
                        enableQuerySuggestionOnly?: (boolean|null);

                        /** SuggestionFeatureConfig enableResponseDebugInfo */
                        enableResponseDebugInfo?: (boolean|null);

                        /** SuggestionFeatureConfig raiSettings */
                        raiSettings?: (google.cloud.dialogflow.v2beta1.IRaiSettings|null);

                        /** SuggestionFeatureConfig suggestionTriggerSettings */
                        suggestionTriggerSettings?: (google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.ISuggestionTriggerSettings|null);

                        /** SuggestionFeatureConfig queryConfig */
                        queryConfig?: (google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.ISuggestionQueryConfig|null);

                        /** SuggestionFeatureConfig conversationModelConfig */
                        conversationModelConfig?: (google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.IConversationModelConfig|null);

                        /** SuggestionFeatureConfig conversationProcessConfig */
                        conversationProcessConfig?: (google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.IConversationProcessConfig|null);
                    }

                    /** Represents a SuggestionFeatureConfig. */
                    class SuggestionFeatureConfig implements ISuggestionFeatureConfig {

                        /**
                         * Constructs a new SuggestionFeatureConfig.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.ISuggestionFeatureConfig);

                        /** SuggestionFeatureConfig suggestionFeature. */
                        public suggestionFeature?: (google.cloud.dialogflow.v2beta1.ISuggestionFeature|null);

                        /** SuggestionFeatureConfig enableEventBasedSuggestion. */
                        public enableEventBasedSuggestion: boolean;

                        /** SuggestionFeatureConfig disableAgentQueryLogging. */
                        public disableAgentQueryLogging: boolean;

                        /** SuggestionFeatureConfig enableQuerySuggestionWhenNoAnswer. */
                        public enableQuerySuggestionWhenNoAnswer: boolean;

                        /** SuggestionFeatureConfig enableConversationAugmentedQuery. */
                        public enableConversationAugmentedQuery: boolean;

                        /** SuggestionFeatureConfig enableQuerySuggestionOnly. */
                        public enableQuerySuggestionOnly: boolean;

                        /** SuggestionFeatureConfig enableResponseDebugInfo. */
                        public enableResponseDebugInfo: boolean;

                        /** SuggestionFeatureConfig raiSettings. */
                        public raiSettings?: (google.cloud.dialogflow.v2beta1.IRaiSettings|null);

                        /** SuggestionFeatureConfig suggestionTriggerSettings. */
                        public suggestionTriggerSettings?: (google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.ISuggestionTriggerSettings|null);

                        /** SuggestionFeatureConfig queryConfig. */
                        public queryConfig?: (google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.ISuggestionQueryConfig|null);

                        /** SuggestionFeatureConfig conversationModelConfig. */
                        public conversationModelConfig?: (google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.IConversationModelConfig|null);

                        /** SuggestionFeatureConfig conversationProcessConfig. */
                        public conversationProcessConfig?: (google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.IConversationProcessConfig|null);

                        /**
                         * Creates a new SuggestionFeatureConfig instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns SuggestionFeatureConfig instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.ISuggestionFeatureConfig): google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.SuggestionFeatureConfig;

                        /**
                         * Encodes the specified SuggestionFeatureConfig message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.SuggestionFeatureConfig.verify|verify} messages.
                         * @param message SuggestionFeatureConfig message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.ISuggestionFeatureConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified SuggestionFeatureConfig message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.SuggestionFeatureConfig.verify|verify} messages.
                         * @param message SuggestionFeatureConfig message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.ISuggestionFeatureConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a SuggestionFeatureConfig message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns SuggestionFeatureConfig
                         * @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.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.SuggestionFeatureConfig;

                        /**
                         * Decodes a SuggestionFeatureConfig message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns SuggestionFeatureConfig
                         * @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.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.SuggestionFeatureConfig;

                        /**
                         * Verifies a SuggestionFeatureConfig 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 SuggestionFeatureConfig message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns SuggestionFeatureConfig
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.SuggestionFeatureConfig;

                        /**
                         * Creates a plain object from a SuggestionFeatureConfig message. Also converts values to other types if specified.
                         * @param message SuggestionFeatureConfig
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.SuggestionFeatureConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this SuggestionFeatureConfig to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for SuggestionFeatureConfig
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    /** Properties of a SuggestionConfig. */
                    interface ISuggestionConfig {

                        /** SuggestionConfig featureConfigs */
                        featureConfigs?: (google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.ISuggestionFeatureConfig[]|null);

                        /** SuggestionConfig groupSuggestionResponses */
                        groupSuggestionResponses?: (boolean|null);

                        /** SuggestionConfig generators */
                        generators?: (string[]|null);

                        /** SuggestionConfig disableHighLatencyFeaturesSyncDelivery */
                        disableHighLatencyFeaturesSyncDelivery?: (boolean|null);

                        /** SuggestionConfig skipEmptyEventBasedSuggestion */
                        skipEmptyEventBasedSuggestion?: (boolean|null);

                        /** SuggestionConfig useUnredactedConversationData */
                        useUnredactedConversationData?: (boolean|null);

                        /** SuggestionConfig enableAsyncToolCall */
                        enableAsyncToolCall?: (boolean|null);
                    }

                    /** Represents a SuggestionConfig. */
                    class SuggestionConfig implements ISuggestionConfig {

                        /**
                         * Constructs a new SuggestionConfig.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.ISuggestionConfig);

                        /** SuggestionConfig featureConfigs. */
                        public featureConfigs: google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.ISuggestionFeatureConfig[];

                        /** SuggestionConfig groupSuggestionResponses. */
                        public groupSuggestionResponses: boolean;

                        /** SuggestionConfig generators. */
                        public generators: string[];

                        /** SuggestionConfig disableHighLatencyFeaturesSyncDelivery. */
                        public disableHighLatencyFeaturesSyncDelivery: boolean;

                        /** SuggestionConfig skipEmptyEventBasedSuggestion. */
                        public skipEmptyEventBasedSuggestion: boolean;

                        /** SuggestionConfig useUnredactedConversationData. */
                        public useUnredactedConversationData: boolean;

                        /** SuggestionConfig enableAsyncToolCall. */
                        public enableAsyncToolCall: boolean;

                        /**
                         * Creates a new SuggestionConfig instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns SuggestionConfig instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.ISuggestionConfig): google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.SuggestionConfig;

                        /**
                         * Encodes the specified SuggestionConfig message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.SuggestionConfig.verify|verify} messages.
                         * @param message SuggestionConfig message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.ISuggestionConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified SuggestionConfig message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.SuggestionConfig.verify|verify} messages.
                         * @param message SuggestionConfig message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.ISuggestionConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a SuggestionConfig message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns SuggestionConfig
                         * @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.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.SuggestionConfig;

                        /**
                         * Decodes a SuggestionConfig message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns SuggestionConfig
                         * @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.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.SuggestionConfig;

                        /**
                         * Verifies a SuggestionConfig 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 SuggestionConfig message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns SuggestionConfig
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.SuggestionConfig;

                        /**
                         * Creates a plain object from a SuggestionConfig message. Also converts values to other types if specified.
                         * @param message SuggestionConfig
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.SuggestionConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this SuggestionConfig to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for SuggestionConfig
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    /** Properties of a SuggestionQueryConfig. */
                    interface ISuggestionQueryConfig {

                        /** SuggestionQueryConfig knowledgeBaseQuerySource */
                        knowledgeBaseQuerySource?: (google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.SuggestionQueryConfig.IKnowledgeBaseQuerySource|null);

                        /** SuggestionQueryConfig documentQuerySource */
                        documentQuerySource?: (google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.SuggestionQueryConfig.IDocumentQuerySource|null);

                        /** SuggestionQueryConfig dialogflowQuerySource */
                        dialogflowQuerySource?: (google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.SuggestionQueryConfig.IDialogflowQuerySource|null);

                        /** SuggestionQueryConfig maxResults */
                        maxResults?: (number|null);

                        /** SuggestionQueryConfig confidenceThreshold */
                        confidenceThreshold?: (number|null);

                        /** SuggestionQueryConfig contextFilterSettings */
                        contextFilterSettings?: (google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.SuggestionQueryConfig.IContextFilterSettings|null);

                        /** SuggestionQueryConfig sections */
                        sections?: (google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.SuggestionQueryConfig.ISections|null);

                        /** SuggestionQueryConfig contextSize */
                        contextSize?: (number|null);
                    }

                    /** Represents a SuggestionQueryConfig. */
                    class SuggestionQueryConfig implements ISuggestionQueryConfig {

                        /**
                         * Constructs a new SuggestionQueryConfig.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.ISuggestionQueryConfig);

                        /** SuggestionQueryConfig knowledgeBaseQuerySource. */
                        public knowledgeBaseQuerySource?: (google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.SuggestionQueryConfig.IKnowledgeBaseQuerySource|null);

                        /** SuggestionQueryConfig documentQuerySource. */
                        public documentQuerySource?: (google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.SuggestionQueryConfig.IDocumentQuerySource|null);

                        /** SuggestionQueryConfig dialogflowQuerySource. */
                        public dialogflowQuerySource?: (google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.SuggestionQueryConfig.IDialogflowQuerySource|null);

                        /** SuggestionQueryConfig maxResults. */
                        public maxResults: number;

                        /** SuggestionQueryConfig confidenceThreshold. */
                        public confidenceThreshold: number;

                        /** SuggestionQueryConfig contextFilterSettings. */
                        public contextFilterSettings?: (google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.SuggestionQueryConfig.IContextFilterSettings|null);

                        /** SuggestionQueryConfig sections. */
                        public sections?: (google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.SuggestionQueryConfig.ISections|null);

                        /** SuggestionQueryConfig contextSize. */
                        public contextSize: number;

                        /** SuggestionQueryConfig querySource. */
                        public querySource?: ("knowledgeBaseQuerySource"|"documentQuerySource"|"dialogflowQuerySource");

                        /**
                         * Creates a new SuggestionQueryConfig instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns SuggestionQueryConfig instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.ISuggestionQueryConfig): google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.SuggestionQueryConfig;

                        /**
                         * Encodes the specified SuggestionQueryConfig message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.SuggestionQueryConfig.verify|verify} messages.
                         * @param message SuggestionQueryConfig message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.ISuggestionQueryConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified SuggestionQueryConfig message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.SuggestionQueryConfig.verify|verify} messages.
                         * @param message SuggestionQueryConfig message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.ISuggestionQueryConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a SuggestionQueryConfig message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns SuggestionQueryConfig
                         * @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.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.SuggestionQueryConfig;

                        /**
                         * Decodes a SuggestionQueryConfig message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns SuggestionQueryConfig
                         * @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.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.SuggestionQueryConfig;

                        /**
                         * Verifies a SuggestionQueryConfig 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 SuggestionQueryConfig message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns SuggestionQueryConfig
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.SuggestionQueryConfig;

                        /**
                         * Creates a plain object from a SuggestionQueryConfig message. Also converts values to other types if specified.
                         * @param message SuggestionQueryConfig
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.SuggestionQueryConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this SuggestionQueryConfig to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for SuggestionQueryConfig
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    namespace SuggestionQueryConfig {

                        /** Properties of a KnowledgeBaseQuerySource. */
                        interface IKnowledgeBaseQuerySource {

                            /** KnowledgeBaseQuerySource knowledgeBases */
                            knowledgeBases?: (string[]|null);
                        }

                        /** Represents a KnowledgeBaseQuerySource. */
                        class KnowledgeBaseQuerySource implements IKnowledgeBaseQuerySource {

                            /**
                             * Constructs a new KnowledgeBaseQuerySource.
                             * @param [properties] Properties to set
                             */
                            constructor(properties?: google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.SuggestionQueryConfig.IKnowledgeBaseQuerySource);

                            /** KnowledgeBaseQuerySource knowledgeBases. */
                            public knowledgeBases: string[];

                            /**
                             * Creates a new KnowledgeBaseQuerySource instance using the specified properties.
                             * @param [properties] Properties to set
                             * @returns KnowledgeBaseQuerySource instance
                             */
                            public static create(properties?: google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.SuggestionQueryConfig.IKnowledgeBaseQuerySource): google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.SuggestionQueryConfig.KnowledgeBaseQuerySource;

                            /**
                             * Encodes the specified KnowledgeBaseQuerySource message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.SuggestionQueryConfig.KnowledgeBaseQuerySource.verify|verify} messages.
                             * @param message KnowledgeBaseQuerySource message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encode(message: google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.SuggestionQueryConfig.IKnowledgeBaseQuerySource, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Encodes the specified KnowledgeBaseQuerySource message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.SuggestionQueryConfig.KnowledgeBaseQuerySource.verify|verify} messages.
                             * @param message KnowledgeBaseQuerySource message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.SuggestionQueryConfig.IKnowledgeBaseQuerySource, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Decodes a KnowledgeBaseQuerySource message from the specified reader or buffer.
                             * @param reader Reader or buffer to decode from
                             * @param [length] Message length if known beforehand
                             * @returns KnowledgeBaseQuerySource
                             * @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.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.SuggestionQueryConfig.KnowledgeBaseQuerySource;

                            /**
                             * Decodes a KnowledgeBaseQuerySource message from the specified reader or buffer, length delimited.
                             * @param reader Reader or buffer to decode from
                             * @returns KnowledgeBaseQuerySource
                             * @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.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.SuggestionQueryConfig.KnowledgeBaseQuerySource;

                            /**
                             * Verifies a KnowledgeBaseQuerySource 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 KnowledgeBaseQuerySource message from a plain object. Also converts values to their respective internal types.
                             * @param object Plain object
                             * @returns KnowledgeBaseQuerySource
                             */
                            public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.SuggestionQueryConfig.KnowledgeBaseQuerySource;

                            /**
                             * Creates a plain object from a KnowledgeBaseQuerySource message. Also converts values to other types if specified.
                             * @param message KnowledgeBaseQuerySource
                             * @param [options] Conversion options
                             * @returns Plain object
                             */
                            public static toObject(message: google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.SuggestionQueryConfig.KnowledgeBaseQuerySource, options?: $protobuf.IConversionOptions): { [k: string]: any };

                            /**
                             * Converts this KnowledgeBaseQuerySource to JSON.
                             * @returns JSON object
                             */
                            public toJSON(): { [k: string]: any };

                            /**
                             * Gets the default type url for KnowledgeBaseQuerySource
                             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                             * @returns The default type url
                             */
                            public static getTypeUrl(typeUrlPrefix?: string): string;
                        }

                        /** Properties of a DocumentQuerySource. */
                        interface IDocumentQuerySource {

                            /** DocumentQuerySource documents */
                            documents?: (string[]|null);
                        }

                        /** Represents a DocumentQuerySource. */
                        class DocumentQuerySource implements IDocumentQuerySource {

                            /**
                             * Constructs a new DocumentQuerySource.
                             * @param [properties] Properties to set
                             */
                            constructor(properties?: google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.SuggestionQueryConfig.IDocumentQuerySource);

                            /** DocumentQuerySource documents. */
                            public documents: string[];

                            /**
                             * Creates a new DocumentQuerySource instance using the specified properties.
                             * @param [properties] Properties to set
                             * @returns DocumentQuerySource instance
                             */
                            public static create(properties?: google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.SuggestionQueryConfig.IDocumentQuerySource): google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.SuggestionQueryConfig.DocumentQuerySource;

                            /**
                             * Encodes the specified DocumentQuerySource message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.SuggestionQueryConfig.DocumentQuerySource.verify|verify} messages.
                             * @param message DocumentQuerySource message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encode(message: google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.SuggestionQueryConfig.IDocumentQuerySource, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Encodes the specified DocumentQuerySource message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.SuggestionQueryConfig.DocumentQuerySource.verify|verify} messages.
                             * @param message DocumentQuerySource message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.SuggestionQueryConfig.IDocumentQuerySource, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Decodes a DocumentQuerySource message from the specified reader or buffer.
                             * @param reader Reader or buffer to decode from
                             * @param [length] Message length if known beforehand
                             * @returns DocumentQuerySource
                             * @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.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.SuggestionQueryConfig.DocumentQuerySource;

                            /**
                             * Decodes a DocumentQuerySource message from the specified reader or buffer, length delimited.
                             * @param reader Reader or buffer to decode from
                             * @returns DocumentQuerySource
                             * @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.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.SuggestionQueryConfig.DocumentQuerySource;

                            /**
                             * Verifies a DocumentQuerySource 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 DocumentQuerySource message from a plain object. Also converts values to their respective internal types.
                             * @param object Plain object
                             * @returns DocumentQuerySource
                             */
                            public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.SuggestionQueryConfig.DocumentQuerySource;

                            /**
                             * Creates a plain object from a DocumentQuerySource message. Also converts values to other types if specified.
                             * @param message DocumentQuerySource
                             * @param [options] Conversion options
                             * @returns Plain object
                             */
                            public static toObject(message: google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.SuggestionQueryConfig.DocumentQuerySource, options?: $protobuf.IConversionOptions): { [k: string]: any };

                            /**
                             * Converts this DocumentQuerySource to JSON.
                             * @returns JSON object
                             */
                            public toJSON(): { [k: string]: any };

                            /**
                             * Gets the default type url for DocumentQuerySource
                             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                             * @returns The default type url
                             */
                            public static getTypeUrl(typeUrlPrefix?: string): string;
                        }

                        /** Properties of a DialogflowQuerySource. */
                        interface IDialogflowQuerySource {

                            /** DialogflowQuerySource agent */
                            agent?: (string|null);

                            /** DialogflowQuerySource humanAgentSideConfig */
                            humanAgentSideConfig?: (google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.SuggestionQueryConfig.DialogflowQuerySource.IHumanAgentSideConfig|null);
                        }

                        /** Represents a DialogflowQuerySource. */
                        class DialogflowQuerySource implements IDialogflowQuerySource {

                            /**
                             * Constructs a new DialogflowQuerySource.
                             * @param [properties] Properties to set
                             */
                            constructor(properties?: google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.SuggestionQueryConfig.IDialogflowQuerySource);

                            /** DialogflowQuerySource agent. */
                            public agent: string;

                            /** DialogflowQuerySource humanAgentSideConfig. */
                            public humanAgentSideConfig?: (google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.SuggestionQueryConfig.DialogflowQuerySource.IHumanAgentSideConfig|null);

                            /**
                             * Creates a new DialogflowQuerySource instance using the specified properties.
                             * @param [properties] Properties to set
                             * @returns DialogflowQuerySource instance
                             */
                            public static create(properties?: google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.SuggestionQueryConfig.IDialogflowQuerySource): google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.SuggestionQueryConfig.DialogflowQuerySource;

                            /**
                             * Encodes the specified DialogflowQuerySource message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.SuggestionQueryConfig.DialogflowQuerySource.verify|verify} messages.
                             * @param message DialogflowQuerySource message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encode(message: google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.SuggestionQueryConfig.IDialogflowQuerySource, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Encodes the specified DialogflowQuerySource message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.SuggestionQueryConfig.DialogflowQuerySource.verify|verify} messages.
                             * @param message DialogflowQuerySource message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.SuggestionQueryConfig.IDialogflowQuerySource, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Decodes a DialogflowQuerySource message from the specified reader or buffer.
                             * @param reader Reader or buffer to decode from
                             * @param [length] Message length if known beforehand
                             * @returns DialogflowQuerySource
                             * @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.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.SuggestionQueryConfig.DialogflowQuerySource;

                            /**
                             * Decodes a DialogflowQuerySource message from the specified reader or buffer, length delimited.
                             * @param reader Reader or buffer to decode from
                             * @returns DialogflowQuerySource
                             * @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.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.SuggestionQueryConfig.DialogflowQuerySource;

                            /**
                             * Verifies a DialogflowQuerySource 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 DialogflowQuerySource message from a plain object. Also converts values to their respective internal types.
                             * @param object Plain object
                             * @returns DialogflowQuerySource
                             */
                            public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.SuggestionQueryConfig.DialogflowQuerySource;

                            /**
                             * Creates a plain object from a DialogflowQuerySource message. Also converts values to other types if specified.
                             * @param message DialogflowQuerySource
                             * @param [options] Conversion options
                             * @returns Plain object
                             */
                            public static toObject(message: google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.SuggestionQueryConfig.DialogflowQuerySource, options?: $protobuf.IConversionOptions): { [k: string]: any };

                            /**
                             * Converts this DialogflowQuerySource to JSON.
                             * @returns JSON object
                             */
                            public toJSON(): { [k: string]: any };

                            /**
                             * Gets the default type url for DialogflowQuerySource
                             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                             * @returns The default type url
                             */
                            public static getTypeUrl(typeUrlPrefix?: string): string;
                        }

                        namespace DialogflowQuerySource {

                            /** Properties of a HumanAgentSideConfig. */
                            interface IHumanAgentSideConfig {

                                /** HumanAgentSideConfig agent */
                                agent?: (string|null);
                            }

                            /** Represents a HumanAgentSideConfig. */
                            class HumanAgentSideConfig implements IHumanAgentSideConfig {

                                /**
                                 * Constructs a new HumanAgentSideConfig.
                                 * @param [properties] Properties to set
                                 */
                                constructor(properties?: google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.SuggestionQueryConfig.DialogflowQuerySource.IHumanAgentSideConfig);

                                /** HumanAgentSideConfig agent. */
                                public agent: string;

                                /**
                                 * Creates a new HumanAgentSideConfig instance using the specified properties.
                                 * @param [properties] Properties to set
                                 * @returns HumanAgentSideConfig instance
                                 */
                                public static create(properties?: google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.SuggestionQueryConfig.DialogflowQuerySource.IHumanAgentSideConfig): google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.SuggestionQueryConfig.DialogflowQuerySource.HumanAgentSideConfig;

                                /**
                                 * Encodes the specified HumanAgentSideConfig message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.SuggestionQueryConfig.DialogflowQuerySource.HumanAgentSideConfig.verify|verify} messages.
                                 * @param message HumanAgentSideConfig message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encode(message: google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.SuggestionQueryConfig.DialogflowQuerySource.IHumanAgentSideConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Encodes the specified HumanAgentSideConfig message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.SuggestionQueryConfig.DialogflowQuerySource.HumanAgentSideConfig.verify|verify} messages.
                                 * @param message HumanAgentSideConfig message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.SuggestionQueryConfig.DialogflowQuerySource.IHumanAgentSideConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Decodes a HumanAgentSideConfig message from the specified reader or buffer.
                                 * @param reader Reader or buffer to decode from
                                 * @param [length] Message length if known beforehand
                                 * @returns HumanAgentSideConfig
                                 * @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.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.SuggestionQueryConfig.DialogflowQuerySource.HumanAgentSideConfig;

                                /**
                                 * Decodes a HumanAgentSideConfig message from the specified reader or buffer, length delimited.
                                 * @param reader Reader or buffer to decode from
                                 * @returns HumanAgentSideConfig
                                 * @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.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.SuggestionQueryConfig.DialogflowQuerySource.HumanAgentSideConfig;

                                /**
                                 * Verifies a HumanAgentSideConfig 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 HumanAgentSideConfig message from a plain object. Also converts values to their respective internal types.
                                 * @param object Plain object
                                 * @returns HumanAgentSideConfig
                                 */
                                public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.SuggestionQueryConfig.DialogflowQuerySource.HumanAgentSideConfig;

                                /**
                                 * Creates a plain object from a HumanAgentSideConfig message. Also converts values to other types if specified.
                                 * @param message HumanAgentSideConfig
                                 * @param [options] Conversion options
                                 * @returns Plain object
                                 */
                                public static toObject(message: google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.SuggestionQueryConfig.DialogflowQuerySource.HumanAgentSideConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                                /**
                                 * Converts this HumanAgentSideConfig to JSON.
                                 * @returns JSON object
                                 */
                                public toJSON(): { [k: string]: any };

                                /**
                                 * Gets the default type url for HumanAgentSideConfig
                                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                                 * @returns The default type url
                                 */
                                public static getTypeUrl(typeUrlPrefix?: string): string;
                            }
                        }

                        /** Properties of a ContextFilterSettings. */
                        interface IContextFilterSettings {

                            /** ContextFilterSettings dropHandoffMessages */
                            dropHandoffMessages?: (boolean|null);

                            /** ContextFilterSettings dropVirtualAgentMessages */
                            dropVirtualAgentMessages?: (boolean|null);

                            /** ContextFilterSettings dropIvrMessages */
                            dropIvrMessages?: (boolean|null);
                        }

                        /** Represents a ContextFilterSettings. */
                        class ContextFilterSettings implements IContextFilterSettings {

                            /**
                             * Constructs a new ContextFilterSettings.
                             * @param [properties] Properties to set
                             */
                            constructor(properties?: google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.SuggestionQueryConfig.IContextFilterSettings);

                            /** ContextFilterSettings dropHandoffMessages. */
                            public dropHandoffMessages: boolean;

                            /** ContextFilterSettings dropVirtualAgentMessages. */
                            public dropVirtualAgentMessages: boolean;

                            /** ContextFilterSettings dropIvrMessages. */
                            public dropIvrMessages: boolean;

                            /**
                             * Creates a new ContextFilterSettings instance using the specified properties.
                             * @param [properties] Properties to set
                             * @returns ContextFilterSettings instance
                             */
                            public static create(properties?: google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.SuggestionQueryConfig.IContextFilterSettings): google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.SuggestionQueryConfig.ContextFilterSettings;

                            /**
                             * Encodes the specified ContextFilterSettings message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.SuggestionQueryConfig.ContextFilterSettings.verify|verify} messages.
                             * @param message ContextFilterSettings message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encode(message: google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.SuggestionQueryConfig.IContextFilterSettings, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Encodes the specified ContextFilterSettings message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.SuggestionQueryConfig.ContextFilterSettings.verify|verify} messages.
                             * @param message ContextFilterSettings message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.SuggestionQueryConfig.IContextFilterSettings, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Decodes a ContextFilterSettings message from the specified reader or buffer.
                             * @param reader Reader or buffer to decode from
                             * @param [length] Message length if known beforehand
                             * @returns ContextFilterSettings
                             * @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.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.SuggestionQueryConfig.ContextFilterSettings;

                            /**
                             * Decodes a ContextFilterSettings message from the specified reader or buffer, length delimited.
                             * @param reader Reader or buffer to decode from
                             * @returns ContextFilterSettings
                             * @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.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.SuggestionQueryConfig.ContextFilterSettings;

                            /**
                             * Verifies a ContextFilterSettings 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 ContextFilterSettings message from a plain object. Also converts values to their respective internal types.
                             * @param object Plain object
                             * @returns ContextFilterSettings
                             */
                            public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.SuggestionQueryConfig.ContextFilterSettings;

                            /**
                             * Creates a plain object from a ContextFilterSettings message. Also converts values to other types if specified.
                             * @param message ContextFilterSettings
                             * @param [options] Conversion options
                             * @returns Plain object
                             */
                            public static toObject(message: google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.SuggestionQueryConfig.ContextFilterSettings, options?: $protobuf.IConversionOptions): { [k: string]: any };

                            /**
                             * Converts this ContextFilterSettings to JSON.
                             * @returns JSON object
                             */
                            public toJSON(): { [k: string]: any };

                            /**
                             * Gets the default type url for ContextFilterSettings
                             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                             * @returns The default type url
                             */
                            public static getTypeUrl(typeUrlPrefix?: string): string;
                        }

                        /** Properties of a Sections. */
                        interface ISections {

                            /** Sections sectionTypes */
                            sectionTypes?: (google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.SuggestionQueryConfig.Sections.SectionType[]|null);
                        }

                        /** Represents a Sections. */
                        class Sections implements ISections {

                            /**
                             * Constructs a new Sections.
                             * @param [properties] Properties to set
                             */
                            constructor(properties?: google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.SuggestionQueryConfig.ISections);

                            /** Sections sectionTypes. */
                            public sectionTypes: google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.SuggestionQueryConfig.Sections.SectionType[];

                            /**
                             * Creates a new Sections instance using the specified properties.
                             * @param [properties] Properties to set
                             * @returns Sections instance
                             */
                            public static create(properties?: google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.SuggestionQueryConfig.ISections): google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.SuggestionQueryConfig.Sections;

                            /**
                             * Encodes the specified Sections message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.SuggestionQueryConfig.Sections.verify|verify} messages.
                             * @param message Sections message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encode(message: google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.SuggestionQueryConfig.ISections, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Encodes the specified Sections message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.SuggestionQueryConfig.Sections.verify|verify} messages.
                             * @param message Sections message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.SuggestionQueryConfig.ISections, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Decodes a Sections message from the specified reader or buffer.
                             * @param reader Reader or buffer to decode from
                             * @param [length] Message length if known beforehand
                             * @returns Sections
                             * @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.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.SuggestionQueryConfig.Sections;

                            /**
                             * Decodes a Sections message from the specified reader or buffer, length delimited.
                             * @param reader Reader or buffer to decode from
                             * @returns Sections
                             * @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.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.SuggestionQueryConfig.Sections;

                            /**
                             * Verifies a Sections 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 Sections message from a plain object. Also converts values to their respective internal types.
                             * @param object Plain object
                             * @returns Sections
                             */
                            public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.SuggestionQueryConfig.Sections;

                            /**
                             * Creates a plain object from a Sections message. Also converts values to other types if specified.
                             * @param message Sections
                             * @param [options] Conversion options
                             * @returns Plain object
                             */
                            public static toObject(message: google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.SuggestionQueryConfig.Sections, options?: $protobuf.IConversionOptions): { [k: string]: any };

                            /**
                             * Converts this Sections to JSON.
                             * @returns JSON object
                             */
                            public toJSON(): { [k: string]: any };

                            /**
                             * Gets the default type url for Sections
                             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                             * @returns The default type url
                             */
                            public static getTypeUrl(typeUrlPrefix?: string): string;
                        }

                        namespace Sections {

                            /** SectionType enum. */
                            enum SectionType {
                                SECTION_TYPE_UNSPECIFIED = 0,
                                SITUATION = 1,
                                ACTION = 2,
                                RESOLUTION = 3,
                                REASON_FOR_CANCELLATION = 4,
                                CUSTOMER_SATISFACTION = 5,
                                ENTITIES = 6
                            }
                        }
                    }

                    /** Properties of a ConversationModelConfig. */
                    interface IConversationModelConfig {

                        /** ConversationModelConfig model */
                        model?: (string|null);

                        /** ConversationModelConfig baselineModelVersion */
                        baselineModelVersion?: (string|null);
                    }

                    /** Represents a ConversationModelConfig. */
                    class ConversationModelConfig implements IConversationModelConfig {

                        /**
                         * Constructs a new ConversationModelConfig.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.IConversationModelConfig);

                        /** ConversationModelConfig model. */
                        public model: string;

                        /** ConversationModelConfig baselineModelVersion. */
                        public baselineModelVersion: string;

                        /**
                         * Creates a new ConversationModelConfig instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns ConversationModelConfig instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.IConversationModelConfig): google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.ConversationModelConfig;

                        /**
                         * Encodes the specified ConversationModelConfig message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.ConversationModelConfig.verify|verify} messages.
                         * @param message ConversationModelConfig message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.IConversationModelConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified ConversationModelConfig message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.ConversationModelConfig.verify|verify} messages.
                         * @param message ConversationModelConfig message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.IConversationModelConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a ConversationModelConfig message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns ConversationModelConfig
                         * @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.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.ConversationModelConfig;

                        /**
                         * Decodes a ConversationModelConfig message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns ConversationModelConfig
                         * @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.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.ConversationModelConfig;

                        /**
                         * Verifies a ConversationModelConfig 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 ConversationModelConfig message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns ConversationModelConfig
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.ConversationModelConfig;

                        /**
                         * Creates a plain object from a ConversationModelConfig message. Also converts values to other types if specified.
                         * @param message ConversationModelConfig
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.ConversationModelConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this ConversationModelConfig to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for ConversationModelConfig
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    /** Properties of a ConversationProcessConfig. */
                    interface IConversationProcessConfig {

                        /** ConversationProcessConfig recentSentencesCount */
                        recentSentencesCount?: (number|null);
                    }

                    /** Represents a ConversationProcessConfig. */
                    class ConversationProcessConfig implements IConversationProcessConfig {

                        /**
                         * Constructs a new ConversationProcessConfig.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.IConversationProcessConfig);

                        /** ConversationProcessConfig recentSentencesCount. */
                        public recentSentencesCount: number;

                        /**
                         * Creates a new ConversationProcessConfig instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns ConversationProcessConfig instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.IConversationProcessConfig): google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.ConversationProcessConfig;

                        /**
                         * Encodes the specified ConversationProcessConfig message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.ConversationProcessConfig.verify|verify} messages.
                         * @param message ConversationProcessConfig message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.IConversationProcessConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified ConversationProcessConfig message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.ConversationProcessConfig.verify|verify} messages.
                         * @param message ConversationProcessConfig message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.IConversationProcessConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a ConversationProcessConfig message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns ConversationProcessConfig
                         * @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.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.ConversationProcessConfig;

                        /**
                         * Decodes a ConversationProcessConfig message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns ConversationProcessConfig
                         * @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.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.ConversationProcessConfig;

                        /**
                         * Verifies a ConversationProcessConfig 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 ConversationProcessConfig message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns ConversationProcessConfig
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.ConversationProcessConfig;

                        /**
                         * Creates a plain object from a ConversationProcessConfig message. Also converts values to other types if specified.
                         * @param message ConversationProcessConfig
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.ConversationProcessConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this ConversationProcessConfig to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for ConversationProcessConfig
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    /** Properties of a MessageAnalysisConfig. */
                    interface IMessageAnalysisConfig {

                        /** MessageAnalysisConfig enableEntityExtraction */
                        enableEntityExtraction?: (boolean|null);

                        /** MessageAnalysisConfig enableSentimentAnalysis */
                        enableSentimentAnalysis?: (boolean|null);

                        /** MessageAnalysisConfig enableSentimentAnalysisV3 */
                        enableSentimentAnalysisV3?: (boolean|null);
                    }

                    /** Represents a MessageAnalysisConfig. */
                    class MessageAnalysisConfig implements IMessageAnalysisConfig {

                        /**
                         * Constructs a new MessageAnalysisConfig.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.IMessageAnalysisConfig);

                        /** MessageAnalysisConfig enableEntityExtraction. */
                        public enableEntityExtraction: boolean;

                        /** MessageAnalysisConfig enableSentimentAnalysis. */
                        public enableSentimentAnalysis: boolean;

                        /** MessageAnalysisConfig enableSentimentAnalysisV3. */
                        public enableSentimentAnalysisV3: boolean;

                        /**
                         * Creates a new MessageAnalysisConfig instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns MessageAnalysisConfig instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.IMessageAnalysisConfig): google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.MessageAnalysisConfig;

                        /**
                         * Encodes the specified MessageAnalysisConfig message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.MessageAnalysisConfig.verify|verify} messages.
                         * @param message MessageAnalysisConfig message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.IMessageAnalysisConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified MessageAnalysisConfig message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.MessageAnalysisConfig.verify|verify} messages.
                         * @param message MessageAnalysisConfig message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.IMessageAnalysisConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a MessageAnalysisConfig message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns MessageAnalysisConfig
                         * @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.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.MessageAnalysisConfig;

                        /**
                         * Decodes a MessageAnalysisConfig message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns MessageAnalysisConfig
                         * @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.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.MessageAnalysisConfig;

                        /**
                         * Verifies a MessageAnalysisConfig 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 MessageAnalysisConfig message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns MessageAnalysisConfig
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.MessageAnalysisConfig;

                        /**
                         * Creates a plain object from a MessageAnalysisConfig message. Also converts values to other types if specified.
                         * @param message MessageAnalysisConfig
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.MessageAnalysisConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this MessageAnalysisConfig to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for MessageAnalysisConfig
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }
                }

                /** Properties of a HumanAgentHandoffConfig. */
                interface IHumanAgentHandoffConfig {

                    /** HumanAgentHandoffConfig livePersonConfig */
                    livePersonConfig?: (google.cloud.dialogflow.v2beta1.HumanAgentHandoffConfig.ILivePersonConfig|null);

                    /** HumanAgentHandoffConfig salesforceLiveAgentConfig */
                    salesforceLiveAgentConfig?: (google.cloud.dialogflow.v2beta1.HumanAgentHandoffConfig.ISalesforceLiveAgentConfig|null);
                }

                /** Represents a HumanAgentHandoffConfig. */
                class HumanAgentHandoffConfig implements IHumanAgentHandoffConfig {

                    /**
                     * Constructs a new HumanAgentHandoffConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IHumanAgentHandoffConfig);

                    /** HumanAgentHandoffConfig livePersonConfig. */
                    public livePersonConfig?: (google.cloud.dialogflow.v2beta1.HumanAgentHandoffConfig.ILivePersonConfig|null);

                    /** HumanAgentHandoffConfig salesforceLiveAgentConfig. */
                    public salesforceLiveAgentConfig?: (google.cloud.dialogflow.v2beta1.HumanAgentHandoffConfig.ISalesforceLiveAgentConfig|null);

                    /** HumanAgentHandoffConfig agentService. */
                    public agentService?: ("livePersonConfig"|"salesforceLiveAgentConfig");

                    /**
                     * Creates a new HumanAgentHandoffConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns HumanAgentHandoffConfig instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IHumanAgentHandoffConfig): google.cloud.dialogflow.v2beta1.HumanAgentHandoffConfig;

                    /**
                     * Encodes the specified HumanAgentHandoffConfig message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.HumanAgentHandoffConfig.verify|verify} messages.
                     * @param message HumanAgentHandoffConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IHumanAgentHandoffConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified HumanAgentHandoffConfig message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.HumanAgentHandoffConfig.verify|verify} messages.
                     * @param message HumanAgentHandoffConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IHumanAgentHandoffConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a HumanAgentHandoffConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns HumanAgentHandoffConfig
                     * @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.cloud.dialogflow.v2beta1.HumanAgentHandoffConfig;

                    /**
                     * Decodes a HumanAgentHandoffConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns HumanAgentHandoffConfig
                     * @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.cloud.dialogflow.v2beta1.HumanAgentHandoffConfig;

                    /**
                     * Verifies a HumanAgentHandoffConfig 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 HumanAgentHandoffConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns HumanAgentHandoffConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.HumanAgentHandoffConfig;

                    /**
                     * Creates a plain object from a HumanAgentHandoffConfig message. Also converts values to other types if specified.
                     * @param message HumanAgentHandoffConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.HumanAgentHandoffConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this HumanAgentHandoffConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for HumanAgentHandoffConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace HumanAgentHandoffConfig {

                    /** Properties of a LivePersonConfig. */
                    interface ILivePersonConfig {

                        /** LivePersonConfig accountNumber */
                        accountNumber?: (string|null);
                    }

                    /** Represents a LivePersonConfig. */
                    class LivePersonConfig implements ILivePersonConfig {

                        /**
                         * Constructs a new LivePersonConfig.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2beta1.HumanAgentHandoffConfig.ILivePersonConfig);

                        /** LivePersonConfig accountNumber. */
                        public accountNumber: string;

                        /**
                         * Creates a new LivePersonConfig instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns LivePersonConfig instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2beta1.HumanAgentHandoffConfig.ILivePersonConfig): google.cloud.dialogflow.v2beta1.HumanAgentHandoffConfig.LivePersonConfig;

                        /**
                         * Encodes the specified LivePersonConfig message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.HumanAgentHandoffConfig.LivePersonConfig.verify|verify} messages.
                         * @param message LivePersonConfig message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2beta1.HumanAgentHandoffConfig.ILivePersonConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified LivePersonConfig message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.HumanAgentHandoffConfig.LivePersonConfig.verify|verify} messages.
                         * @param message LivePersonConfig message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.HumanAgentHandoffConfig.ILivePersonConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a LivePersonConfig message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns LivePersonConfig
                         * @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.cloud.dialogflow.v2beta1.HumanAgentHandoffConfig.LivePersonConfig;

                        /**
                         * Decodes a LivePersonConfig message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns LivePersonConfig
                         * @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.cloud.dialogflow.v2beta1.HumanAgentHandoffConfig.LivePersonConfig;

                        /**
                         * Verifies a LivePersonConfig 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 LivePersonConfig message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns LivePersonConfig
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.HumanAgentHandoffConfig.LivePersonConfig;

                        /**
                         * Creates a plain object from a LivePersonConfig message. Also converts values to other types if specified.
                         * @param message LivePersonConfig
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.dialogflow.v2beta1.HumanAgentHandoffConfig.LivePersonConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this LivePersonConfig to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for LivePersonConfig
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    /** Properties of a SalesforceLiveAgentConfig. */
                    interface ISalesforceLiveAgentConfig {

                        /** SalesforceLiveAgentConfig organizationId */
                        organizationId?: (string|null);

                        /** SalesforceLiveAgentConfig deploymentId */
                        deploymentId?: (string|null);

                        /** SalesforceLiveAgentConfig buttonId */
                        buttonId?: (string|null);

                        /** SalesforceLiveAgentConfig endpointDomain */
                        endpointDomain?: (string|null);
                    }

                    /** Represents a SalesforceLiveAgentConfig. */
                    class SalesforceLiveAgentConfig implements ISalesforceLiveAgentConfig {

                        /**
                         * Constructs a new SalesforceLiveAgentConfig.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2beta1.HumanAgentHandoffConfig.ISalesforceLiveAgentConfig);

                        /** SalesforceLiveAgentConfig organizationId. */
                        public organizationId: string;

                        /** SalesforceLiveAgentConfig deploymentId. */
                        public deploymentId: string;

                        /** SalesforceLiveAgentConfig buttonId. */
                        public buttonId: string;

                        /** SalesforceLiveAgentConfig endpointDomain. */
                        public endpointDomain: string;

                        /**
                         * Creates a new SalesforceLiveAgentConfig instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns SalesforceLiveAgentConfig instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2beta1.HumanAgentHandoffConfig.ISalesforceLiveAgentConfig): google.cloud.dialogflow.v2beta1.HumanAgentHandoffConfig.SalesforceLiveAgentConfig;

                        /**
                         * Encodes the specified SalesforceLiveAgentConfig message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.HumanAgentHandoffConfig.SalesforceLiveAgentConfig.verify|verify} messages.
                         * @param message SalesforceLiveAgentConfig message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2beta1.HumanAgentHandoffConfig.ISalesforceLiveAgentConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified SalesforceLiveAgentConfig message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.HumanAgentHandoffConfig.SalesforceLiveAgentConfig.verify|verify} messages.
                         * @param message SalesforceLiveAgentConfig message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.HumanAgentHandoffConfig.ISalesforceLiveAgentConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a SalesforceLiveAgentConfig message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns SalesforceLiveAgentConfig
                         * @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.cloud.dialogflow.v2beta1.HumanAgentHandoffConfig.SalesforceLiveAgentConfig;

                        /**
                         * Decodes a SalesforceLiveAgentConfig message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns SalesforceLiveAgentConfig
                         * @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.cloud.dialogflow.v2beta1.HumanAgentHandoffConfig.SalesforceLiveAgentConfig;

                        /**
                         * Verifies a SalesforceLiveAgentConfig 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 SalesforceLiveAgentConfig message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns SalesforceLiveAgentConfig
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.HumanAgentHandoffConfig.SalesforceLiveAgentConfig;

                        /**
                         * Creates a plain object from a SalesforceLiveAgentConfig message. Also converts values to other types if specified.
                         * @param message SalesforceLiveAgentConfig
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.dialogflow.v2beta1.HumanAgentHandoffConfig.SalesforceLiveAgentConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this SalesforceLiveAgentConfig to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for SalesforceLiveAgentConfig
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }
                }

                /** Properties of a NotificationConfig. */
                interface INotificationConfig {

                    /** NotificationConfig topic */
                    topic?: (string|null);

                    /** NotificationConfig messageFormat */
                    messageFormat?: (google.cloud.dialogflow.v2beta1.NotificationConfig.MessageFormat|keyof typeof google.cloud.dialogflow.v2beta1.NotificationConfig.MessageFormat|null);
                }

                /** Represents a NotificationConfig. */
                class NotificationConfig implements INotificationConfig {

                    /**
                     * Constructs a new NotificationConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.INotificationConfig);

                    /** NotificationConfig topic. */
                    public topic: string;

                    /** NotificationConfig messageFormat. */
                    public messageFormat: (google.cloud.dialogflow.v2beta1.NotificationConfig.MessageFormat|keyof typeof google.cloud.dialogflow.v2beta1.NotificationConfig.MessageFormat);

                    /**
                     * Creates a new NotificationConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NotificationConfig instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.INotificationConfig): google.cloud.dialogflow.v2beta1.NotificationConfig;

                    /**
                     * Encodes the specified NotificationConfig message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.NotificationConfig.verify|verify} messages.
                     * @param message NotificationConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.INotificationConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NotificationConfig message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.NotificationConfig.verify|verify} messages.
                     * @param message NotificationConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.INotificationConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NotificationConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NotificationConfig
                     * @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.cloud.dialogflow.v2beta1.NotificationConfig;

                    /**
                     * Decodes a NotificationConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NotificationConfig
                     * @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.cloud.dialogflow.v2beta1.NotificationConfig;

                    /**
                     * Verifies a NotificationConfig 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 NotificationConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NotificationConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.NotificationConfig;

                    /**
                     * Creates a plain object from a NotificationConfig message. Also converts values to other types if specified.
                     * @param message NotificationConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.NotificationConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NotificationConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NotificationConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace NotificationConfig {

                    /** MessageFormat enum. */
                    enum MessageFormat {
                        MESSAGE_FORMAT_UNSPECIFIED = 0,
                        PROTO = 1,
                        JSON = 2
                    }
                }

                /** Properties of a LoggingConfig. */
                interface ILoggingConfig {

                    /** LoggingConfig enableStackdriverLogging */
                    enableStackdriverLogging?: (boolean|null);
                }

                /** Represents a LoggingConfig. */
                class LoggingConfig implements ILoggingConfig {

                    /**
                     * Constructs a new LoggingConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.ILoggingConfig);

                    /** LoggingConfig enableStackdriverLogging. */
                    public enableStackdriverLogging: boolean;

                    /**
                     * Creates a new LoggingConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns LoggingConfig instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.ILoggingConfig): google.cloud.dialogflow.v2beta1.LoggingConfig;

                    /**
                     * Encodes the specified LoggingConfig message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.LoggingConfig.verify|verify} messages.
                     * @param message LoggingConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.ILoggingConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified LoggingConfig message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.LoggingConfig.verify|verify} messages.
                     * @param message LoggingConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.ILoggingConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a LoggingConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns LoggingConfig
                     * @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.cloud.dialogflow.v2beta1.LoggingConfig;

                    /**
                     * Decodes a LoggingConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns LoggingConfig
                     * @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.cloud.dialogflow.v2beta1.LoggingConfig;

                    /**
                     * Verifies a LoggingConfig 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 LoggingConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns LoggingConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.LoggingConfig;

                    /**
                     * Creates a plain object from a LoggingConfig message. Also converts values to other types if specified.
                     * @param message LoggingConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.LoggingConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this LoggingConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for LoggingConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListConversationProfilesRequest. */
                interface IListConversationProfilesRequest {

                    /** ListConversationProfilesRequest parent */
                    parent?: (string|null);

                    /** ListConversationProfilesRequest pageSize */
                    pageSize?: (number|null);

                    /** ListConversationProfilesRequest pageToken */
                    pageToken?: (string|null);
                }

                /** Represents a ListConversationProfilesRequest. */
                class ListConversationProfilesRequest implements IListConversationProfilesRequest {

                    /**
                     * Constructs a new ListConversationProfilesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IListConversationProfilesRequest);

                    /** ListConversationProfilesRequest parent. */
                    public parent: string;

                    /** ListConversationProfilesRequest pageSize. */
                    public pageSize: number;

                    /** ListConversationProfilesRequest pageToken. */
                    public pageToken: string;

                    /**
                     * Creates a new ListConversationProfilesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListConversationProfilesRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IListConversationProfilesRequest): google.cloud.dialogflow.v2beta1.ListConversationProfilesRequest;

                    /**
                     * Encodes the specified ListConversationProfilesRequest message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.ListConversationProfilesRequest.verify|verify} messages.
                     * @param message ListConversationProfilesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IListConversationProfilesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListConversationProfilesRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.ListConversationProfilesRequest.verify|verify} messages.
                     * @param message ListConversationProfilesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IListConversationProfilesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListConversationProfilesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListConversationProfilesRequest
                     * @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.cloud.dialogflow.v2beta1.ListConversationProfilesRequest;

                    /**
                     * Decodes a ListConversationProfilesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListConversationProfilesRequest
                     * @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.cloud.dialogflow.v2beta1.ListConversationProfilesRequest;

                    /**
                     * Verifies a ListConversationProfilesRequest 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 ListConversationProfilesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListConversationProfilesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.ListConversationProfilesRequest;

                    /**
                     * Creates a plain object from a ListConversationProfilesRequest message. Also converts values to other types if specified.
                     * @param message ListConversationProfilesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.ListConversationProfilesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListConversationProfilesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListConversationProfilesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListConversationProfilesResponse. */
                interface IListConversationProfilesResponse {

                    /** ListConversationProfilesResponse conversationProfiles */
                    conversationProfiles?: (google.cloud.dialogflow.v2beta1.IConversationProfile[]|null);

                    /** ListConversationProfilesResponse nextPageToken */
                    nextPageToken?: (string|null);
                }

                /** Represents a ListConversationProfilesResponse. */
                class ListConversationProfilesResponse implements IListConversationProfilesResponse {

                    /**
                     * Constructs a new ListConversationProfilesResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IListConversationProfilesResponse);

                    /** ListConversationProfilesResponse conversationProfiles. */
                    public conversationProfiles: google.cloud.dialogflow.v2beta1.IConversationProfile[];

                    /** ListConversationProfilesResponse nextPageToken. */
                    public nextPageToken: string;

                    /**
                     * Creates a new ListConversationProfilesResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListConversationProfilesResponse instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IListConversationProfilesResponse): google.cloud.dialogflow.v2beta1.ListConversationProfilesResponse;

                    /**
                     * Encodes the specified ListConversationProfilesResponse message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.ListConversationProfilesResponse.verify|verify} messages.
                     * @param message ListConversationProfilesResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IListConversationProfilesResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListConversationProfilesResponse message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.ListConversationProfilesResponse.verify|verify} messages.
                     * @param message ListConversationProfilesResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IListConversationProfilesResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListConversationProfilesResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListConversationProfilesResponse
                     * @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.cloud.dialogflow.v2beta1.ListConversationProfilesResponse;

                    /**
                     * Decodes a ListConversationProfilesResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListConversationProfilesResponse
                     * @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.cloud.dialogflow.v2beta1.ListConversationProfilesResponse;

                    /**
                     * Verifies a ListConversationProfilesResponse 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 ListConversationProfilesResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListConversationProfilesResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.ListConversationProfilesResponse;

                    /**
                     * Creates a plain object from a ListConversationProfilesResponse message. Also converts values to other types if specified.
                     * @param message ListConversationProfilesResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.ListConversationProfilesResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListConversationProfilesResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListConversationProfilesResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetConversationProfileRequest. */
                interface IGetConversationProfileRequest {

                    /** GetConversationProfileRequest name */
                    name?: (string|null);
                }

                /** Represents a GetConversationProfileRequest. */
                class GetConversationProfileRequest implements IGetConversationProfileRequest {

                    /**
                     * Constructs a new GetConversationProfileRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IGetConversationProfileRequest);

                    /** GetConversationProfileRequest name. */
                    public name: string;

                    /**
                     * Creates a new GetConversationProfileRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetConversationProfileRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IGetConversationProfileRequest): google.cloud.dialogflow.v2beta1.GetConversationProfileRequest;

                    /**
                     * Encodes the specified GetConversationProfileRequest message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.GetConversationProfileRequest.verify|verify} messages.
                     * @param message GetConversationProfileRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IGetConversationProfileRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetConversationProfileRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.GetConversationProfileRequest.verify|verify} messages.
                     * @param message GetConversationProfileRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IGetConversationProfileRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetConversationProfileRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetConversationProfileRequest
                     * @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.cloud.dialogflow.v2beta1.GetConversationProfileRequest;

                    /**
                     * Decodes a GetConversationProfileRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetConversationProfileRequest
                     * @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.cloud.dialogflow.v2beta1.GetConversationProfileRequest;

                    /**
                     * Verifies a GetConversationProfileRequest 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 GetConversationProfileRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetConversationProfileRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.GetConversationProfileRequest;

                    /**
                     * Creates a plain object from a GetConversationProfileRequest message. Also converts values to other types if specified.
                     * @param message GetConversationProfileRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.GetConversationProfileRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetConversationProfileRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetConversationProfileRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a CreateConversationProfileRequest. */
                interface ICreateConversationProfileRequest {

                    /** CreateConversationProfileRequest parent */
                    parent?: (string|null);

                    /** CreateConversationProfileRequest conversationProfile */
                    conversationProfile?: (google.cloud.dialogflow.v2beta1.IConversationProfile|null);
                }

                /** Represents a CreateConversationProfileRequest. */
                class CreateConversationProfileRequest implements ICreateConversationProfileRequest {

                    /**
                     * Constructs a new CreateConversationProfileRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.ICreateConversationProfileRequest);

                    /** CreateConversationProfileRequest parent. */
                    public parent: string;

                    /** CreateConversationProfileRequest conversationProfile. */
                    public conversationProfile?: (google.cloud.dialogflow.v2beta1.IConversationProfile|null);

                    /**
                     * Creates a new CreateConversationProfileRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CreateConversationProfileRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.ICreateConversationProfileRequest): google.cloud.dialogflow.v2beta1.CreateConversationProfileRequest;

                    /**
                     * Encodes the specified CreateConversationProfileRequest message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.CreateConversationProfileRequest.verify|verify} messages.
                     * @param message CreateConversationProfileRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.ICreateConversationProfileRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CreateConversationProfileRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.CreateConversationProfileRequest.verify|verify} messages.
                     * @param message CreateConversationProfileRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.ICreateConversationProfileRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CreateConversationProfileRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CreateConversationProfileRequest
                     * @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.cloud.dialogflow.v2beta1.CreateConversationProfileRequest;

                    /**
                     * Decodes a CreateConversationProfileRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CreateConversationProfileRequest
                     * @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.cloud.dialogflow.v2beta1.CreateConversationProfileRequest;

                    /**
                     * Verifies a CreateConversationProfileRequest 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 CreateConversationProfileRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CreateConversationProfileRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.CreateConversationProfileRequest;

                    /**
                     * Creates a plain object from a CreateConversationProfileRequest message. Also converts values to other types if specified.
                     * @param message CreateConversationProfileRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.CreateConversationProfileRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CreateConversationProfileRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CreateConversationProfileRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an UpdateConversationProfileRequest. */
                interface IUpdateConversationProfileRequest {

                    /** UpdateConversationProfileRequest conversationProfile */
                    conversationProfile?: (google.cloud.dialogflow.v2beta1.IConversationProfile|null);

                    /** UpdateConversationProfileRequest updateMask */
                    updateMask?: (google.protobuf.IFieldMask|null);
                }

                /** Represents an UpdateConversationProfileRequest. */
                class UpdateConversationProfileRequest implements IUpdateConversationProfileRequest {

                    /**
                     * Constructs a new UpdateConversationProfileRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IUpdateConversationProfileRequest);

                    /** UpdateConversationProfileRequest conversationProfile. */
                    public conversationProfile?: (google.cloud.dialogflow.v2beta1.IConversationProfile|null);

                    /** UpdateConversationProfileRequest updateMask. */
                    public updateMask?: (google.protobuf.IFieldMask|null);

                    /**
                     * Creates a new UpdateConversationProfileRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UpdateConversationProfileRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IUpdateConversationProfileRequest): google.cloud.dialogflow.v2beta1.UpdateConversationProfileRequest;

                    /**
                     * Encodes the specified UpdateConversationProfileRequest message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.UpdateConversationProfileRequest.verify|verify} messages.
                     * @param message UpdateConversationProfileRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IUpdateConversationProfileRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified UpdateConversationProfileRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.UpdateConversationProfileRequest.verify|verify} messages.
                     * @param message UpdateConversationProfileRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IUpdateConversationProfileRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an UpdateConversationProfileRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns UpdateConversationProfileRequest
                     * @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.cloud.dialogflow.v2beta1.UpdateConversationProfileRequest;

                    /**
                     * Decodes an UpdateConversationProfileRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns UpdateConversationProfileRequest
                     * @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.cloud.dialogflow.v2beta1.UpdateConversationProfileRequest;

                    /**
                     * Verifies an UpdateConversationProfileRequest 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 UpdateConversationProfileRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UpdateConversationProfileRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.UpdateConversationProfileRequest;

                    /**
                     * Creates a plain object from an UpdateConversationProfileRequest message. Also converts values to other types if specified.
                     * @param message UpdateConversationProfileRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.UpdateConversationProfileRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this UpdateConversationProfileRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for UpdateConversationProfileRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteConversationProfileRequest. */
                interface IDeleteConversationProfileRequest {

                    /** DeleteConversationProfileRequest name */
                    name?: (string|null);
                }

                /** Represents a DeleteConversationProfileRequest. */
                class DeleteConversationProfileRequest implements IDeleteConversationProfileRequest {

                    /**
                     * Constructs a new DeleteConversationProfileRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IDeleteConversationProfileRequest);

                    /** DeleteConversationProfileRequest name. */
                    public name: string;

                    /**
                     * Creates a new DeleteConversationProfileRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteConversationProfileRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IDeleteConversationProfileRequest): google.cloud.dialogflow.v2beta1.DeleteConversationProfileRequest;

                    /**
                     * Encodes the specified DeleteConversationProfileRequest message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.DeleteConversationProfileRequest.verify|verify} messages.
                     * @param message DeleteConversationProfileRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IDeleteConversationProfileRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteConversationProfileRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.DeleteConversationProfileRequest.verify|verify} messages.
                     * @param message DeleteConversationProfileRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IDeleteConversationProfileRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteConversationProfileRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteConversationProfileRequest
                     * @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.cloud.dialogflow.v2beta1.DeleteConversationProfileRequest;

                    /**
                     * Decodes a DeleteConversationProfileRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteConversationProfileRequest
                     * @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.cloud.dialogflow.v2beta1.DeleteConversationProfileRequest;

                    /**
                     * Verifies a DeleteConversationProfileRequest 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 DeleteConversationProfileRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteConversationProfileRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.DeleteConversationProfileRequest;

                    /**
                     * Creates a plain object from a DeleteConversationProfileRequest message. Also converts values to other types if specified.
                     * @param message DeleteConversationProfileRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.DeleteConversationProfileRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteConversationProfileRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteConversationProfileRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetSuggestionFeatureConfigRequest. */
                interface ISetSuggestionFeatureConfigRequest {

                    /** SetSuggestionFeatureConfigRequest conversationProfile */
                    conversationProfile?: (string|null);

                    /** SetSuggestionFeatureConfigRequest participantRole */
                    participantRole?: (google.cloud.dialogflow.v2beta1.Participant.Role|keyof typeof google.cloud.dialogflow.v2beta1.Participant.Role|null);

                    /** SetSuggestionFeatureConfigRequest suggestionFeatureConfig */
                    suggestionFeatureConfig?: (google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.ISuggestionFeatureConfig|null);
                }

                /** Represents a SetSuggestionFeatureConfigRequest. */
                class SetSuggestionFeatureConfigRequest implements ISetSuggestionFeatureConfigRequest {

                    /**
                     * Constructs a new SetSuggestionFeatureConfigRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.ISetSuggestionFeatureConfigRequest);

                    /** SetSuggestionFeatureConfigRequest conversationProfile. */
                    public conversationProfile: string;

                    /** SetSuggestionFeatureConfigRequest participantRole. */
                    public participantRole: (google.cloud.dialogflow.v2beta1.Participant.Role|keyof typeof google.cloud.dialogflow.v2beta1.Participant.Role);

                    /** SetSuggestionFeatureConfigRequest suggestionFeatureConfig. */
                    public suggestionFeatureConfig?: (google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.ISuggestionFeatureConfig|null);

                    /**
                     * Creates a new SetSuggestionFeatureConfigRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetSuggestionFeatureConfigRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.ISetSuggestionFeatureConfigRequest): google.cloud.dialogflow.v2beta1.SetSuggestionFeatureConfigRequest;

                    /**
                     * Encodes the specified SetSuggestionFeatureConfigRequest message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.SetSuggestionFeatureConfigRequest.verify|verify} messages.
                     * @param message SetSuggestionFeatureConfigRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.ISetSuggestionFeatureConfigRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetSuggestionFeatureConfigRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.SetSuggestionFeatureConfigRequest.verify|verify} messages.
                     * @param message SetSuggestionFeatureConfigRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.ISetSuggestionFeatureConfigRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetSuggestionFeatureConfigRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetSuggestionFeatureConfigRequest
                     * @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.cloud.dialogflow.v2beta1.SetSuggestionFeatureConfigRequest;

                    /**
                     * Decodes a SetSuggestionFeatureConfigRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetSuggestionFeatureConfigRequest
                     * @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.cloud.dialogflow.v2beta1.SetSuggestionFeatureConfigRequest;

                    /**
                     * Verifies a SetSuggestionFeatureConfigRequest 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 SetSuggestionFeatureConfigRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetSuggestionFeatureConfigRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.SetSuggestionFeatureConfigRequest;

                    /**
                     * Creates a plain object from a SetSuggestionFeatureConfigRequest message. Also converts values to other types if specified.
                     * @param message SetSuggestionFeatureConfigRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.SetSuggestionFeatureConfigRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetSuggestionFeatureConfigRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetSuggestionFeatureConfigRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ClearSuggestionFeatureConfigRequest. */
                interface IClearSuggestionFeatureConfigRequest {

                    /** ClearSuggestionFeatureConfigRequest conversationProfile */
                    conversationProfile?: (string|null);

                    /** ClearSuggestionFeatureConfigRequest participantRole */
                    participantRole?: (google.cloud.dialogflow.v2beta1.Participant.Role|keyof typeof google.cloud.dialogflow.v2beta1.Participant.Role|null);

                    /** ClearSuggestionFeatureConfigRequest suggestionFeatureType */
                    suggestionFeatureType?: (google.cloud.dialogflow.v2beta1.SuggestionFeature.Type|keyof typeof google.cloud.dialogflow.v2beta1.SuggestionFeature.Type|null);
                }

                /** Represents a ClearSuggestionFeatureConfigRequest. */
                class ClearSuggestionFeatureConfigRequest implements IClearSuggestionFeatureConfigRequest {

                    /**
                     * Constructs a new ClearSuggestionFeatureConfigRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IClearSuggestionFeatureConfigRequest);

                    /** ClearSuggestionFeatureConfigRequest conversationProfile. */
                    public conversationProfile: string;

                    /** ClearSuggestionFeatureConfigRequest participantRole. */
                    public participantRole: (google.cloud.dialogflow.v2beta1.Participant.Role|keyof typeof google.cloud.dialogflow.v2beta1.Participant.Role);

                    /** ClearSuggestionFeatureConfigRequest suggestionFeatureType. */
                    public suggestionFeatureType: (google.cloud.dialogflow.v2beta1.SuggestionFeature.Type|keyof typeof google.cloud.dialogflow.v2beta1.SuggestionFeature.Type);

                    /**
                     * Creates a new ClearSuggestionFeatureConfigRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ClearSuggestionFeatureConfigRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IClearSuggestionFeatureConfigRequest): google.cloud.dialogflow.v2beta1.ClearSuggestionFeatureConfigRequest;

                    /**
                     * Encodes the specified ClearSuggestionFeatureConfigRequest message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.ClearSuggestionFeatureConfigRequest.verify|verify} messages.
                     * @param message ClearSuggestionFeatureConfigRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IClearSuggestionFeatureConfigRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ClearSuggestionFeatureConfigRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.ClearSuggestionFeatureConfigRequest.verify|verify} messages.
                     * @param message ClearSuggestionFeatureConfigRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IClearSuggestionFeatureConfigRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ClearSuggestionFeatureConfigRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ClearSuggestionFeatureConfigRequest
                     * @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.cloud.dialogflow.v2beta1.ClearSuggestionFeatureConfigRequest;

                    /**
                     * Decodes a ClearSuggestionFeatureConfigRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ClearSuggestionFeatureConfigRequest
                     * @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.cloud.dialogflow.v2beta1.ClearSuggestionFeatureConfigRequest;

                    /**
                     * Verifies a ClearSuggestionFeatureConfigRequest 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 ClearSuggestionFeatureConfigRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ClearSuggestionFeatureConfigRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.ClearSuggestionFeatureConfigRequest;

                    /**
                     * Creates a plain object from a ClearSuggestionFeatureConfigRequest message. Also converts values to other types if specified.
                     * @param message ClearSuggestionFeatureConfigRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.ClearSuggestionFeatureConfigRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ClearSuggestionFeatureConfigRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ClearSuggestionFeatureConfigRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetSuggestionFeatureConfigOperationMetadata. */
                interface ISetSuggestionFeatureConfigOperationMetadata {

                    /** SetSuggestionFeatureConfigOperationMetadata conversationProfile */
                    conversationProfile?: (string|null);

                    /** SetSuggestionFeatureConfigOperationMetadata participantRole */
                    participantRole?: (google.cloud.dialogflow.v2beta1.Participant.Role|keyof typeof google.cloud.dialogflow.v2beta1.Participant.Role|null);

                    /** SetSuggestionFeatureConfigOperationMetadata suggestionFeatureType */
                    suggestionFeatureType?: (google.cloud.dialogflow.v2beta1.SuggestionFeature.Type|keyof typeof google.cloud.dialogflow.v2beta1.SuggestionFeature.Type|null);

                    /** SetSuggestionFeatureConfigOperationMetadata createTime */
                    createTime?: (google.protobuf.ITimestamp|null);
                }

                /** Represents a SetSuggestionFeatureConfigOperationMetadata. */
                class SetSuggestionFeatureConfigOperationMetadata implements ISetSuggestionFeatureConfigOperationMetadata {

                    /**
                     * Constructs a new SetSuggestionFeatureConfigOperationMetadata.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.ISetSuggestionFeatureConfigOperationMetadata);

                    /** SetSuggestionFeatureConfigOperationMetadata conversationProfile. */
                    public conversationProfile: string;

                    /** SetSuggestionFeatureConfigOperationMetadata participantRole. */
                    public participantRole: (google.cloud.dialogflow.v2beta1.Participant.Role|keyof typeof google.cloud.dialogflow.v2beta1.Participant.Role);

                    /** SetSuggestionFeatureConfigOperationMetadata suggestionFeatureType. */
                    public suggestionFeatureType: (google.cloud.dialogflow.v2beta1.SuggestionFeature.Type|keyof typeof google.cloud.dialogflow.v2beta1.SuggestionFeature.Type);

                    /** SetSuggestionFeatureConfigOperationMetadata createTime. */
                    public createTime?: (google.protobuf.ITimestamp|null);

                    /**
                     * Creates a new SetSuggestionFeatureConfigOperationMetadata instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetSuggestionFeatureConfigOperationMetadata instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.ISetSuggestionFeatureConfigOperationMetadata): google.cloud.dialogflow.v2beta1.SetSuggestionFeatureConfigOperationMetadata;

                    /**
                     * Encodes the specified SetSuggestionFeatureConfigOperationMetadata message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.SetSuggestionFeatureConfigOperationMetadata.verify|verify} messages.
                     * @param message SetSuggestionFeatureConfigOperationMetadata message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.ISetSuggestionFeatureConfigOperationMetadata, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetSuggestionFeatureConfigOperationMetadata message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.SetSuggestionFeatureConfigOperationMetadata.verify|verify} messages.
                     * @param message SetSuggestionFeatureConfigOperationMetadata message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.ISetSuggestionFeatureConfigOperationMetadata, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetSuggestionFeatureConfigOperationMetadata message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetSuggestionFeatureConfigOperationMetadata
                     * @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.cloud.dialogflow.v2beta1.SetSuggestionFeatureConfigOperationMetadata;

                    /**
                     * Decodes a SetSuggestionFeatureConfigOperationMetadata message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetSuggestionFeatureConfigOperationMetadata
                     * @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.cloud.dialogflow.v2beta1.SetSuggestionFeatureConfigOperationMetadata;

                    /**
                     * Verifies a SetSuggestionFeatureConfigOperationMetadata 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 SetSuggestionFeatureConfigOperationMetadata message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetSuggestionFeatureConfigOperationMetadata
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.SetSuggestionFeatureConfigOperationMetadata;

                    /**
                     * Creates a plain object from a SetSuggestionFeatureConfigOperationMetadata message. Also converts values to other types if specified.
                     * @param message SetSuggestionFeatureConfigOperationMetadata
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.SetSuggestionFeatureConfigOperationMetadata, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetSuggestionFeatureConfigOperationMetadata to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetSuggestionFeatureConfigOperationMetadata
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ClearSuggestionFeatureConfigOperationMetadata. */
                interface IClearSuggestionFeatureConfigOperationMetadata {

                    /** ClearSuggestionFeatureConfigOperationMetadata conversationProfile */
                    conversationProfile?: (string|null);

                    /** ClearSuggestionFeatureConfigOperationMetadata participantRole */
                    participantRole?: (google.cloud.dialogflow.v2beta1.Participant.Role|keyof typeof google.cloud.dialogflow.v2beta1.Participant.Role|null);

                    /** ClearSuggestionFeatureConfigOperationMetadata suggestionFeatureType */
                    suggestionFeatureType?: (google.cloud.dialogflow.v2beta1.SuggestionFeature.Type|keyof typeof google.cloud.dialogflow.v2beta1.SuggestionFeature.Type|null);

                    /** ClearSuggestionFeatureConfigOperationMetadata createTime */
                    createTime?: (google.protobuf.ITimestamp|null);
                }

                /** Represents a ClearSuggestionFeatureConfigOperationMetadata. */
                class ClearSuggestionFeatureConfigOperationMetadata implements IClearSuggestionFeatureConfigOperationMetadata {

                    /**
                     * Constructs a new ClearSuggestionFeatureConfigOperationMetadata.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IClearSuggestionFeatureConfigOperationMetadata);

                    /** ClearSuggestionFeatureConfigOperationMetadata conversationProfile. */
                    public conversationProfile: string;

                    /** ClearSuggestionFeatureConfigOperationMetadata participantRole. */
                    public participantRole: (google.cloud.dialogflow.v2beta1.Participant.Role|keyof typeof google.cloud.dialogflow.v2beta1.Participant.Role);

                    /** ClearSuggestionFeatureConfigOperationMetadata suggestionFeatureType. */
                    public suggestionFeatureType: (google.cloud.dialogflow.v2beta1.SuggestionFeature.Type|keyof typeof google.cloud.dialogflow.v2beta1.SuggestionFeature.Type);

                    /** ClearSuggestionFeatureConfigOperationMetadata createTime. */
                    public createTime?: (google.protobuf.ITimestamp|null);

                    /**
                     * Creates a new ClearSuggestionFeatureConfigOperationMetadata instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ClearSuggestionFeatureConfigOperationMetadata instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IClearSuggestionFeatureConfigOperationMetadata): google.cloud.dialogflow.v2beta1.ClearSuggestionFeatureConfigOperationMetadata;

                    /**
                     * Encodes the specified ClearSuggestionFeatureConfigOperationMetadata message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.ClearSuggestionFeatureConfigOperationMetadata.verify|verify} messages.
                     * @param message ClearSuggestionFeatureConfigOperationMetadata message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IClearSuggestionFeatureConfigOperationMetadata, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ClearSuggestionFeatureConfigOperationMetadata message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.ClearSuggestionFeatureConfigOperationMetadata.verify|verify} messages.
                     * @param message ClearSuggestionFeatureConfigOperationMetadata message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IClearSuggestionFeatureConfigOperationMetadata, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ClearSuggestionFeatureConfigOperationMetadata message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ClearSuggestionFeatureConfigOperationMetadata
                     * @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.cloud.dialogflow.v2beta1.ClearSuggestionFeatureConfigOperationMetadata;

                    /**
                     * Decodes a ClearSuggestionFeatureConfigOperationMetadata message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ClearSuggestionFeatureConfigOperationMetadata
                     * @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.cloud.dialogflow.v2beta1.ClearSuggestionFeatureConfigOperationMetadata;

                    /**
                     * Verifies a ClearSuggestionFeatureConfigOperationMetadata 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 ClearSuggestionFeatureConfigOperationMetadata message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ClearSuggestionFeatureConfigOperationMetadata
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.ClearSuggestionFeatureConfigOperationMetadata;

                    /**
                     * Creates a plain object from a ClearSuggestionFeatureConfigOperationMetadata message. Also converts values to other types if specified.
                     * @param message ClearSuggestionFeatureConfigOperationMetadata
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.ClearSuggestionFeatureConfigOperationMetadata, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ClearSuggestionFeatureConfigOperationMetadata to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ClearSuggestionFeatureConfigOperationMetadata
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ConversationEvent. */
                interface IConversationEvent {

                    /** ConversationEvent conversation */
                    conversation?: (string|null);

                    /** ConversationEvent type */
                    type?: (google.cloud.dialogflow.v2beta1.ConversationEvent.Type|keyof typeof google.cloud.dialogflow.v2beta1.ConversationEvent.Type|null);

                    /** ConversationEvent errorStatus */
                    errorStatus?: (google.rpc.IStatus|null);

                    /** ConversationEvent newMessagePayload */
                    newMessagePayload?: (google.cloud.dialogflow.v2beta1.IMessage|null);

                    /** ConversationEvent newRecognitionResultPayload */
                    newRecognitionResultPayload?: (google.cloud.dialogflow.v2beta1.IStreamingRecognitionResult|null);
                }

                /** Represents a ConversationEvent. */
                class ConversationEvent implements IConversationEvent {

                    /**
                     * Constructs a new ConversationEvent.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IConversationEvent);

                    /** ConversationEvent conversation. */
                    public conversation: string;

                    /** ConversationEvent type. */
                    public type: (google.cloud.dialogflow.v2beta1.ConversationEvent.Type|keyof typeof google.cloud.dialogflow.v2beta1.ConversationEvent.Type);

                    /** ConversationEvent errorStatus. */
                    public errorStatus?: (google.rpc.IStatus|null);

                    /** ConversationEvent newMessagePayload. */
                    public newMessagePayload?: (google.cloud.dialogflow.v2beta1.IMessage|null);

                    /** ConversationEvent newRecognitionResultPayload. */
                    public newRecognitionResultPayload?: (google.cloud.dialogflow.v2beta1.IStreamingRecognitionResult|null);

                    /** ConversationEvent payload. */
                    public payload?: ("newMessagePayload"|"newRecognitionResultPayload");

                    /**
                     * Creates a new ConversationEvent instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ConversationEvent instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IConversationEvent): google.cloud.dialogflow.v2beta1.ConversationEvent;

                    /**
                     * Encodes the specified ConversationEvent message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.ConversationEvent.verify|verify} messages.
                     * @param message ConversationEvent message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IConversationEvent, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ConversationEvent message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.ConversationEvent.verify|verify} messages.
                     * @param message ConversationEvent message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IConversationEvent, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ConversationEvent message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ConversationEvent
                     * @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.cloud.dialogflow.v2beta1.ConversationEvent;

                    /**
                     * Decodes a ConversationEvent message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ConversationEvent
                     * @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.cloud.dialogflow.v2beta1.ConversationEvent;

                    /**
                     * Verifies a ConversationEvent 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 ConversationEvent message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ConversationEvent
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.ConversationEvent;

                    /**
                     * Creates a plain object from a ConversationEvent message. Also converts values to other types if specified.
                     * @param message ConversationEvent
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.ConversationEvent, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ConversationEvent to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ConversationEvent
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace ConversationEvent {

                    /** Type enum. */
                    enum Type {
                        TYPE_UNSPECIFIED = 0,
                        CONVERSATION_STARTED = 1,
                        CONVERSATION_FINISHED = 2,
                        HUMAN_INTERVENTION_NEEDED = 3,
                        NEW_MESSAGE = 5,
                        NEW_RECOGNITION_RESULT = 7,
                        UNRECOVERABLE_ERROR = 4
                    }
                }

                /** Represents a Documents */
                class Documents extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new Documents 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 Documents 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): Documents;

                    /**
                     * Calls ListDocuments.
                     * @param request ListDocumentsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ListDocumentsResponse
                     */
                    public listDocuments(request: google.cloud.dialogflow.v2beta1.IListDocumentsRequest, callback: google.cloud.dialogflow.v2beta1.Documents.ListDocumentsCallback): void;

                    /**
                     * Calls ListDocuments.
                     * @param request ListDocumentsRequest message or plain object
                     * @returns Promise
                     */
                    public listDocuments(request: google.cloud.dialogflow.v2beta1.IListDocumentsRequest): Promise<google.cloud.dialogflow.v2beta1.ListDocumentsResponse>;

                    /**
                     * Calls GetDocument.
                     * @param request GetDocumentRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Document
                     */
                    public getDocument(request: google.cloud.dialogflow.v2beta1.IGetDocumentRequest, callback: google.cloud.dialogflow.v2beta1.Documents.GetDocumentCallback): void;

                    /**
                     * Calls GetDocument.
                     * @param request GetDocumentRequest message or plain object
                     * @returns Promise
                     */
                    public getDocument(request: google.cloud.dialogflow.v2beta1.IGetDocumentRequest): Promise<google.cloud.dialogflow.v2beta1.Document>;

                    /**
                     * Calls CreateDocument.
                     * @param request CreateDocumentRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public createDocument(request: google.cloud.dialogflow.v2beta1.ICreateDocumentRequest, callback: google.cloud.dialogflow.v2beta1.Documents.CreateDocumentCallback): void;

                    /**
                     * Calls CreateDocument.
                     * @param request CreateDocumentRequest message or plain object
                     * @returns Promise
                     */
                    public createDocument(request: google.cloud.dialogflow.v2beta1.ICreateDocumentRequest): Promise<google.longrunning.Operation>;

                    /**
                     * Calls ImportDocuments.
                     * @param request ImportDocumentsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public importDocuments(request: google.cloud.dialogflow.v2beta1.IImportDocumentsRequest, callback: google.cloud.dialogflow.v2beta1.Documents.ImportDocumentsCallback): void;

                    /**
                     * Calls ImportDocuments.
                     * @param request ImportDocumentsRequest message or plain object
                     * @returns Promise
                     */
                    public importDocuments(request: google.cloud.dialogflow.v2beta1.IImportDocumentsRequest): Promise<google.longrunning.Operation>;

                    /**
                     * Calls DeleteDocument.
                     * @param request DeleteDocumentRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public deleteDocument(request: google.cloud.dialogflow.v2beta1.IDeleteDocumentRequest, callback: google.cloud.dialogflow.v2beta1.Documents.DeleteDocumentCallback): void;

                    /**
                     * Calls DeleteDocument.
                     * @param request DeleteDocumentRequest message or plain object
                     * @returns Promise
                     */
                    public deleteDocument(request: google.cloud.dialogflow.v2beta1.IDeleteDocumentRequest): Promise<google.longrunning.Operation>;

                    /**
                     * Calls UpdateDocument.
                     * @param request UpdateDocumentRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public updateDocument(request: google.cloud.dialogflow.v2beta1.IUpdateDocumentRequest, callback: google.cloud.dialogflow.v2beta1.Documents.UpdateDocumentCallback): void;

                    /**
                     * Calls UpdateDocument.
                     * @param request UpdateDocumentRequest message or plain object
                     * @returns Promise
                     */
                    public updateDocument(request: google.cloud.dialogflow.v2beta1.IUpdateDocumentRequest): Promise<google.longrunning.Operation>;

                    /**
                     * Calls ReloadDocument.
                     * @param request ReloadDocumentRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public reloadDocument(request: google.cloud.dialogflow.v2beta1.IReloadDocumentRequest, callback: google.cloud.dialogflow.v2beta1.Documents.ReloadDocumentCallback): void;

                    /**
                     * Calls ReloadDocument.
                     * @param request ReloadDocumentRequest message or plain object
                     * @returns Promise
                     */
                    public reloadDocument(request: google.cloud.dialogflow.v2beta1.IReloadDocumentRequest): Promise<google.longrunning.Operation>;
                }

                namespace Documents {

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2beta1.Documents|listDocuments}.
                     * @param error Error, if any
                     * @param [response] ListDocumentsResponse
                     */
                    type ListDocumentsCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2beta1.ListDocumentsResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2beta1.Documents|getDocument}.
                     * @param error Error, if any
                     * @param [response] Document
                     */
                    type GetDocumentCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2beta1.Document) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2beta1.Documents|createDocument}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type CreateDocumentCallback = (error: (Error|null), response?: google.longrunning.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2beta1.Documents|importDocuments}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type ImportDocumentsCallback = (error: (Error|null), response?: google.longrunning.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2beta1.Documents|deleteDocument}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteDocumentCallback = (error: (Error|null), response?: google.longrunning.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2beta1.Documents|updateDocument}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type UpdateDocumentCallback = (error: (Error|null), response?: google.longrunning.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2beta1.Documents|reloadDocument}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type ReloadDocumentCallback = (error: (Error|null), response?: google.longrunning.Operation) => void;
                }

                /** Properties of a Document. */
                interface IDocument {

                    /** Document name */
                    name?: (string|null);

                    /** Document displayName */
                    displayName?: (string|null);

                    /** Document mimeType */
                    mimeType?: (string|null);

                    /** Document knowledgeTypes */
                    knowledgeTypes?: (google.cloud.dialogflow.v2beta1.Document.KnowledgeType[]|null);

                    /** Document contentUri */
                    contentUri?: (string|null);

                    /** Document content */
                    content?: (string|null);

                    /** Document rawContent */
                    rawContent?: (Uint8Array|Buffer|string|null);

                    /** Document enableAutoReload */
                    enableAutoReload?: (boolean|null);

                    /** Document latestReloadStatus */
                    latestReloadStatus?: (google.cloud.dialogflow.v2beta1.Document.IReloadStatus|null);

                    /** Document metadata */
                    metadata?: ({ [k: string]: string }|null);

                    /** Document state */
                    state?: (google.cloud.dialogflow.v2beta1.Document.State|keyof typeof google.cloud.dialogflow.v2beta1.Document.State|null);
                }

                /** Represents a Document. */
                class Document implements IDocument {

                    /**
                     * Constructs a new Document.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IDocument);

                    /** Document name. */
                    public name: string;

                    /** Document displayName. */
                    public displayName: string;

                    /** Document mimeType. */
                    public mimeType: string;

                    /** Document knowledgeTypes. */
                    public knowledgeTypes: google.cloud.dialogflow.v2beta1.Document.KnowledgeType[];

                    /** Document contentUri. */
                    public contentUri?: (string|null);

                    /** Document content. */
                    public content?: (string|null);

                    /** Document rawContent. */
                    public rawContent?: (Uint8Array|Buffer|string|null);

                    /** Document enableAutoReload. */
                    public enableAutoReload: boolean;

                    /** Document latestReloadStatus. */
                    public latestReloadStatus?: (google.cloud.dialogflow.v2beta1.Document.IReloadStatus|null);

                    /** Document metadata. */
                    public metadata: { [k: string]: string };

                    /** Document state. */
                    public state: (google.cloud.dialogflow.v2beta1.Document.State|keyof typeof google.cloud.dialogflow.v2beta1.Document.State);

                    /** Document source. */
                    public source?: ("contentUri"|"content"|"rawContent");

                    /**
                     * Creates a new Document instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Document instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IDocument): google.cloud.dialogflow.v2beta1.Document;

                    /**
                     * Encodes the specified Document message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Document.verify|verify} messages.
                     * @param message Document message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IDocument, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Document message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Document.verify|verify} messages.
                     * @param message Document message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IDocument, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a Document message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Document
                     * @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.cloud.dialogflow.v2beta1.Document;

                    /**
                     * Decodes a Document message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Document
                     * @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.cloud.dialogflow.v2beta1.Document;

                    /**
                     * Verifies a Document 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 Document message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Document
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.Document;

                    /**
                     * Creates a plain object from a Document message. Also converts values to other types if specified.
                     * @param message Document
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.Document, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Document to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Document
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace Document {

                    /** KnowledgeType enum. */
                    enum KnowledgeType {
                        KNOWLEDGE_TYPE_UNSPECIFIED = 0,
                        FAQ = 1,
                        EXTRACTIVE_QA = 2,
                        ARTICLE_SUGGESTION = 3,
                        AGENT_FACING_SMART_REPLY = 4,
                        SMART_REPLY = 4
                    }

                    /** Properties of a ReloadStatus. */
                    interface IReloadStatus {

                        /** ReloadStatus time */
                        time?: (google.protobuf.ITimestamp|null);

                        /** ReloadStatus status */
                        status?: (google.rpc.IStatus|null);
                    }

                    /** Represents a ReloadStatus. */
                    class ReloadStatus implements IReloadStatus {

                        /**
                         * Constructs a new ReloadStatus.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2beta1.Document.IReloadStatus);

                        /** ReloadStatus time. */
                        public time?: (google.protobuf.ITimestamp|null);

                        /** ReloadStatus status. */
                        public status?: (google.rpc.IStatus|null);

                        /**
                         * Creates a new ReloadStatus instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns ReloadStatus instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2beta1.Document.IReloadStatus): google.cloud.dialogflow.v2beta1.Document.ReloadStatus;

                        /**
                         * Encodes the specified ReloadStatus message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Document.ReloadStatus.verify|verify} messages.
                         * @param message ReloadStatus message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2beta1.Document.IReloadStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified ReloadStatus message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Document.ReloadStatus.verify|verify} messages.
                         * @param message ReloadStatus message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.Document.IReloadStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a ReloadStatus message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns ReloadStatus
                         * @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.cloud.dialogflow.v2beta1.Document.ReloadStatus;

                        /**
                         * Decodes a ReloadStatus message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns ReloadStatus
                         * @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.cloud.dialogflow.v2beta1.Document.ReloadStatus;

                        /**
                         * Verifies a ReloadStatus 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 ReloadStatus message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns ReloadStatus
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.Document.ReloadStatus;

                        /**
                         * Creates a plain object from a ReloadStatus message. Also converts values to other types if specified.
                         * @param message ReloadStatus
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.dialogflow.v2beta1.Document.ReloadStatus, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this ReloadStatus to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for ReloadStatus
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    /** State enum. */
                    enum State {
                        STATE_UNSPECIFIED = 0,
                        CREATING = 1,
                        ACTIVE = 2,
                        UPDATING = 3,
                        RELOADING = 4,
                        DELETING = 5
                    }
                }

                /** Properties of a GetDocumentRequest. */
                interface IGetDocumentRequest {

                    /** GetDocumentRequest name */
                    name?: (string|null);
                }

                /** Represents a GetDocumentRequest. */
                class GetDocumentRequest implements IGetDocumentRequest {

                    /**
                     * Constructs a new GetDocumentRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IGetDocumentRequest);

                    /** GetDocumentRequest name. */
                    public name: string;

                    /**
                     * Creates a new GetDocumentRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetDocumentRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IGetDocumentRequest): google.cloud.dialogflow.v2beta1.GetDocumentRequest;

                    /**
                     * Encodes the specified GetDocumentRequest message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.GetDocumentRequest.verify|verify} messages.
                     * @param message GetDocumentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IGetDocumentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetDocumentRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.GetDocumentRequest.verify|verify} messages.
                     * @param message GetDocumentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IGetDocumentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetDocumentRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetDocumentRequest
                     * @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.cloud.dialogflow.v2beta1.GetDocumentRequest;

                    /**
                     * Decodes a GetDocumentRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetDocumentRequest
                     * @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.cloud.dialogflow.v2beta1.GetDocumentRequest;

                    /**
                     * Verifies a GetDocumentRequest 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 GetDocumentRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetDocumentRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.GetDocumentRequest;

                    /**
                     * Creates a plain object from a GetDocumentRequest message. Also converts values to other types if specified.
                     * @param message GetDocumentRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.GetDocumentRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetDocumentRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetDocumentRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListDocumentsRequest. */
                interface IListDocumentsRequest {

                    /** ListDocumentsRequest parent */
                    parent?: (string|null);

                    /** ListDocumentsRequest pageSize */
                    pageSize?: (number|null);

                    /** ListDocumentsRequest pageToken */
                    pageToken?: (string|null);

                    /** ListDocumentsRequest filter */
                    filter?: (string|null);
                }

                /** Represents a ListDocumentsRequest. */
                class ListDocumentsRequest implements IListDocumentsRequest {

                    /**
                     * Constructs a new ListDocumentsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IListDocumentsRequest);

                    /** ListDocumentsRequest parent. */
                    public parent: string;

                    /** ListDocumentsRequest pageSize. */
                    public pageSize: number;

                    /** ListDocumentsRequest pageToken. */
                    public pageToken: string;

                    /** ListDocumentsRequest filter. */
                    public filter: string;

                    /**
                     * Creates a new ListDocumentsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListDocumentsRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IListDocumentsRequest): google.cloud.dialogflow.v2beta1.ListDocumentsRequest;

                    /**
                     * Encodes the specified ListDocumentsRequest message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.ListDocumentsRequest.verify|verify} messages.
                     * @param message ListDocumentsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IListDocumentsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListDocumentsRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.ListDocumentsRequest.verify|verify} messages.
                     * @param message ListDocumentsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IListDocumentsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListDocumentsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListDocumentsRequest
                     * @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.cloud.dialogflow.v2beta1.ListDocumentsRequest;

                    /**
                     * Decodes a ListDocumentsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListDocumentsRequest
                     * @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.cloud.dialogflow.v2beta1.ListDocumentsRequest;

                    /**
                     * Verifies a ListDocumentsRequest 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 ListDocumentsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListDocumentsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.ListDocumentsRequest;

                    /**
                     * Creates a plain object from a ListDocumentsRequest message. Also converts values to other types if specified.
                     * @param message ListDocumentsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.ListDocumentsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListDocumentsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListDocumentsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListDocumentsResponse. */
                interface IListDocumentsResponse {

                    /** ListDocumentsResponse documents */
                    documents?: (google.cloud.dialogflow.v2beta1.IDocument[]|null);

                    /** ListDocumentsResponse nextPageToken */
                    nextPageToken?: (string|null);
                }

                /** Represents a ListDocumentsResponse. */
                class ListDocumentsResponse implements IListDocumentsResponse {

                    /**
                     * Constructs a new ListDocumentsResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IListDocumentsResponse);

                    /** ListDocumentsResponse documents. */
                    public documents: google.cloud.dialogflow.v2beta1.IDocument[];

                    /** ListDocumentsResponse nextPageToken. */
                    public nextPageToken: string;

                    /**
                     * Creates a new ListDocumentsResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListDocumentsResponse instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IListDocumentsResponse): google.cloud.dialogflow.v2beta1.ListDocumentsResponse;

                    /**
                     * Encodes the specified ListDocumentsResponse message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.ListDocumentsResponse.verify|verify} messages.
                     * @param message ListDocumentsResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IListDocumentsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListDocumentsResponse message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.ListDocumentsResponse.verify|verify} messages.
                     * @param message ListDocumentsResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IListDocumentsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListDocumentsResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListDocumentsResponse
                     * @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.cloud.dialogflow.v2beta1.ListDocumentsResponse;

                    /**
                     * Decodes a ListDocumentsResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListDocumentsResponse
                     * @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.cloud.dialogflow.v2beta1.ListDocumentsResponse;

                    /**
                     * Verifies a ListDocumentsResponse 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 ListDocumentsResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListDocumentsResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.ListDocumentsResponse;

                    /**
                     * Creates a plain object from a ListDocumentsResponse message. Also converts values to other types if specified.
                     * @param message ListDocumentsResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.ListDocumentsResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListDocumentsResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListDocumentsResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a CreateDocumentRequest. */
                interface ICreateDocumentRequest {

                    /** CreateDocumentRequest parent */
                    parent?: (string|null);

                    /** CreateDocumentRequest document */
                    document?: (google.cloud.dialogflow.v2beta1.IDocument|null);

                    /** CreateDocumentRequest importGcsCustomMetadata */
                    importGcsCustomMetadata?: (boolean|null);
                }

                /** Represents a CreateDocumentRequest. */
                class CreateDocumentRequest implements ICreateDocumentRequest {

                    /**
                     * Constructs a new CreateDocumentRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.ICreateDocumentRequest);

                    /** CreateDocumentRequest parent. */
                    public parent: string;

                    /** CreateDocumentRequest document. */
                    public document?: (google.cloud.dialogflow.v2beta1.IDocument|null);

                    /** CreateDocumentRequest importGcsCustomMetadata. */
                    public importGcsCustomMetadata: boolean;

                    /**
                     * Creates a new CreateDocumentRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CreateDocumentRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.ICreateDocumentRequest): google.cloud.dialogflow.v2beta1.CreateDocumentRequest;

                    /**
                     * Encodes the specified CreateDocumentRequest message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.CreateDocumentRequest.verify|verify} messages.
                     * @param message CreateDocumentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.ICreateDocumentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CreateDocumentRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.CreateDocumentRequest.verify|verify} messages.
                     * @param message CreateDocumentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.ICreateDocumentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CreateDocumentRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CreateDocumentRequest
                     * @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.cloud.dialogflow.v2beta1.CreateDocumentRequest;

                    /**
                     * Decodes a CreateDocumentRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CreateDocumentRequest
                     * @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.cloud.dialogflow.v2beta1.CreateDocumentRequest;

                    /**
                     * Verifies a CreateDocumentRequest 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 CreateDocumentRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CreateDocumentRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.CreateDocumentRequest;

                    /**
                     * Creates a plain object from a CreateDocumentRequest message. Also converts values to other types if specified.
                     * @param message CreateDocumentRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.CreateDocumentRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CreateDocumentRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CreateDocumentRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an ImportDocumentsRequest. */
                interface IImportDocumentsRequest {

                    /** ImportDocumentsRequest parent */
                    parent?: (string|null);

                    /** ImportDocumentsRequest gcsSource */
                    gcsSource?: (google.cloud.dialogflow.v2beta1.IGcsSources|null);

                    /** ImportDocumentsRequest documentTemplate */
                    documentTemplate?: (google.cloud.dialogflow.v2beta1.IImportDocumentTemplate|null);

                    /** ImportDocumentsRequest importGcsCustomMetadata */
                    importGcsCustomMetadata?: (boolean|null);
                }

                /** Represents an ImportDocumentsRequest. */
                class ImportDocumentsRequest implements IImportDocumentsRequest {

                    /**
                     * Constructs a new ImportDocumentsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IImportDocumentsRequest);

                    /** ImportDocumentsRequest parent. */
                    public parent: string;

                    /** ImportDocumentsRequest gcsSource. */
                    public gcsSource?: (google.cloud.dialogflow.v2beta1.IGcsSources|null);

                    /** ImportDocumentsRequest documentTemplate. */
                    public documentTemplate?: (google.cloud.dialogflow.v2beta1.IImportDocumentTemplate|null);

                    /** ImportDocumentsRequest importGcsCustomMetadata. */
                    public importGcsCustomMetadata: boolean;

                    /** ImportDocumentsRequest source. */
                    public source?: "gcsSource";

                    /**
                     * Creates a new ImportDocumentsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ImportDocumentsRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IImportDocumentsRequest): google.cloud.dialogflow.v2beta1.ImportDocumentsRequest;

                    /**
                     * Encodes the specified ImportDocumentsRequest message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.ImportDocumentsRequest.verify|verify} messages.
                     * @param message ImportDocumentsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IImportDocumentsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ImportDocumentsRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.ImportDocumentsRequest.verify|verify} messages.
                     * @param message ImportDocumentsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IImportDocumentsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an ImportDocumentsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ImportDocumentsRequest
                     * @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.cloud.dialogflow.v2beta1.ImportDocumentsRequest;

                    /**
                     * Decodes an ImportDocumentsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ImportDocumentsRequest
                     * @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.cloud.dialogflow.v2beta1.ImportDocumentsRequest;

                    /**
                     * Verifies an ImportDocumentsRequest 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 ImportDocumentsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ImportDocumentsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.ImportDocumentsRequest;

                    /**
                     * Creates a plain object from an ImportDocumentsRequest message. Also converts values to other types if specified.
                     * @param message ImportDocumentsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.ImportDocumentsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ImportDocumentsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ImportDocumentsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an ImportDocumentTemplate. */
                interface IImportDocumentTemplate {

                    /** ImportDocumentTemplate mimeType */
                    mimeType?: (string|null);

                    /** ImportDocumentTemplate knowledgeTypes */
                    knowledgeTypes?: (google.cloud.dialogflow.v2beta1.Document.KnowledgeType[]|null);

                    /** ImportDocumentTemplate metadata */
                    metadata?: ({ [k: string]: string }|null);
                }

                /** Represents an ImportDocumentTemplate. */
                class ImportDocumentTemplate implements IImportDocumentTemplate {

                    /**
                     * Constructs a new ImportDocumentTemplate.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IImportDocumentTemplate);

                    /** ImportDocumentTemplate mimeType. */
                    public mimeType: string;

                    /** ImportDocumentTemplate knowledgeTypes. */
                    public knowledgeTypes: google.cloud.dialogflow.v2beta1.Document.KnowledgeType[];

                    /** ImportDocumentTemplate metadata. */
                    public metadata: { [k: string]: string };

                    /**
                     * Creates a new ImportDocumentTemplate instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ImportDocumentTemplate instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IImportDocumentTemplate): google.cloud.dialogflow.v2beta1.ImportDocumentTemplate;

                    /**
                     * Encodes the specified ImportDocumentTemplate message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.ImportDocumentTemplate.verify|verify} messages.
                     * @param message ImportDocumentTemplate message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IImportDocumentTemplate, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ImportDocumentTemplate message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.ImportDocumentTemplate.verify|verify} messages.
                     * @param message ImportDocumentTemplate message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IImportDocumentTemplate, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an ImportDocumentTemplate message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ImportDocumentTemplate
                     * @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.cloud.dialogflow.v2beta1.ImportDocumentTemplate;

                    /**
                     * Decodes an ImportDocumentTemplate message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ImportDocumentTemplate
                     * @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.cloud.dialogflow.v2beta1.ImportDocumentTemplate;

                    /**
                     * Verifies an ImportDocumentTemplate 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 ImportDocumentTemplate message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ImportDocumentTemplate
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.ImportDocumentTemplate;

                    /**
                     * Creates a plain object from an ImportDocumentTemplate message. Also converts values to other types if specified.
                     * @param message ImportDocumentTemplate
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.ImportDocumentTemplate, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ImportDocumentTemplate to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ImportDocumentTemplate
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an ImportDocumentsResponse. */
                interface IImportDocumentsResponse {

                    /** ImportDocumentsResponse warnings */
                    warnings?: (google.rpc.IStatus[]|null);
                }

                /** Represents an ImportDocumentsResponse. */
                class ImportDocumentsResponse implements IImportDocumentsResponse {

                    /**
                     * Constructs a new ImportDocumentsResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IImportDocumentsResponse);

                    /** ImportDocumentsResponse warnings. */
                    public warnings: google.rpc.IStatus[];

                    /**
                     * Creates a new ImportDocumentsResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ImportDocumentsResponse instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IImportDocumentsResponse): google.cloud.dialogflow.v2beta1.ImportDocumentsResponse;

                    /**
                     * Encodes the specified ImportDocumentsResponse message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.ImportDocumentsResponse.verify|verify} messages.
                     * @param message ImportDocumentsResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IImportDocumentsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ImportDocumentsResponse message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.ImportDocumentsResponse.verify|verify} messages.
                     * @param message ImportDocumentsResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IImportDocumentsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an ImportDocumentsResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ImportDocumentsResponse
                     * @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.cloud.dialogflow.v2beta1.ImportDocumentsResponse;

                    /**
                     * Decodes an ImportDocumentsResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ImportDocumentsResponse
                     * @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.cloud.dialogflow.v2beta1.ImportDocumentsResponse;

                    /**
                     * Verifies an ImportDocumentsResponse 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 ImportDocumentsResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ImportDocumentsResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.ImportDocumentsResponse;

                    /**
                     * Creates a plain object from an ImportDocumentsResponse message. Also converts values to other types if specified.
                     * @param message ImportDocumentsResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.ImportDocumentsResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ImportDocumentsResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ImportDocumentsResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteDocumentRequest. */
                interface IDeleteDocumentRequest {

                    /** DeleteDocumentRequest name */
                    name?: (string|null);
                }

                /** Represents a DeleteDocumentRequest. */
                class DeleteDocumentRequest implements IDeleteDocumentRequest {

                    /**
                     * Constructs a new DeleteDocumentRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IDeleteDocumentRequest);

                    /** DeleteDocumentRequest name. */
                    public name: string;

                    /**
                     * Creates a new DeleteDocumentRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteDocumentRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IDeleteDocumentRequest): google.cloud.dialogflow.v2beta1.DeleteDocumentRequest;

                    /**
                     * Encodes the specified DeleteDocumentRequest message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.DeleteDocumentRequest.verify|verify} messages.
                     * @param message DeleteDocumentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IDeleteDocumentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteDocumentRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.DeleteDocumentRequest.verify|verify} messages.
                     * @param message DeleteDocumentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IDeleteDocumentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteDocumentRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteDocumentRequest
                     * @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.cloud.dialogflow.v2beta1.DeleteDocumentRequest;

                    /**
                     * Decodes a DeleteDocumentRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteDocumentRequest
                     * @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.cloud.dialogflow.v2beta1.DeleteDocumentRequest;

                    /**
                     * Verifies a DeleteDocumentRequest 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 DeleteDocumentRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteDocumentRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.DeleteDocumentRequest;

                    /**
                     * Creates a plain object from a DeleteDocumentRequest message. Also converts values to other types if specified.
                     * @param message DeleteDocumentRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.DeleteDocumentRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteDocumentRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteDocumentRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an UpdateDocumentRequest. */
                interface IUpdateDocumentRequest {

                    /** UpdateDocumentRequest document */
                    document?: (google.cloud.dialogflow.v2beta1.IDocument|null);

                    /** UpdateDocumentRequest updateMask */
                    updateMask?: (google.protobuf.IFieldMask|null);
                }

                /** Represents an UpdateDocumentRequest. */
                class UpdateDocumentRequest implements IUpdateDocumentRequest {

                    /**
                     * Constructs a new UpdateDocumentRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IUpdateDocumentRequest);

                    /** UpdateDocumentRequest document. */
                    public document?: (google.cloud.dialogflow.v2beta1.IDocument|null);

                    /** UpdateDocumentRequest updateMask. */
                    public updateMask?: (google.protobuf.IFieldMask|null);

                    /**
                     * Creates a new UpdateDocumentRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UpdateDocumentRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IUpdateDocumentRequest): google.cloud.dialogflow.v2beta1.UpdateDocumentRequest;

                    /**
                     * Encodes the specified UpdateDocumentRequest message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.UpdateDocumentRequest.verify|verify} messages.
                     * @param message UpdateDocumentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IUpdateDocumentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified UpdateDocumentRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.UpdateDocumentRequest.verify|verify} messages.
                     * @param message UpdateDocumentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IUpdateDocumentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an UpdateDocumentRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns UpdateDocumentRequest
                     * @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.cloud.dialogflow.v2beta1.UpdateDocumentRequest;

                    /**
                     * Decodes an UpdateDocumentRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns UpdateDocumentRequest
                     * @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.cloud.dialogflow.v2beta1.UpdateDocumentRequest;

                    /**
                     * Verifies an UpdateDocumentRequest 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 UpdateDocumentRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UpdateDocumentRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.UpdateDocumentRequest;

                    /**
                     * Creates a plain object from an UpdateDocumentRequest message. Also converts values to other types if specified.
                     * @param message UpdateDocumentRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.UpdateDocumentRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this UpdateDocumentRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for UpdateDocumentRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an ExportOperationMetadata. */
                interface IExportOperationMetadata {

                    /** ExportOperationMetadata exportedGcsDestination */
                    exportedGcsDestination?: (google.cloud.dialogflow.v2beta1.IGcsDestination|null);
                }

                /** Represents an ExportOperationMetadata. */
                class ExportOperationMetadata implements IExportOperationMetadata {

                    /**
                     * Constructs a new ExportOperationMetadata.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IExportOperationMetadata);

                    /** ExportOperationMetadata exportedGcsDestination. */
                    public exportedGcsDestination?: (google.cloud.dialogflow.v2beta1.IGcsDestination|null);

                    /**
                     * Creates a new ExportOperationMetadata instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ExportOperationMetadata instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IExportOperationMetadata): google.cloud.dialogflow.v2beta1.ExportOperationMetadata;

                    /**
                     * Encodes the specified ExportOperationMetadata message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.ExportOperationMetadata.verify|verify} messages.
                     * @param message ExportOperationMetadata message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IExportOperationMetadata, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ExportOperationMetadata message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.ExportOperationMetadata.verify|verify} messages.
                     * @param message ExportOperationMetadata message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IExportOperationMetadata, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an ExportOperationMetadata message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ExportOperationMetadata
                     * @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.cloud.dialogflow.v2beta1.ExportOperationMetadata;

                    /**
                     * Decodes an ExportOperationMetadata message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ExportOperationMetadata
                     * @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.cloud.dialogflow.v2beta1.ExportOperationMetadata;

                    /**
                     * Verifies an ExportOperationMetadata 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 ExportOperationMetadata message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ExportOperationMetadata
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.ExportOperationMetadata;

                    /**
                     * Creates a plain object from an ExportOperationMetadata message. Also converts values to other types if specified.
                     * @param message ExportOperationMetadata
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.ExportOperationMetadata, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ExportOperationMetadata to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ExportOperationMetadata
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a KnowledgeOperationMetadata. */
                interface IKnowledgeOperationMetadata {

                    /** KnowledgeOperationMetadata state */
                    state?: (google.cloud.dialogflow.v2beta1.KnowledgeOperationMetadata.State|keyof typeof google.cloud.dialogflow.v2beta1.KnowledgeOperationMetadata.State|null);

                    /** KnowledgeOperationMetadata knowledgeBase */
                    knowledgeBase?: (string|null);

                    /** KnowledgeOperationMetadata exportOperationMetadata */
                    exportOperationMetadata?: (google.cloud.dialogflow.v2beta1.IExportOperationMetadata|null);

                    /** KnowledgeOperationMetadata doneTime */
                    doneTime?: (google.protobuf.ITimestamp|null);
                }

                /** Represents a KnowledgeOperationMetadata. */
                class KnowledgeOperationMetadata implements IKnowledgeOperationMetadata {

                    /**
                     * Constructs a new KnowledgeOperationMetadata.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IKnowledgeOperationMetadata);

                    /** KnowledgeOperationMetadata state. */
                    public state: (google.cloud.dialogflow.v2beta1.KnowledgeOperationMetadata.State|keyof typeof google.cloud.dialogflow.v2beta1.KnowledgeOperationMetadata.State);

                    /** KnowledgeOperationMetadata knowledgeBase. */
                    public knowledgeBase: string;

                    /** KnowledgeOperationMetadata exportOperationMetadata. */
                    public exportOperationMetadata?: (google.cloud.dialogflow.v2beta1.IExportOperationMetadata|null);

                    /** KnowledgeOperationMetadata doneTime. */
                    public doneTime?: (google.protobuf.ITimestamp|null);

                    /** KnowledgeOperationMetadata operationMetadata. */
                    public operationMetadata?: "exportOperationMetadata";

                    /**
                     * Creates a new KnowledgeOperationMetadata instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns KnowledgeOperationMetadata instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IKnowledgeOperationMetadata): google.cloud.dialogflow.v2beta1.KnowledgeOperationMetadata;

                    /**
                     * Encodes the specified KnowledgeOperationMetadata message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.KnowledgeOperationMetadata.verify|verify} messages.
                     * @param message KnowledgeOperationMetadata message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IKnowledgeOperationMetadata, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified KnowledgeOperationMetadata message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.KnowledgeOperationMetadata.verify|verify} messages.
                     * @param message KnowledgeOperationMetadata message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IKnowledgeOperationMetadata, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a KnowledgeOperationMetadata message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns KnowledgeOperationMetadata
                     * @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.cloud.dialogflow.v2beta1.KnowledgeOperationMetadata;

                    /**
                     * Decodes a KnowledgeOperationMetadata message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns KnowledgeOperationMetadata
                     * @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.cloud.dialogflow.v2beta1.KnowledgeOperationMetadata;

                    /**
                     * Verifies a KnowledgeOperationMetadata 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 KnowledgeOperationMetadata message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns KnowledgeOperationMetadata
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.KnowledgeOperationMetadata;

                    /**
                     * Creates a plain object from a KnowledgeOperationMetadata message. Also converts values to other types if specified.
                     * @param message KnowledgeOperationMetadata
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.KnowledgeOperationMetadata, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this KnowledgeOperationMetadata to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for KnowledgeOperationMetadata
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace KnowledgeOperationMetadata {

                    /** State enum. */
                    enum State {
                        STATE_UNSPECIFIED = 0,
                        PENDING = 1,
                        RUNNING = 2,
                        DONE = 3
                    }
                }

                /** Properties of a ReloadDocumentRequest. */
                interface IReloadDocumentRequest {

                    /** ReloadDocumentRequest name */
                    name?: (string|null);

                    /** ReloadDocumentRequest gcsSource */
                    gcsSource?: (google.cloud.dialogflow.v2beta1.IGcsSource|null);

                    /** ReloadDocumentRequest importGcsCustomMetadata */
                    importGcsCustomMetadata?: (boolean|null);
                }

                /** Represents a ReloadDocumentRequest. */
                class ReloadDocumentRequest implements IReloadDocumentRequest {

                    /**
                     * Constructs a new ReloadDocumentRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IReloadDocumentRequest);

                    /** ReloadDocumentRequest name. */
                    public name: string;

                    /** ReloadDocumentRequest gcsSource. */
                    public gcsSource?: (google.cloud.dialogflow.v2beta1.IGcsSource|null);

                    /** ReloadDocumentRequest importGcsCustomMetadata. */
                    public importGcsCustomMetadata: boolean;

                    /** ReloadDocumentRequest source. */
                    public source?: "gcsSource";

                    /**
                     * Creates a new ReloadDocumentRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ReloadDocumentRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IReloadDocumentRequest): google.cloud.dialogflow.v2beta1.ReloadDocumentRequest;

                    /**
                     * Encodes the specified ReloadDocumentRequest message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.ReloadDocumentRequest.verify|verify} messages.
                     * @param message ReloadDocumentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IReloadDocumentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ReloadDocumentRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.ReloadDocumentRequest.verify|verify} messages.
                     * @param message ReloadDocumentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IReloadDocumentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ReloadDocumentRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ReloadDocumentRequest
                     * @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.cloud.dialogflow.v2beta1.ReloadDocumentRequest;

                    /**
                     * Decodes a ReloadDocumentRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ReloadDocumentRequest
                     * @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.cloud.dialogflow.v2beta1.ReloadDocumentRequest;

                    /**
                     * Verifies a ReloadDocumentRequest 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 ReloadDocumentRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ReloadDocumentRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.ReloadDocumentRequest;

                    /**
                     * Creates a plain object from a ReloadDocumentRequest message. Also converts values to other types if specified.
                     * @param message ReloadDocumentRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.ReloadDocumentRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ReloadDocumentRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ReloadDocumentRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GcsSources. */
                interface IGcsSources {

                    /** GcsSources uris */
                    uris?: (string[]|null);
                }

                /** Represents a GcsSources. */
                class GcsSources implements IGcsSources {

                    /**
                     * Constructs a new GcsSources.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IGcsSources);

                    /** GcsSources uris. */
                    public uris: string[];

                    /**
                     * Creates a new GcsSources instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GcsSources instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IGcsSources): google.cloud.dialogflow.v2beta1.GcsSources;

                    /**
                     * Encodes the specified GcsSources message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.GcsSources.verify|verify} messages.
                     * @param message GcsSources message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IGcsSources, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GcsSources message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.GcsSources.verify|verify} messages.
                     * @param message GcsSources message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IGcsSources, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GcsSources message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GcsSources
                     * @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.cloud.dialogflow.v2beta1.GcsSources;

                    /**
                     * Decodes a GcsSources message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GcsSources
                     * @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.cloud.dialogflow.v2beta1.GcsSources;

                    /**
                     * Verifies a GcsSources 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 GcsSources message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GcsSources
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.GcsSources;

                    /**
                     * Creates a plain object from a GcsSources message. Also converts values to other types if specified.
                     * @param message GcsSources
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.GcsSources, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GcsSources to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GcsSources
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GcsSource. */
                interface IGcsSource {

                    /** GcsSource uri */
                    uri?: (string|null);
                }

                /** Represents a GcsSource. */
                class GcsSource implements IGcsSource {

                    /**
                     * Constructs a new GcsSource.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IGcsSource);

                    /** GcsSource uri. */
                    public uri: string;

                    /**
                     * Creates a new GcsSource instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GcsSource instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IGcsSource): google.cloud.dialogflow.v2beta1.GcsSource;

                    /**
                     * Encodes the specified GcsSource message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.GcsSource.verify|verify} messages.
                     * @param message GcsSource message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IGcsSource, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GcsSource message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.GcsSource.verify|verify} messages.
                     * @param message GcsSource message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IGcsSource, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GcsSource message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GcsSource
                     * @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.cloud.dialogflow.v2beta1.GcsSource;

                    /**
                     * Decodes a GcsSource message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GcsSource
                     * @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.cloud.dialogflow.v2beta1.GcsSource;

                    /**
                     * Verifies a GcsSource 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 GcsSource message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GcsSource
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.GcsSource;

                    /**
                     * Creates a plain object from a GcsSource message. Also converts values to other types if specified.
                     * @param message GcsSource
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.GcsSource, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GcsSource to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GcsSource
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GcsDestination. */
                interface IGcsDestination {

                    /** GcsDestination uri */
                    uri?: (string|null);
                }

                /** Represents a GcsDestination. */
                class GcsDestination implements IGcsDestination {

                    /**
                     * Constructs a new GcsDestination.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IGcsDestination);

                    /** GcsDestination uri. */
                    public uri: string;

                    /**
                     * Creates a new GcsDestination instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GcsDestination instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IGcsDestination): google.cloud.dialogflow.v2beta1.GcsDestination;

                    /**
                     * Encodes the specified GcsDestination message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.GcsDestination.verify|verify} messages.
                     * @param message GcsDestination message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IGcsDestination, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GcsDestination message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.GcsDestination.verify|verify} messages.
                     * @param message GcsDestination message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IGcsDestination, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GcsDestination message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GcsDestination
                     * @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.cloud.dialogflow.v2beta1.GcsDestination;

                    /**
                     * Decodes a GcsDestination message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GcsDestination
                     * @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.cloud.dialogflow.v2beta1.GcsDestination;

                    /**
                     * Verifies a GcsDestination 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 GcsDestination message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GcsDestination
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.GcsDestination;

                    /**
                     * Creates a plain object from a GcsDestination message. Also converts values to other types if specified.
                     * @param message GcsDestination
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.GcsDestination, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GcsDestination to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GcsDestination
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Represents an EncryptionSpecService */
                class EncryptionSpecService extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new EncryptionSpecService 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 EncryptionSpecService 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): EncryptionSpecService;

                    /**
                     * Calls GetEncryptionSpec.
                     * @param request GetEncryptionSpecRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and EncryptionSpec
                     */
                    public getEncryptionSpec(request: google.cloud.dialogflow.v2beta1.IGetEncryptionSpecRequest, callback: google.cloud.dialogflow.v2beta1.EncryptionSpecService.GetEncryptionSpecCallback): void;

                    /**
                     * Calls GetEncryptionSpec.
                     * @param request GetEncryptionSpecRequest message or plain object
                     * @returns Promise
                     */
                    public getEncryptionSpec(request: google.cloud.dialogflow.v2beta1.IGetEncryptionSpecRequest): Promise<google.cloud.dialogflow.v2beta1.EncryptionSpec>;

                    /**
                     * Calls InitializeEncryptionSpec.
                     * @param request InitializeEncryptionSpecRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public initializeEncryptionSpec(request: google.cloud.dialogflow.v2beta1.IInitializeEncryptionSpecRequest, callback: google.cloud.dialogflow.v2beta1.EncryptionSpecService.InitializeEncryptionSpecCallback): void;

                    /**
                     * Calls InitializeEncryptionSpec.
                     * @param request InitializeEncryptionSpecRequest message or plain object
                     * @returns Promise
                     */
                    public initializeEncryptionSpec(request: google.cloud.dialogflow.v2beta1.IInitializeEncryptionSpecRequest): Promise<google.longrunning.Operation>;
                }

                namespace EncryptionSpecService {

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2beta1.EncryptionSpecService|getEncryptionSpec}.
                     * @param error Error, if any
                     * @param [response] EncryptionSpec
                     */
                    type GetEncryptionSpecCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2beta1.EncryptionSpec) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2beta1.EncryptionSpecService|initializeEncryptionSpec}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InitializeEncryptionSpecCallback = (error: (Error|null), response?: google.longrunning.Operation) => void;
                }

                /** Properties of a GetEncryptionSpecRequest. */
                interface IGetEncryptionSpecRequest {

                    /** GetEncryptionSpecRequest name */
                    name?: (string|null);
                }

                /** Represents a GetEncryptionSpecRequest. */
                class GetEncryptionSpecRequest implements IGetEncryptionSpecRequest {

                    /**
                     * Constructs a new GetEncryptionSpecRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IGetEncryptionSpecRequest);

                    /** GetEncryptionSpecRequest name. */
                    public name: string;

                    /**
                     * Creates a new GetEncryptionSpecRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetEncryptionSpecRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IGetEncryptionSpecRequest): google.cloud.dialogflow.v2beta1.GetEncryptionSpecRequest;

                    /**
                     * Encodes the specified GetEncryptionSpecRequest message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.GetEncryptionSpecRequest.verify|verify} messages.
                     * @param message GetEncryptionSpecRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IGetEncryptionSpecRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetEncryptionSpecRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.GetEncryptionSpecRequest.verify|verify} messages.
                     * @param message GetEncryptionSpecRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IGetEncryptionSpecRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetEncryptionSpecRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetEncryptionSpecRequest
                     * @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.cloud.dialogflow.v2beta1.GetEncryptionSpecRequest;

                    /**
                     * Decodes a GetEncryptionSpecRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetEncryptionSpecRequest
                     * @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.cloud.dialogflow.v2beta1.GetEncryptionSpecRequest;

                    /**
                     * Verifies a GetEncryptionSpecRequest 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 GetEncryptionSpecRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetEncryptionSpecRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.GetEncryptionSpecRequest;

                    /**
                     * Creates a plain object from a GetEncryptionSpecRequest message. Also converts values to other types if specified.
                     * @param message GetEncryptionSpecRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.GetEncryptionSpecRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetEncryptionSpecRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetEncryptionSpecRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an EncryptionSpec. */
                interface IEncryptionSpec {

                    /** EncryptionSpec name */
                    name?: (string|null);

                    /** EncryptionSpec kmsKey */
                    kmsKey?: (string|null);
                }

                /** Represents an EncryptionSpec. */
                class EncryptionSpec implements IEncryptionSpec {

                    /**
                     * Constructs a new EncryptionSpec.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IEncryptionSpec);

                    /** EncryptionSpec name. */
                    public name: string;

                    /** EncryptionSpec kmsKey. */
                    public kmsKey: string;

                    /**
                     * Creates a new EncryptionSpec instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns EncryptionSpec instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IEncryptionSpec): google.cloud.dialogflow.v2beta1.EncryptionSpec;

                    /**
                     * Encodes the specified EncryptionSpec message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.EncryptionSpec.verify|verify} messages.
                     * @param message EncryptionSpec message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IEncryptionSpec, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified EncryptionSpec message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.EncryptionSpec.verify|verify} messages.
                     * @param message EncryptionSpec message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IEncryptionSpec, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an EncryptionSpec message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns EncryptionSpec
                     * @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.cloud.dialogflow.v2beta1.EncryptionSpec;

                    /**
                     * Decodes an EncryptionSpec message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns EncryptionSpec
                     * @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.cloud.dialogflow.v2beta1.EncryptionSpec;

                    /**
                     * Verifies an EncryptionSpec 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 EncryptionSpec message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns EncryptionSpec
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.EncryptionSpec;

                    /**
                     * Creates a plain object from an EncryptionSpec message. Also converts values to other types if specified.
                     * @param message EncryptionSpec
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.EncryptionSpec, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this EncryptionSpec to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for EncryptionSpec
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InitializeEncryptionSpecRequest. */
                interface IInitializeEncryptionSpecRequest {

                    /** InitializeEncryptionSpecRequest encryptionSpec */
                    encryptionSpec?: (google.cloud.dialogflow.v2beta1.IEncryptionSpec|null);
                }

                /** Represents an InitializeEncryptionSpecRequest. */
                class InitializeEncryptionSpecRequest implements IInitializeEncryptionSpecRequest {

                    /**
                     * Constructs a new InitializeEncryptionSpecRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IInitializeEncryptionSpecRequest);

                    /** InitializeEncryptionSpecRequest encryptionSpec. */
                    public encryptionSpec?: (google.cloud.dialogflow.v2beta1.IEncryptionSpec|null);

                    /**
                     * Creates a new InitializeEncryptionSpecRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InitializeEncryptionSpecRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IInitializeEncryptionSpecRequest): google.cloud.dialogflow.v2beta1.InitializeEncryptionSpecRequest;

                    /**
                     * Encodes the specified InitializeEncryptionSpecRequest message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.InitializeEncryptionSpecRequest.verify|verify} messages.
                     * @param message InitializeEncryptionSpecRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IInitializeEncryptionSpecRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InitializeEncryptionSpecRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.InitializeEncryptionSpecRequest.verify|verify} messages.
                     * @param message InitializeEncryptionSpecRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IInitializeEncryptionSpecRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InitializeEncryptionSpecRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InitializeEncryptionSpecRequest
                     * @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.cloud.dialogflow.v2beta1.InitializeEncryptionSpecRequest;

                    /**
                     * Decodes an InitializeEncryptionSpecRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InitializeEncryptionSpecRequest
                     * @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.cloud.dialogflow.v2beta1.InitializeEncryptionSpecRequest;

                    /**
                     * Verifies an InitializeEncryptionSpecRequest 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 InitializeEncryptionSpecRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InitializeEncryptionSpecRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.InitializeEncryptionSpecRequest;

                    /**
                     * Creates a plain object from an InitializeEncryptionSpecRequest message. Also converts values to other types if specified.
                     * @param message InitializeEncryptionSpecRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.InitializeEncryptionSpecRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InitializeEncryptionSpecRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InitializeEncryptionSpecRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InitializeEncryptionSpecResponse. */
                interface IInitializeEncryptionSpecResponse {
                }

                /** Represents an InitializeEncryptionSpecResponse. */
                class InitializeEncryptionSpecResponse implements IInitializeEncryptionSpecResponse {

                    /**
                     * Constructs a new InitializeEncryptionSpecResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IInitializeEncryptionSpecResponse);

                    /**
                     * Creates a new InitializeEncryptionSpecResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InitializeEncryptionSpecResponse instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IInitializeEncryptionSpecResponse): google.cloud.dialogflow.v2beta1.InitializeEncryptionSpecResponse;

                    /**
                     * Encodes the specified InitializeEncryptionSpecResponse message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.InitializeEncryptionSpecResponse.verify|verify} messages.
                     * @param message InitializeEncryptionSpecResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IInitializeEncryptionSpecResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InitializeEncryptionSpecResponse message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.InitializeEncryptionSpecResponse.verify|verify} messages.
                     * @param message InitializeEncryptionSpecResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IInitializeEncryptionSpecResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InitializeEncryptionSpecResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InitializeEncryptionSpecResponse
                     * @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.cloud.dialogflow.v2beta1.InitializeEncryptionSpecResponse;

                    /**
                     * Decodes an InitializeEncryptionSpecResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InitializeEncryptionSpecResponse
                     * @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.cloud.dialogflow.v2beta1.InitializeEncryptionSpecResponse;

                    /**
                     * Verifies an InitializeEncryptionSpecResponse 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 InitializeEncryptionSpecResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InitializeEncryptionSpecResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.InitializeEncryptionSpecResponse;

                    /**
                     * Creates a plain object from an InitializeEncryptionSpecResponse message. Also converts values to other types if specified.
                     * @param message InitializeEncryptionSpecResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.InitializeEncryptionSpecResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InitializeEncryptionSpecResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InitializeEncryptionSpecResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InitializeEncryptionSpecMetadata. */
                interface IInitializeEncryptionSpecMetadata {

                    /** InitializeEncryptionSpecMetadata request */
                    request?: (google.cloud.dialogflow.v2beta1.IInitializeEncryptionSpecRequest|null);
                }

                /** Represents an InitializeEncryptionSpecMetadata. */
                class InitializeEncryptionSpecMetadata implements IInitializeEncryptionSpecMetadata {

                    /**
                     * Constructs a new InitializeEncryptionSpecMetadata.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IInitializeEncryptionSpecMetadata);

                    /** InitializeEncryptionSpecMetadata request. */
                    public request?: (google.cloud.dialogflow.v2beta1.IInitializeEncryptionSpecRequest|null);

                    /**
                     * Creates a new InitializeEncryptionSpecMetadata instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InitializeEncryptionSpecMetadata instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IInitializeEncryptionSpecMetadata): google.cloud.dialogflow.v2beta1.InitializeEncryptionSpecMetadata;

                    /**
                     * Encodes the specified InitializeEncryptionSpecMetadata message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.InitializeEncryptionSpecMetadata.verify|verify} messages.
                     * @param message InitializeEncryptionSpecMetadata message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IInitializeEncryptionSpecMetadata, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InitializeEncryptionSpecMetadata message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.InitializeEncryptionSpecMetadata.verify|verify} messages.
                     * @param message InitializeEncryptionSpecMetadata message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IInitializeEncryptionSpecMetadata, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InitializeEncryptionSpecMetadata message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InitializeEncryptionSpecMetadata
                     * @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.cloud.dialogflow.v2beta1.InitializeEncryptionSpecMetadata;

                    /**
                     * Decodes an InitializeEncryptionSpecMetadata message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InitializeEncryptionSpecMetadata
                     * @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.cloud.dialogflow.v2beta1.InitializeEncryptionSpecMetadata;

                    /**
                     * Verifies an InitializeEncryptionSpecMetadata 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 InitializeEncryptionSpecMetadata message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InitializeEncryptionSpecMetadata
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.InitializeEncryptionSpecMetadata;

                    /**
                     * Creates a plain object from an InitializeEncryptionSpecMetadata message. Also converts values to other types if specified.
                     * @param message InitializeEncryptionSpecMetadata
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.InitializeEncryptionSpecMetadata, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InitializeEncryptionSpecMetadata to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InitializeEncryptionSpecMetadata
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Represents an Environments */
                class Environments extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new Environments 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 Environments 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): Environments;

                    /**
                     * Calls ListEnvironments.
                     * @param request ListEnvironmentsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ListEnvironmentsResponse
                     */
                    public listEnvironments(request: google.cloud.dialogflow.v2beta1.IListEnvironmentsRequest, callback: google.cloud.dialogflow.v2beta1.Environments.ListEnvironmentsCallback): void;

                    /**
                     * Calls ListEnvironments.
                     * @param request ListEnvironmentsRequest message or plain object
                     * @returns Promise
                     */
                    public listEnvironments(request: google.cloud.dialogflow.v2beta1.IListEnvironmentsRequest): Promise<google.cloud.dialogflow.v2beta1.ListEnvironmentsResponse>;

                    /**
                     * Calls GetEnvironment.
                     * @param request GetEnvironmentRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Environment
                     */
                    public getEnvironment(request: google.cloud.dialogflow.v2beta1.IGetEnvironmentRequest, callback: google.cloud.dialogflow.v2beta1.Environments.GetEnvironmentCallback): void;

                    /**
                     * Calls GetEnvironment.
                     * @param request GetEnvironmentRequest message or plain object
                     * @returns Promise
                     */
                    public getEnvironment(request: google.cloud.dialogflow.v2beta1.IGetEnvironmentRequest): Promise<google.cloud.dialogflow.v2beta1.Environment>;

                    /**
                     * Calls CreateEnvironment.
                     * @param request CreateEnvironmentRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Environment
                     */
                    public createEnvironment(request: google.cloud.dialogflow.v2beta1.ICreateEnvironmentRequest, callback: google.cloud.dialogflow.v2beta1.Environments.CreateEnvironmentCallback): void;

                    /**
                     * Calls CreateEnvironment.
                     * @param request CreateEnvironmentRequest message or plain object
                     * @returns Promise
                     */
                    public createEnvironment(request: google.cloud.dialogflow.v2beta1.ICreateEnvironmentRequest): Promise<google.cloud.dialogflow.v2beta1.Environment>;

                    /**
                     * Calls UpdateEnvironment.
                     * @param request UpdateEnvironmentRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Environment
                     */
                    public updateEnvironment(request: google.cloud.dialogflow.v2beta1.IUpdateEnvironmentRequest, callback: google.cloud.dialogflow.v2beta1.Environments.UpdateEnvironmentCallback): void;

                    /**
                     * Calls UpdateEnvironment.
                     * @param request UpdateEnvironmentRequest message or plain object
                     * @returns Promise
                     */
                    public updateEnvironment(request: google.cloud.dialogflow.v2beta1.IUpdateEnvironmentRequest): Promise<google.cloud.dialogflow.v2beta1.Environment>;

                    /**
                     * Calls DeleteEnvironment.
                     * @param request DeleteEnvironmentRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Empty
                     */
                    public deleteEnvironment(request: google.cloud.dialogflow.v2beta1.IDeleteEnvironmentRequest, callback: google.cloud.dialogflow.v2beta1.Environments.DeleteEnvironmentCallback): void;

                    /**
                     * Calls DeleteEnvironment.
                     * @param request DeleteEnvironmentRequest message or plain object
                     * @returns Promise
                     */
                    public deleteEnvironment(request: google.cloud.dialogflow.v2beta1.IDeleteEnvironmentRequest): Promise<google.protobuf.Empty>;

                    /**
                     * Calls GetEnvironmentHistory.
                     * @param request GetEnvironmentHistoryRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and EnvironmentHistory
                     */
                    public getEnvironmentHistory(request: google.cloud.dialogflow.v2beta1.IGetEnvironmentHistoryRequest, callback: google.cloud.dialogflow.v2beta1.Environments.GetEnvironmentHistoryCallback): void;

                    /**
                     * Calls GetEnvironmentHistory.
                     * @param request GetEnvironmentHistoryRequest message or plain object
                     * @returns Promise
                     */
                    public getEnvironmentHistory(request: google.cloud.dialogflow.v2beta1.IGetEnvironmentHistoryRequest): Promise<google.cloud.dialogflow.v2beta1.EnvironmentHistory>;
                }

                namespace Environments {

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2beta1.Environments|listEnvironments}.
                     * @param error Error, if any
                     * @param [response] ListEnvironmentsResponse
                     */
                    type ListEnvironmentsCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2beta1.ListEnvironmentsResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2beta1.Environments|getEnvironment}.
                     * @param error Error, if any
                     * @param [response] Environment
                     */
                    type GetEnvironmentCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2beta1.Environment) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2beta1.Environments|createEnvironment}.
                     * @param error Error, if any
                     * @param [response] Environment
                     */
                    type CreateEnvironmentCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2beta1.Environment) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2beta1.Environments|updateEnvironment}.
                     * @param error Error, if any
                     * @param [response] Environment
                     */
                    type UpdateEnvironmentCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2beta1.Environment) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2beta1.Environments|deleteEnvironment}.
                     * @param error Error, if any
                     * @param [response] Empty
                     */
                    type DeleteEnvironmentCallback = (error: (Error|null), response?: google.protobuf.Empty) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2beta1.Environments|getEnvironmentHistory}.
                     * @param error Error, if any
                     * @param [response] EnvironmentHistory
                     */
                    type GetEnvironmentHistoryCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2beta1.EnvironmentHistory) => void;
                }

                /** Properties of an Environment. */
                interface IEnvironment {

                    /** Environment name */
                    name?: (string|null);

                    /** Environment description */
                    description?: (string|null);

                    /** Environment agentVersion */
                    agentVersion?: (string|null);

                    /** Environment state */
                    state?: (google.cloud.dialogflow.v2beta1.Environment.State|keyof typeof google.cloud.dialogflow.v2beta1.Environment.State|null);

                    /** Environment updateTime */
                    updateTime?: (google.protobuf.ITimestamp|null);

                    /** Environment textToSpeechSettings */
                    textToSpeechSettings?: (google.cloud.dialogflow.v2beta1.ITextToSpeechSettings|null);

                    /** Environment fulfillment */
                    fulfillment?: (google.cloud.dialogflow.v2beta1.IFulfillment|null);
                }

                /** Represents an Environment. */
                class Environment implements IEnvironment {

                    /**
                     * Constructs a new Environment.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IEnvironment);

                    /** Environment name. */
                    public name: string;

                    /** Environment description. */
                    public description: string;

                    /** Environment agentVersion. */
                    public agentVersion: string;

                    /** Environment state. */
                    public state: (google.cloud.dialogflow.v2beta1.Environment.State|keyof typeof google.cloud.dialogflow.v2beta1.Environment.State);

                    /** Environment updateTime. */
                    public updateTime?: (google.protobuf.ITimestamp|null);

                    /** Environment textToSpeechSettings. */
                    public textToSpeechSettings?: (google.cloud.dialogflow.v2beta1.ITextToSpeechSettings|null);

                    /** Environment fulfillment. */
                    public fulfillment?: (google.cloud.dialogflow.v2beta1.IFulfillment|null);

                    /**
                     * Creates a new Environment instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Environment instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IEnvironment): google.cloud.dialogflow.v2beta1.Environment;

                    /**
                     * Encodes the specified Environment message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Environment.verify|verify} messages.
                     * @param message Environment message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IEnvironment, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Environment message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Environment.verify|verify} messages.
                     * @param message Environment message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IEnvironment, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an Environment message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Environment
                     * @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.cloud.dialogflow.v2beta1.Environment;

                    /**
                     * Decodes an Environment message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Environment
                     * @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.cloud.dialogflow.v2beta1.Environment;

                    /**
                     * Verifies an Environment 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 Environment message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Environment
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.Environment;

                    /**
                     * Creates a plain object from an Environment message. Also converts values to other types if specified.
                     * @param message Environment
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.Environment, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Environment to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Environment
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace Environment {

                    /** State enum. */
                    enum State {
                        STATE_UNSPECIFIED = 0,
                        STOPPED = 1,
                        LOADING = 2,
                        RUNNING = 3
                    }
                }

                /** Properties of a TextToSpeechSettings. */
                interface ITextToSpeechSettings {

                    /** TextToSpeechSettings enableTextToSpeech */
                    enableTextToSpeech?: (boolean|null);

                    /** TextToSpeechSettings outputAudioEncoding */
                    outputAudioEncoding?: (google.cloud.dialogflow.v2beta1.OutputAudioEncoding|keyof typeof google.cloud.dialogflow.v2beta1.OutputAudioEncoding|null);

                    /** TextToSpeechSettings sampleRateHertz */
                    sampleRateHertz?: (number|null);

                    /** TextToSpeechSettings synthesizeSpeechConfigs */
                    synthesizeSpeechConfigs?: ({ [k: string]: google.cloud.dialogflow.v2beta1.ISynthesizeSpeechConfig }|null);
                }

                /** Represents a TextToSpeechSettings. */
                class TextToSpeechSettings implements ITextToSpeechSettings {

                    /**
                     * Constructs a new TextToSpeechSettings.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.ITextToSpeechSettings);

                    /** TextToSpeechSettings enableTextToSpeech. */
                    public enableTextToSpeech: boolean;

                    /** TextToSpeechSettings outputAudioEncoding. */
                    public outputAudioEncoding: (google.cloud.dialogflow.v2beta1.OutputAudioEncoding|keyof typeof google.cloud.dialogflow.v2beta1.OutputAudioEncoding);

                    /** TextToSpeechSettings sampleRateHertz. */
                    public sampleRateHertz: number;

                    /** TextToSpeechSettings synthesizeSpeechConfigs. */
                    public synthesizeSpeechConfigs: { [k: string]: google.cloud.dialogflow.v2beta1.ISynthesizeSpeechConfig };

                    /**
                     * Creates a new TextToSpeechSettings instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TextToSpeechSettings instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.ITextToSpeechSettings): google.cloud.dialogflow.v2beta1.TextToSpeechSettings;

                    /**
                     * Encodes the specified TextToSpeechSettings message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.TextToSpeechSettings.verify|verify} messages.
                     * @param message TextToSpeechSettings message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.ITextToSpeechSettings, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TextToSpeechSettings message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.TextToSpeechSettings.verify|verify} messages.
                     * @param message TextToSpeechSettings message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.ITextToSpeechSettings, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TextToSpeechSettings message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TextToSpeechSettings
                     * @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.cloud.dialogflow.v2beta1.TextToSpeechSettings;

                    /**
                     * Decodes a TextToSpeechSettings message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TextToSpeechSettings
                     * @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.cloud.dialogflow.v2beta1.TextToSpeechSettings;

                    /**
                     * Verifies a TextToSpeechSettings 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 TextToSpeechSettings message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TextToSpeechSettings
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.TextToSpeechSettings;

                    /**
                     * Creates a plain object from a TextToSpeechSettings message. Also converts values to other types if specified.
                     * @param message TextToSpeechSettings
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.TextToSpeechSettings, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TextToSpeechSettings to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TextToSpeechSettings
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListEnvironmentsRequest. */
                interface IListEnvironmentsRequest {

                    /** ListEnvironmentsRequest parent */
                    parent?: (string|null);

                    /** ListEnvironmentsRequest pageSize */
                    pageSize?: (number|null);

                    /** ListEnvironmentsRequest pageToken */
                    pageToken?: (string|null);
                }

                /** Represents a ListEnvironmentsRequest. */
                class ListEnvironmentsRequest implements IListEnvironmentsRequest {

                    /**
                     * Constructs a new ListEnvironmentsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IListEnvironmentsRequest);

                    /** ListEnvironmentsRequest parent. */
                    public parent: string;

                    /** ListEnvironmentsRequest pageSize. */
                    public pageSize: number;

                    /** ListEnvironmentsRequest pageToken. */
                    public pageToken: string;

                    /**
                     * Creates a new ListEnvironmentsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListEnvironmentsRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IListEnvironmentsRequest): google.cloud.dialogflow.v2beta1.ListEnvironmentsRequest;

                    /**
                     * Encodes the specified ListEnvironmentsRequest message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.ListEnvironmentsRequest.verify|verify} messages.
                     * @param message ListEnvironmentsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IListEnvironmentsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListEnvironmentsRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.ListEnvironmentsRequest.verify|verify} messages.
                     * @param message ListEnvironmentsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IListEnvironmentsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListEnvironmentsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListEnvironmentsRequest
                     * @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.cloud.dialogflow.v2beta1.ListEnvironmentsRequest;

                    /**
                     * Decodes a ListEnvironmentsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListEnvironmentsRequest
                     * @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.cloud.dialogflow.v2beta1.ListEnvironmentsRequest;

                    /**
                     * Verifies a ListEnvironmentsRequest 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 ListEnvironmentsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListEnvironmentsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.ListEnvironmentsRequest;

                    /**
                     * Creates a plain object from a ListEnvironmentsRequest message. Also converts values to other types if specified.
                     * @param message ListEnvironmentsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.ListEnvironmentsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListEnvironmentsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListEnvironmentsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListEnvironmentsResponse. */
                interface IListEnvironmentsResponse {

                    /** ListEnvironmentsResponse environments */
                    environments?: (google.cloud.dialogflow.v2beta1.IEnvironment[]|null);

                    /** ListEnvironmentsResponse nextPageToken */
                    nextPageToken?: (string|null);
                }

                /** Represents a ListEnvironmentsResponse. */
                class ListEnvironmentsResponse implements IListEnvironmentsResponse {

                    /**
                     * Constructs a new ListEnvironmentsResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IListEnvironmentsResponse);

                    /** ListEnvironmentsResponse environments. */
                    public environments: google.cloud.dialogflow.v2beta1.IEnvironment[];

                    /** ListEnvironmentsResponse nextPageToken. */
                    public nextPageToken: string;

                    /**
                     * Creates a new ListEnvironmentsResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListEnvironmentsResponse instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IListEnvironmentsResponse): google.cloud.dialogflow.v2beta1.ListEnvironmentsResponse;

                    /**
                     * Encodes the specified ListEnvironmentsResponse message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.ListEnvironmentsResponse.verify|verify} messages.
                     * @param message ListEnvironmentsResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IListEnvironmentsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListEnvironmentsResponse message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.ListEnvironmentsResponse.verify|verify} messages.
                     * @param message ListEnvironmentsResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IListEnvironmentsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListEnvironmentsResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListEnvironmentsResponse
                     * @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.cloud.dialogflow.v2beta1.ListEnvironmentsResponse;

                    /**
                     * Decodes a ListEnvironmentsResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListEnvironmentsResponse
                     * @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.cloud.dialogflow.v2beta1.ListEnvironmentsResponse;

                    /**
                     * Verifies a ListEnvironmentsResponse 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 ListEnvironmentsResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListEnvironmentsResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.ListEnvironmentsResponse;

                    /**
                     * Creates a plain object from a ListEnvironmentsResponse message. Also converts values to other types if specified.
                     * @param message ListEnvironmentsResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.ListEnvironmentsResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListEnvironmentsResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListEnvironmentsResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetEnvironmentRequest. */
                interface IGetEnvironmentRequest {

                    /** GetEnvironmentRequest name */
                    name?: (string|null);
                }

                /** Represents a GetEnvironmentRequest. */
                class GetEnvironmentRequest implements IGetEnvironmentRequest {

                    /**
                     * Constructs a new GetEnvironmentRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IGetEnvironmentRequest);

                    /** GetEnvironmentRequest name. */
                    public name: string;

                    /**
                     * Creates a new GetEnvironmentRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetEnvironmentRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IGetEnvironmentRequest): google.cloud.dialogflow.v2beta1.GetEnvironmentRequest;

                    /**
                     * Encodes the specified GetEnvironmentRequest message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.GetEnvironmentRequest.verify|verify} messages.
                     * @param message GetEnvironmentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IGetEnvironmentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetEnvironmentRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.GetEnvironmentRequest.verify|verify} messages.
                     * @param message GetEnvironmentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IGetEnvironmentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetEnvironmentRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetEnvironmentRequest
                     * @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.cloud.dialogflow.v2beta1.GetEnvironmentRequest;

                    /**
                     * Decodes a GetEnvironmentRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetEnvironmentRequest
                     * @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.cloud.dialogflow.v2beta1.GetEnvironmentRequest;

                    /**
                     * Verifies a GetEnvironmentRequest 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 GetEnvironmentRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetEnvironmentRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.GetEnvironmentRequest;

                    /**
                     * Creates a plain object from a GetEnvironmentRequest message. Also converts values to other types if specified.
                     * @param message GetEnvironmentRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.GetEnvironmentRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetEnvironmentRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetEnvironmentRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a CreateEnvironmentRequest. */
                interface ICreateEnvironmentRequest {

                    /** CreateEnvironmentRequest parent */
                    parent?: (string|null);

                    /** CreateEnvironmentRequest environment */
                    environment?: (google.cloud.dialogflow.v2beta1.IEnvironment|null);

                    /** CreateEnvironmentRequest environmentId */
                    environmentId?: (string|null);
                }

                /** Represents a CreateEnvironmentRequest. */
                class CreateEnvironmentRequest implements ICreateEnvironmentRequest {

                    /**
                     * Constructs a new CreateEnvironmentRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.ICreateEnvironmentRequest);

                    /** CreateEnvironmentRequest parent. */
                    public parent: string;

                    /** CreateEnvironmentRequest environment. */
                    public environment?: (google.cloud.dialogflow.v2beta1.IEnvironment|null);

                    /** CreateEnvironmentRequest environmentId. */
                    public environmentId: string;

                    /**
                     * Creates a new CreateEnvironmentRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CreateEnvironmentRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.ICreateEnvironmentRequest): google.cloud.dialogflow.v2beta1.CreateEnvironmentRequest;

                    /**
                     * Encodes the specified CreateEnvironmentRequest message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.CreateEnvironmentRequest.verify|verify} messages.
                     * @param message CreateEnvironmentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.ICreateEnvironmentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CreateEnvironmentRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.CreateEnvironmentRequest.verify|verify} messages.
                     * @param message CreateEnvironmentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.ICreateEnvironmentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CreateEnvironmentRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CreateEnvironmentRequest
                     * @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.cloud.dialogflow.v2beta1.CreateEnvironmentRequest;

                    /**
                     * Decodes a CreateEnvironmentRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CreateEnvironmentRequest
                     * @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.cloud.dialogflow.v2beta1.CreateEnvironmentRequest;

                    /**
                     * Verifies a CreateEnvironmentRequest 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 CreateEnvironmentRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CreateEnvironmentRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.CreateEnvironmentRequest;

                    /**
                     * Creates a plain object from a CreateEnvironmentRequest message. Also converts values to other types if specified.
                     * @param message CreateEnvironmentRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.CreateEnvironmentRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CreateEnvironmentRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CreateEnvironmentRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an UpdateEnvironmentRequest. */
                interface IUpdateEnvironmentRequest {

                    /** UpdateEnvironmentRequest environment */
                    environment?: (google.cloud.dialogflow.v2beta1.IEnvironment|null);

                    /** UpdateEnvironmentRequest updateMask */
                    updateMask?: (google.protobuf.IFieldMask|null);

                    /** UpdateEnvironmentRequest allowLoadToDraftAndDiscardChanges */
                    allowLoadToDraftAndDiscardChanges?: (boolean|null);
                }

                /** Represents an UpdateEnvironmentRequest. */
                class UpdateEnvironmentRequest implements IUpdateEnvironmentRequest {

                    /**
                     * Constructs a new UpdateEnvironmentRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IUpdateEnvironmentRequest);

                    /** UpdateEnvironmentRequest environment. */
                    public environment?: (google.cloud.dialogflow.v2beta1.IEnvironment|null);

                    /** UpdateEnvironmentRequest updateMask. */
                    public updateMask?: (google.protobuf.IFieldMask|null);

                    /** UpdateEnvironmentRequest allowLoadToDraftAndDiscardChanges. */
                    public allowLoadToDraftAndDiscardChanges: boolean;

                    /**
                     * Creates a new UpdateEnvironmentRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UpdateEnvironmentRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IUpdateEnvironmentRequest): google.cloud.dialogflow.v2beta1.UpdateEnvironmentRequest;

                    /**
                     * Encodes the specified UpdateEnvironmentRequest message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.UpdateEnvironmentRequest.verify|verify} messages.
                     * @param message UpdateEnvironmentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IUpdateEnvironmentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified UpdateEnvironmentRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.UpdateEnvironmentRequest.verify|verify} messages.
                     * @param message UpdateEnvironmentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IUpdateEnvironmentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an UpdateEnvironmentRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns UpdateEnvironmentRequest
                     * @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.cloud.dialogflow.v2beta1.UpdateEnvironmentRequest;

                    /**
                     * Decodes an UpdateEnvironmentRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns UpdateEnvironmentRequest
                     * @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.cloud.dialogflow.v2beta1.UpdateEnvironmentRequest;

                    /**
                     * Verifies an UpdateEnvironmentRequest 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 UpdateEnvironmentRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UpdateEnvironmentRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.UpdateEnvironmentRequest;

                    /**
                     * Creates a plain object from an UpdateEnvironmentRequest message. Also converts values to other types if specified.
                     * @param message UpdateEnvironmentRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.UpdateEnvironmentRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this UpdateEnvironmentRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for UpdateEnvironmentRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteEnvironmentRequest. */
                interface IDeleteEnvironmentRequest {

                    /** DeleteEnvironmentRequest name */
                    name?: (string|null);
                }

                /** Represents a DeleteEnvironmentRequest. */
                class DeleteEnvironmentRequest implements IDeleteEnvironmentRequest {

                    /**
                     * Constructs a new DeleteEnvironmentRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IDeleteEnvironmentRequest);

                    /** DeleteEnvironmentRequest name. */
                    public name: string;

                    /**
                     * Creates a new DeleteEnvironmentRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteEnvironmentRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IDeleteEnvironmentRequest): google.cloud.dialogflow.v2beta1.DeleteEnvironmentRequest;

                    /**
                     * Encodes the specified DeleteEnvironmentRequest message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.DeleteEnvironmentRequest.verify|verify} messages.
                     * @param message DeleteEnvironmentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IDeleteEnvironmentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteEnvironmentRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.DeleteEnvironmentRequest.verify|verify} messages.
                     * @param message DeleteEnvironmentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IDeleteEnvironmentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteEnvironmentRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteEnvironmentRequest
                     * @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.cloud.dialogflow.v2beta1.DeleteEnvironmentRequest;

                    /**
                     * Decodes a DeleteEnvironmentRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteEnvironmentRequest
                     * @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.cloud.dialogflow.v2beta1.DeleteEnvironmentRequest;

                    /**
                     * Verifies a DeleteEnvironmentRequest 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 DeleteEnvironmentRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteEnvironmentRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.DeleteEnvironmentRequest;

                    /**
                     * Creates a plain object from a DeleteEnvironmentRequest message. Also converts values to other types if specified.
                     * @param message DeleteEnvironmentRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.DeleteEnvironmentRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteEnvironmentRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteEnvironmentRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetEnvironmentHistoryRequest. */
                interface IGetEnvironmentHistoryRequest {

                    /** GetEnvironmentHistoryRequest parent */
                    parent?: (string|null);

                    /** GetEnvironmentHistoryRequest pageSize */
                    pageSize?: (number|null);

                    /** GetEnvironmentHistoryRequest pageToken */
                    pageToken?: (string|null);
                }

                /** Represents a GetEnvironmentHistoryRequest. */
                class GetEnvironmentHistoryRequest implements IGetEnvironmentHistoryRequest {

                    /**
                     * Constructs a new GetEnvironmentHistoryRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IGetEnvironmentHistoryRequest);

                    /** GetEnvironmentHistoryRequest parent. */
                    public parent: string;

                    /** GetEnvironmentHistoryRequest pageSize. */
                    public pageSize: number;

                    /** GetEnvironmentHistoryRequest pageToken. */
                    public pageToken: string;

                    /**
                     * Creates a new GetEnvironmentHistoryRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetEnvironmentHistoryRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IGetEnvironmentHistoryRequest): google.cloud.dialogflow.v2beta1.GetEnvironmentHistoryRequest;

                    /**
                     * Encodes the specified GetEnvironmentHistoryRequest message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.GetEnvironmentHistoryRequest.verify|verify} messages.
                     * @param message GetEnvironmentHistoryRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IGetEnvironmentHistoryRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetEnvironmentHistoryRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.GetEnvironmentHistoryRequest.verify|verify} messages.
                     * @param message GetEnvironmentHistoryRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IGetEnvironmentHistoryRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetEnvironmentHistoryRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetEnvironmentHistoryRequest
                     * @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.cloud.dialogflow.v2beta1.GetEnvironmentHistoryRequest;

                    /**
                     * Decodes a GetEnvironmentHistoryRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetEnvironmentHistoryRequest
                     * @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.cloud.dialogflow.v2beta1.GetEnvironmentHistoryRequest;

                    /**
                     * Verifies a GetEnvironmentHistoryRequest 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 GetEnvironmentHistoryRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetEnvironmentHistoryRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.GetEnvironmentHistoryRequest;

                    /**
                     * Creates a plain object from a GetEnvironmentHistoryRequest message. Also converts values to other types if specified.
                     * @param message GetEnvironmentHistoryRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.GetEnvironmentHistoryRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetEnvironmentHistoryRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetEnvironmentHistoryRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an EnvironmentHistory. */
                interface IEnvironmentHistory {

                    /** EnvironmentHistory parent */
                    parent?: (string|null);

                    /** EnvironmentHistory entries */
                    entries?: (google.cloud.dialogflow.v2beta1.EnvironmentHistory.IEntry[]|null);

                    /** EnvironmentHistory nextPageToken */
                    nextPageToken?: (string|null);
                }

                /** Represents an EnvironmentHistory. */
                class EnvironmentHistory implements IEnvironmentHistory {

                    /**
                     * Constructs a new EnvironmentHistory.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IEnvironmentHistory);

                    /** EnvironmentHistory parent. */
                    public parent: string;

                    /** EnvironmentHistory entries. */
                    public entries: google.cloud.dialogflow.v2beta1.EnvironmentHistory.IEntry[];

                    /** EnvironmentHistory nextPageToken. */
                    public nextPageToken: string;

                    /**
                     * Creates a new EnvironmentHistory instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns EnvironmentHistory instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IEnvironmentHistory): google.cloud.dialogflow.v2beta1.EnvironmentHistory;

                    /**
                     * Encodes the specified EnvironmentHistory message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.EnvironmentHistory.verify|verify} messages.
                     * @param message EnvironmentHistory message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IEnvironmentHistory, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified EnvironmentHistory message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.EnvironmentHistory.verify|verify} messages.
                     * @param message EnvironmentHistory message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IEnvironmentHistory, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an EnvironmentHistory message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns EnvironmentHistory
                     * @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.cloud.dialogflow.v2beta1.EnvironmentHistory;

                    /**
                     * Decodes an EnvironmentHistory message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns EnvironmentHistory
                     * @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.cloud.dialogflow.v2beta1.EnvironmentHistory;

                    /**
                     * Verifies an EnvironmentHistory 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 EnvironmentHistory message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns EnvironmentHistory
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.EnvironmentHistory;

                    /**
                     * Creates a plain object from an EnvironmentHistory message. Also converts values to other types if specified.
                     * @param message EnvironmentHistory
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.EnvironmentHistory, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this EnvironmentHistory to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for EnvironmentHistory
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace EnvironmentHistory {

                    /** Properties of an Entry. */
                    interface IEntry {

                        /** Entry agentVersion */
                        agentVersion?: (string|null);

                        /** Entry description */
                        description?: (string|null);

                        /** Entry createTime */
                        createTime?: (google.protobuf.ITimestamp|null);
                    }

                    /** Represents an Entry. */
                    class Entry implements IEntry {

                        /**
                         * Constructs a new Entry.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2beta1.EnvironmentHistory.IEntry);

                        /** Entry agentVersion. */
                        public agentVersion: string;

                        /** Entry description. */
                        public description: string;

                        /** Entry createTime. */
                        public createTime?: (google.protobuf.ITimestamp|null);

                        /**
                         * Creates a new Entry instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns Entry instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2beta1.EnvironmentHistory.IEntry): google.cloud.dialogflow.v2beta1.EnvironmentHistory.Entry;

                        /**
                         * Encodes the specified Entry message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.EnvironmentHistory.Entry.verify|verify} messages.
                         * @param message Entry message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2beta1.EnvironmentHistory.IEntry, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified Entry message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.EnvironmentHistory.Entry.verify|verify} messages.
                         * @param message Entry message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.EnvironmentHistory.IEntry, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes an Entry message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns Entry
                         * @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.cloud.dialogflow.v2beta1.EnvironmentHistory.Entry;

                        /**
                         * Decodes an Entry message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns Entry
                         * @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.cloud.dialogflow.v2beta1.EnvironmentHistory.Entry;

                        /**
                         * Verifies an Entry 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 Entry message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns Entry
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.EnvironmentHistory.Entry;

                        /**
                         * Creates a plain object from an Entry message. Also converts values to other types if specified.
                         * @param message Entry
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.dialogflow.v2beta1.EnvironmentHistory.Entry, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this Entry to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for Entry
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }
                }

                /** Represents a Fulfillments */
                class Fulfillments extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new Fulfillments 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 Fulfillments 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): Fulfillments;

                    /**
                     * Calls GetFulfillment.
                     * @param request GetFulfillmentRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Fulfillment
                     */
                    public getFulfillment(request: google.cloud.dialogflow.v2beta1.IGetFulfillmentRequest, callback: google.cloud.dialogflow.v2beta1.Fulfillments.GetFulfillmentCallback): void;

                    /**
                     * Calls GetFulfillment.
                     * @param request GetFulfillmentRequest message or plain object
                     * @returns Promise
                     */
                    public getFulfillment(request: google.cloud.dialogflow.v2beta1.IGetFulfillmentRequest): Promise<google.cloud.dialogflow.v2beta1.Fulfillment>;

                    /**
                     * Calls UpdateFulfillment.
                     * @param request UpdateFulfillmentRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Fulfillment
                     */
                    public updateFulfillment(request: google.cloud.dialogflow.v2beta1.IUpdateFulfillmentRequest, callback: google.cloud.dialogflow.v2beta1.Fulfillments.UpdateFulfillmentCallback): void;

                    /**
                     * Calls UpdateFulfillment.
                     * @param request UpdateFulfillmentRequest message or plain object
                     * @returns Promise
                     */
                    public updateFulfillment(request: google.cloud.dialogflow.v2beta1.IUpdateFulfillmentRequest): Promise<google.cloud.dialogflow.v2beta1.Fulfillment>;
                }

                namespace Fulfillments {

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2beta1.Fulfillments|getFulfillment}.
                     * @param error Error, if any
                     * @param [response] Fulfillment
                     */
                    type GetFulfillmentCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2beta1.Fulfillment) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2beta1.Fulfillments|updateFulfillment}.
                     * @param error Error, if any
                     * @param [response] Fulfillment
                     */
                    type UpdateFulfillmentCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2beta1.Fulfillment) => void;
                }

                /** Properties of a Fulfillment. */
                interface IFulfillment {

                    /** Fulfillment name */
                    name?: (string|null);

                    /** Fulfillment displayName */
                    displayName?: (string|null);

                    /** Fulfillment genericWebService */
                    genericWebService?: (google.cloud.dialogflow.v2beta1.Fulfillment.IGenericWebService|null);

                    /** Fulfillment enabled */
                    enabled?: (boolean|null);

                    /** Fulfillment features */
                    features?: (google.cloud.dialogflow.v2beta1.Fulfillment.IFeature[]|null);
                }

                /** Represents a Fulfillment. */
                class Fulfillment implements IFulfillment {

                    /**
                     * Constructs a new Fulfillment.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IFulfillment);

                    /** Fulfillment name. */
                    public name: string;

                    /** Fulfillment displayName. */
                    public displayName: string;

                    /** Fulfillment genericWebService. */
                    public genericWebService?: (google.cloud.dialogflow.v2beta1.Fulfillment.IGenericWebService|null);

                    /** Fulfillment enabled. */
                    public enabled: boolean;

                    /** Fulfillment features. */
                    public features: google.cloud.dialogflow.v2beta1.Fulfillment.IFeature[];

                    /** Fulfillment fulfillment. */
                    public fulfillment?: "genericWebService";

                    /**
                     * Creates a new Fulfillment instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Fulfillment instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IFulfillment): google.cloud.dialogflow.v2beta1.Fulfillment;

                    /**
                     * Encodes the specified Fulfillment message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Fulfillment.verify|verify} messages.
                     * @param message Fulfillment message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IFulfillment, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Fulfillment message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Fulfillment.verify|verify} messages.
                     * @param message Fulfillment message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IFulfillment, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a Fulfillment message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Fulfillment
                     * @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.cloud.dialogflow.v2beta1.Fulfillment;

                    /**
                     * Decodes a Fulfillment message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Fulfillment
                     * @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.cloud.dialogflow.v2beta1.Fulfillment;

                    /**
                     * Verifies a Fulfillment 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 Fulfillment message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Fulfillment
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.Fulfillment;

                    /**
                     * Creates a plain object from a Fulfillment message. Also converts values to other types if specified.
                     * @param message Fulfillment
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.Fulfillment, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Fulfillment to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Fulfillment
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace Fulfillment {

                    /** Properties of a GenericWebService. */
                    interface IGenericWebService {

                        /** GenericWebService uri */
                        uri?: (string|null);

                        /** GenericWebService username */
                        username?: (string|null);

                        /** GenericWebService password */
                        password?: (string|null);

                        /** GenericWebService requestHeaders */
                        requestHeaders?: ({ [k: string]: string }|null);

                        /** GenericWebService isCloudFunction */
                        isCloudFunction?: (boolean|null);
                    }

                    /** Represents a GenericWebService. */
                    class GenericWebService implements IGenericWebService {

                        /**
                         * Constructs a new GenericWebService.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2beta1.Fulfillment.IGenericWebService);

                        /** GenericWebService uri. */
                        public uri: string;

                        /** GenericWebService username. */
                        public username: string;

                        /** GenericWebService password. */
                        public password: string;

                        /** GenericWebService requestHeaders. */
                        public requestHeaders: { [k: string]: string };

                        /** GenericWebService isCloudFunction. */
                        public isCloudFunction: boolean;

                        /**
                         * Creates a new GenericWebService instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns GenericWebService instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2beta1.Fulfillment.IGenericWebService): google.cloud.dialogflow.v2beta1.Fulfillment.GenericWebService;

                        /**
                         * Encodes the specified GenericWebService message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Fulfillment.GenericWebService.verify|verify} messages.
                         * @param message GenericWebService message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2beta1.Fulfillment.IGenericWebService, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified GenericWebService message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Fulfillment.GenericWebService.verify|verify} messages.
                         * @param message GenericWebService message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.Fulfillment.IGenericWebService, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a GenericWebService message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns GenericWebService
                         * @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.cloud.dialogflow.v2beta1.Fulfillment.GenericWebService;

                        /**
                         * Decodes a GenericWebService message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns GenericWebService
                         * @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.cloud.dialogflow.v2beta1.Fulfillment.GenericWebService;

                        /**
                         * Verifies a GenericWebService 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 GenericWebService message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns GenericWebService
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.Fulfillment.GenericWebService;

                        /**
                         * Creates a plain object from a GenericWebService message. Also converts values to other types if specified.
                         * @param message GenericWebService
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.dialogflow.v2beta1.Fulfillment.GenericWebService, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this GenericWebService to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for GenericWebService
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    /** Properties of a Feature. */
                    interface IFeature {

                        /** Feature type */
                        type?: (google.cloud.dialogflow.v2beta1.Fulfillment.Feature.Type|keyof typeof google.cloud.dialogflow.v2beta1.Fulfillment.Feature.Type|null);
                    }

                    /** Represents a Feature. */
                    class Feature implements IFeature {

                        /**
                         * Constructs a new Feature.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2beta1.Fulfillment.IFeature);

                        /** Feature type. */
                        public type: (google.cloud.dialogflow.v2beta1.Fulfillment.Feature.Type|keyof typeof google.cloud.dialogflow.v2beta1.Fulfillment.Feature.Type);

                        /**
                         * Creates a new Feature instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns Feature instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2beta1.Fulfillment.IFeature): google.cloud.dialogflow.v2beta1.Fulfillment.Feature;

                        /**
                         * Encodes the specified Feature message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Fulfillment.Feature.verify|verify} messages.
                         * @param message Feature message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2beta1.Fulfillment.IFeature, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified Feature message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Fulfillment.Feature.verify|verify} messages.
                         * @param message Feature message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.Fulfillment.IFeature, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a Feature message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns Feature
                         * @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.cloud.dialogflow.v2beta1.Fulfillment.Feature;

                        /**
                         * Decodes a Feature message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns Feature
                         * @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.cloud.dialogflow.v2beta1.Fulfillment.Feature;

                        /**
                         * Verifies a Feature 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 Feature message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns Feature
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.Fulfillment.Feature;

                        /**
                         * Creates a plain object from a Feature message. Also converts values to other types if specified.
                         * @param message Feature
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.dialogflow.v2beta1.Fulfillment.Feature, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this Feature to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for Feature
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    namespace Feature {

                        /** Type enum. */
                        enum Type {
                            TYPE_UNSPECIFIED = 0,
                            SMALLTALK = 1
                        }
                    }
                }

                /** Properties of a GetFulfillmentRequest. */
                interface IGetFulfillmentRequest {

                    /** GetFulfillmentRequest name */
                    name?: (string|null);
                }

                /** Represents a GetFulfillmentRequest. */
                class GetFulfillmentRequest implements IGetFulfillmentRequest {

                    /**
                     * Constructs a new GetFulfillmentRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IGetFulfillmentRequest);

                    /** GetFulfillmentRequest name. */
                    public name: string;

                    /**
                     * Creates a new GetFulfillmentRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetFulfillmentRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IGetFulfillmentRequest): google.cloud.dialogflow.v2beta1.GetFulfillmentRequest;

                    /**
                     * Encodes the specified GetFulfillmentRequest message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.GetFulfillmentRequest.verify|verify} messages.
                     * @param message GetFulfillmentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IGetFulfillmentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetFulfillmentRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.GetFulfillmentRequest.verify|verify} messages.
                     * @param message GetFulfillmentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IGetFulfillmentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetFulfillmentRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetFulfillmentRequest
                     * @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.cloud.dialogflow.v2beta1.GetFulfillmentRequest;

                    /**
                     * Decodes a GetFulfillmentRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetFulfillmentRequest
                     * @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.cloud.dialogflow.v2beta1.GetFulfillmentRequest;

                    /**
                     * Verifies a GetFulfillmentRequest 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 GetFulfillmentRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetFulfillmentRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.GetFulfillmentRequest;

                    /**
                     * Creates a plain object from a GetFulfillmentRequest message. Also converts values to other types if specified.
                     * @param message GetFulfillmentRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.GetFulfillmentRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetFulfillmentRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetFulfillmentRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an UpdateFulfillmentRequest. */
                interface IUpdateFulfillmentRequest {

                    /** UpdateFulfillmentRequest fulfillment */
                    fulfillment?: (google.cloud.dialogflow.v2beta1.IFulfillment|null);

                    /** UpdateFulfillmentRequest updateMask */
                    updateMask?: (google.protobuf.IFieldMask|null);
                }

                /** Represents an UpdateFulfillmentRequest. */
                class UpdateFulfillmentRequest implements IUpdateFulfillmentRequest {

                    /**
                     * Constructs a new UpdateFulfillmentRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IUpdateFulfillmentRequest);

                    /** UpdateFulfillmentRequest fulfillment. */
                    public fulfillment?: (google.cloud.dialogflow.v2beta1.IFulfillment|null);

                    /** UpdateFulfillmentRequest updateMask. */
                    public updateMask?: (google.protobuf.IFieldMask|null);

                    /**
                     * Creates a new UpdateFulfillmentRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UpdateFulfillmentRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IUpdateFulfillmentRequest): google.cloud.dialogflow.v2beta1.UpdateFulfillmentRequest;

                    /**
                     * Encodes the specified UpdateFulfillmentRequest message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.UpdateFulfillmentRequest.verify|verify} messages.
                     * @param message UpdateFulfillmentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IUpdateFulfillmentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified UpdateFulfillmentRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.UpdateFulfillmentRequest.verify|verify} messages.
                     * @param message UpdateFulfillmentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IUpdateFulfillmentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an UpdateFulfillmentRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns UpdateFulfillmentRequest
                     * @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.cloud.dialogflow.v2beta1.UpdateFulfillmentRequest;

                    /**
                     * Decodes an UpdateFulfillmentRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns UpdateFulfillmentRequest
                     * @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.cloud.dialogflow.v2beta1.UpdateFulfillmentRequest;

                    /**
                     * Verifies an UpdateFulfillmentRequest 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 UpdateFulfillmentRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UpdateFulfillmentRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.UpdateFulfillmentRequest;

                    /**
                     * Creates a plain object from an UpdateFulfillmentRequest message. Also converts values to other types if specified.
                     * @param message UpdateFulfillmentRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.UpdateFulfillmentRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this UpdateFulfillmentRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for UpdateFulfillmentRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Represents a GeneratorEvaluations */
                class GeneratorEvaluations extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new GeneratorEvaluations 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 GeneratorEvaluations 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): GeneratorEvaluations;

                    /**
                     * Calls CreateGeneratorEvaluation.
                     * @param request CreateGeneratorEvaluationRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public createGeneratorEvaluation(request: google.cloud.dialogflow.v2beta1.ICreateGeneratorEvaluationRequest, callback: google.cloud.dialogflow.v2beta1.GeneratorEvaluations.CreateGeneratorEvaluationCallback): void;

                    /**
                     * Calls CreateGeneratorEvaluation.
                     * @param request CreateGeneratorEvaluationRequest message or plain object
                     * @returns Promise
                     */
                    public createGeneratorEvaluation(request: google.cloud.dialogflow.v2beta1.ICreateGeneratorEvaluationRequest): Promise<google.longrunning.Operation>;

                    /**
                     * Calls GetGeneratorEvaluation.
                     * @param request GetGeneratorEvaluationRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and GeneratorEvaluation
                     */
                    public getGeneratorEvaluation(request: google.cloud.dialogflow.v2beta1.IGetGeneratorEvaluationRequest, callback: google.cloud.dialogflow.v2beta1.GeneratorEvaluations.GetGeneratorEvaluationCallback): void;

                    /**
                     * Calls GetGeneratorEvaluation.
                     * @param request GetGeneratorEvaluationRequest message or plain object
                     * @returns Promise
                     */
                    public getGeneratorEvaluation(request: google.cloud.dialogflow.v2beta1.IGetGeneratorEvaluationRequest): Promise<google.cloud.dialogflow.v2beta1.GeneratorEvaluation>;

                    /**
                     * Calls ListGeneratorEvaluations.
                     * @param request ListGeneratorEvaluationsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ListGeneratorEvaluationsResponse
                     */
                    public listGeneratorEvaluations(request: google.cloud.dialogflow.v2beta1.IListGeneratorEvaluationsRequest, callback: google.cloud.dialogflow.v2beta1.GeneratorEvaluations.ListGeneratorEvaluationsCallback): void;

                    /**
                     * Calls ListGeneratorEvaluations.
                     * @param request ListGeneratorEvaluationsRequest message or plain object
                     * @returns Promise
                     */
                    public listGeneratorEvaluations(request: google.cloud.dialogflow.v2beta1.IListGeneratorEvaluationsRequest): Promise<google.cloud.dialogflow.v2beta1.ListGeneratorEvaluationsResponse>;

                    /**
                     * Calls DeleteGeneratorEvaluation.
                     * @param request DeleteGeneratorEvaluationRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Empty
                     */
                    public deleteGeneratorEvaluation(request: google.cloud.dialogflow.v2beta1.IDeleteGeneratorEvaluationRequest, callback: google.cloud.dialogflow.v2beta1.GeneratorEvaluations.DeleteGeneratorEvaluationCallback): void;

                    /**
                     * Calls DeleteGeneratorEvaluation.
                     * @param request DeleteGeneratorEvaluationRequest message or plain object
                     * @returns Promise
                     */
                    public deleteGeneratorEvaluation(request: google.cloud.dialogflow.v2beta1.IDeleteGeneratorEvaluationRequest): Promise<google.protobuf.Empty>;
                }

                namespace GeneratorEvaluations {

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2beta1.GeneratorEvaluations|createGeneratorEvaluation}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type CreateGeneratorEvaluationCallback = (error: (Error|null), response?: google.longrunning.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2beta1.GeneratorEvaluations|getGeneratorEvaluation}.
                     * @param error Error, if any
                     * @param [response] GeneratorEvaluation
                     */
                    type GetGeneratorEvaluationCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2beta1.GeneratorEvaluation) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2beta1.GeneratorEvaluations|listGeneratorEvaluations}.
                     * @param error Error, if any
                     * @param [response] ListGeneratorEvaluationsResponse
                     */
                    type ListGeneratorEvaluationsCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2beta1.ListGeneratorEvaluationsResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2beta1.GeneratorEvaluations|deleteGeneratorEvaluation}.
                     * @param error Error, if any
                     * @param [response] Empty
                     */
                    type DeleteGeneratorEvaluationCallback = (error: (Error|null), response?: google.protobuf.Empty) => void;
                }

                /** Properties of a CreateGeneratorEvaluationRequest. */
                interface ICreateGeneratorEvaluationRequest {

                    /** CreateGeneratorEvaluationRequest parent */
                    parent?: (string|null);

                    /** CreateGeneratorEvaluationRequest generatorEvaluation */
                    generatorEvaluation?: (google.cloud.dialogflow.v2beta1.IGeneratorEvaluation|null);
                }

                /** Represents a CreateGeneratorEvaluationRequest. */
                class CreateGeneratorEvaluationRequest implements ICreateGeneratorEvaluationRequest {

                    /**
                     * Constructs a new CreateGeneratorEvaluationRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.ICreateGeneratorEvaluationRequest);

                    /** CreateGeneratorEvaluationRequest parent. */
                    public parent: string;

                    /** CreateGeneratorEvaluationRequest generatorEvaluation. */
                    public generatorEvaluation?: (google.cloud.dialogflow.v2beta1.IGeneratorEvaluation|null);

                    /**
                     * Creates a new CreateGeneratorEvaluationRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CreateGeneratorEvaluationRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.ICreateGeneratorEvaluationRequest): google.cloud.dialogflow.v2beta1.CreateGeneratorEvaluationRequest;

                    /**
                     * Encodes the specified CreateGeneratorEvaluationRequest message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.CreateGeneratorEvaluationRequest.verify|verify} messages.
                     * @param message CreateGeneratorEvaluationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.ICreateGeneratorEvaluationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CreateGeneratorEvaluationRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.CreateGeneratorEvaluationRequest.verify|verify} messages.
                     * @param message CreateGeneratorEvaluationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.ICreateGeneratorEvaluationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CreateGeneratorEvaluationRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CreateGeneratorEvaluationRequest
                     * @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.cloud.dialogflow.v2beta1.CreateGeneratorEvaluationRequest;

                    /**
                     * Decodes a CreateGeneratorEvaluationRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CreateGeneratorEvaluationRequest
                     * @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.cloud.dialogflow.v2beta1.CreateGeneratorEvaluationRequest;

                    /**
                     * Verifies a CreateGeneratorEvaluationRequest 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 CreateGeneratorEvaluationRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CreateGeneratorEvaluationRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.CreateGeneratorEvaluationRequest;

                    /**
                     * Creates a plain object from a CreateGeneratorEvaluationRequest message. Also converts values to other types if specified.
                     * @param message CreateGeneratorEvaluationRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.CreateGeneratorEvaluationRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CreateGeneratorEvaluationRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CreateGeneratorEvaluationRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetGeneratorEvaluationRequest. */
                interface IGetGeneratorEvaluationRequest {

                    /** GetGeneratorEvaluationRequest name */
                    name?: (string|null);
                }

                /** Represents a GetGeneratorEvaluationRequest. */
                class GetGeneratorEvaluationRequest implements IGetGeneratorEvaluationRequest {

                    /**
                     * Constructs a new GetGeneratorEvaluationRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IGetGeneratorEvaluationRequest);

                    /** GetGeneratorEvaluationRequest name. */
                    public name: string;

                    /**
                     * Creates a new GetGeneratorEvaluationRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetGeneratorEvaluationRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IGetGeneratorEvaluationRequest): google.cloud.dialogflow.v2beta1.GetGeneratorEvaluationRequest;

                    /**
                     * Encodes the specified GetGeneratorEvaluationRequest message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.GetGeneratorEvaluationRequest.verify|verify} messages.
                     * @param message GetGeneratorEvaluationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IGetGeneratorEvaluationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetGeneratorEvaluationRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.GetGeneratorEvaluationRequest.verify|verify} messages.
                     * @param message GetGeneratorEvaluationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IGetGeneratorEvaluationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetGeneratorEvaluationRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetGeneratorEvaluationRequest
                     * @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.cloud.dialogflow.v2beta1.GetGeneratorEvaluationRequest;

                    /**
                     * Decodes a GetGeneratorEvaluationRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetGeneratorEvaluationRequest
                     * @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.cloud.dialogflow.v2beta1.GetGeneratorEvaluationRequest;

                    /**
                     * Verifies a GetGeneratorEvaluationRequest 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 GetGeneratorEvaluationRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetGeneratorEvaluationRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.GetGeneratorEvaluationRequest;

                    /**
                     * Creates a plain object from a GetGeneratorEvaluationRequest message. Also converts values to other types if specified.
                     * @param message GetGeneratorEvaluationRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.GetGeneratorEvaluationRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetGeneratorEvaluationRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetGeneratorEvaluationRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListGeneratorEvaluationsRequest. */
                interface IListGeneratorEvaluationsRequest {

                    /** ListGeneratorEvaluationsRequest parent */
                    parent?: (string|null);

                    /** ListGeneratorEvaluationsRequest pageSize */
                    pageSize?: (number|null);

                    /** ListGeneratorEvaluationsRequest pageToken */
                    pageToken?: (string|null);
                }

                /** Represents a ListGeneratorEvaluationsRequest. */
                class ListGeneratorEvaluationsRequest implements IListGeneratorEvaluationsRequest {

                    /**
                     * Constructs a new ListGeneratorEvaluationsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IListGeneratorEvaluationsRequest);

                    /** ListGeneratorEvaluationsRequest parent. */
                    public parent: string;

                    /** ListGeneratorEvaluationsRequest pageSize. */
                    public pageSize: number;

                    /** ListGeneratorEvaluationsRequest pageToken. */
                    public pageToken: string;

                    /**
                     * Creates a new ListGeneratorEvaluationsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListGeneratorEvaluationsRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IListGeneratorEvaluationsRequest): google.cloud.dialogflow.v2beta1.ListGeneratorEvaluationsRequest;

                    /**
                     * Encodes the specified ListGeneratorEvaluationsRequest message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.ListGeneratorEvaluationsRequest.verify|verify} messages.
                     * @param message ListGeneratorEvaluationsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IListGeneratorEvaluationsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListGeneratorEvaluationsRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.ListGeneratorEvaluationsRequest.verify|verify} messages.
                     * @param message ListGeneratorEvaluationsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IListGeneratorEvaluationsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListGeneratorEvaluationsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListGeneratorEvaluationsRequest
                     * @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.cloud.dialogflow.v2beta1.ListGeneratorEvaluationsRequest;

                    /**
                     * Decodes a ListGeneratorEvaluationsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListGeneratorEvaluationsRequest
                     * @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.cloud.dialogflow.v2beta1.ListGeneratorEvaluationsRequest;

                    /**
                     * Verifies a ListGeneratorEvaluationsRequest 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 ListGeneratorEvaluationsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListGeneratorEvaluationsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.ListGeneratorEvaluationsRequest;

                    /**
                     * Creates a plain object from a ListGeneratorEvaluationsRequest message. Also converts values to other types if specified.
                     * @param message ListGeneratorEvaluationsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.ListGeneratorEvaluationsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListGeneratorEvaluationsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListGeneratorEvaluationsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListGeneratorEvaluationsResponse. */
                interface IListGeneratorEvaluationsResponse {

                    /** ListGeneratorEvaluationsResponse generatorEvaluations */
                    generatorEvaluations?: (google.cloud.dialogflow.v2beta1.IGeneratorEvaluation[]|null);

                    /** ListGeneratorEvaluationsResponse nextPageToken */
                    nextPageToken?: (string|null);
                }

                /** Represents a ListGeneratorEvaluationsResponse. */
                class ListGeneratorEvaluationsResponse implements IListGeneratorEvaluationsResponse {

                    /**
                     * Constructs a new ListGeneratorEvaluationsResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IListGeneratorEvaluationsResponse);

                    /** ListGeneratorEvaluationsResponse generatorEvaluations. */
                    public generatorEvaluations: google.cloud.dialogflow.v2beta1.IGeneratorEvaluation[];

                    /** ListGeneratorEvaluationsResponse nextPageToken. */
                    public nextPageToken: string;

                    /**
                     * Creates a new ListGeneratorEvaluationsResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListGeneratorEvaluationsResponse instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IListGeneratorEvaluationsResponse): google.cloud.dialogflow.v2beta1.ListGeneratorEvaluationsResponse;

                    /**
                     * Encodes the specified ListGeneratorEvaluationsResponse message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.ListGeneratorEvaluationsResponse.verify|verify} messages.
                     * @param message ListGeneratorEvaluationsResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IListGeneratorEvaluationsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListGeneratorEvaluationsResponse message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.ListGeneratorEvaluationsResponse.verify|verify} messages.
                     * @param message ListGeneratorEvaluationsResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IListGeneratorEvaluationsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListGeneratorEvaluationsResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListGeneratorEvaluationsResponse
                     * @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.cloud.dialogflow.v2beta1.ListGeneratorEvaluationsResponse;

                    /**
                     * Decodes a ListGeneratorEvaluationsResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListGeneratorEvaluationsResponse
                     * @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.cloud.dialogflow.v2beta1.ListGeneratorEvaluationsResponse;

                    /**
                     * Verifies a ListGeneratorEvaluationsResponse 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 ListGeneratorEvaluationsResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListGeneratorEvaluationsResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.ListGeneratorEvaluationsResponse;

                    /**
                     * Creates a plain object from a ListGeneratorEvaluationsResponse message. Also converts values to other types if specified.
                     * @param message ListGeneratorEvaluationsResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.ListGeneratorEvaluationsResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListGeneratorEvaluationsResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListGeneratorEvaluationsResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteGeneratorEvaluationRequest. */
                interface IDeleteGeneratorEvaluationRequest {

                    /** DeleteGeneratorEvaluationRequest name */
                    name?: (string|null);
                }

                /** Represents a DeleteGeneratorEvaluationRequest. */
                class DeleteGeneratorEvaluationRequest implements IDeleteGeneratorEvaluationRequest {

                    /**
                     * Constructs a new DeleteGeneratorEvaluationRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IDeleteGeneratorEvaluationRequest);

                    /** DeleteGeneratorEvaluationRequest name. */
                    public name: string;

                    /**
                     * Creates a new DeleteGeneratorEvaluationRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteGeneratorEvaluationRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IDeleteGeneratorEvaluationRequest): google.cloud.dialogflow.v2beta1.DeleteGeneratorEvaluationRequest;

                    /**
                     * Encodes the specified DeleteGeneratorEvaluationRequest message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.DeleteGeneratorEvaluationRequest.verify|verify} messages.
                     * @param message DeleteGeneratorEvaluationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IDeleteGeneratorEvaluationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteGeneratorEvaluationRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.DeleteGeneratorEvaluationRequest.verify|verify} messages.
                     * @param message DeleteGeneratorEvaluationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IDeleteGeneratorEvaluationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteGeneratorEvaluationRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteGeneratorEvaluationRequest
                     * @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.cloud.dialogflow.v2beta1.DeleteGeneratorEvaluationRequest;

                    /**
                     * Decodes a DeleteGeneratorEvaluationRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteGeneratorEvaluationRequest
                     * @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.cloud.dialogflow.v2beta1.DeleteGeneratorEvaluationRequest;

                    /**
                     * Verifies a DeleteGeneratorEvaluationRequest 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 DeleteGeneratorEvaluationRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteGeneratorEvaluationRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.DeleteGeneratorEvaluationRequest;

                    /**
                     * Creates a plain object from a DeleteGeneratorEvaluationRequest message. Also converts values to other types if specified.
                     * @param message DeleteGeneratorEvaluationRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.DeleteGeneratorEvaluationRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteGeneratorEvaluationRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteGeneratorEvaluationRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GeneratorEvaluation. */
                interface IGeneratorEvaluation {

                    /** GeneratorEvaluation name */
                    name?: (string|null);

                    /** GeneratorEvaluation displayName */
                    displayName?: (string|null);

                    /** GeneratorEvaluation generatorEvaluationConfig */
                    generatorEvaluationConfig?: (google.cloud.dialogflow.v2beta1.IGeneratorEvaluationConfig|null);

                    /** GeneratorEvaluation createTime */
                    createTime?: (google.protobuf.ITimestamp|null);

                    /** GeneratorEvaluation completeTime */
                    completeTime?: (google.protobuf.ITimestamp|null);

                    /** GeneratorEvaluation initialGenerator */
                    initialGenerator?: (google.cloud.dialogflow.v2beta1.IGenerator|null);

                    /** GeneratorEvaluation summarizationMetrics */
                    summarizationMetrics?: (google.cloud.dialogflow.v2beta1.ISummarizationEvaluationMetrics|null);

                    /** GeneratorEvaluation evaluationStatus */
                    evaluationStatus?: (google.cloud.dialogflow.v2beta1.IEvaluationStatus|null);

                    /** GeneratorEvaluation satisfiesPzs */
                    satisfiesPzs?: (boolean|null);

                    /** GeneratorEvaluation satisfiesPzi */
                    satisfiesPzi?: (boolean|null);
                }

                /** Represents a GeneratorEvaluation. */
                class GeneratorEvaluation implements IGeneratorEvaluation {

                    /**
                     * Constructs a new GeneratorEvaluation.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IGeneratorEvaluation);

                    /** GeneratorEvaluation name. */
                    public name: string;

                    /** GeneratorEvaluation displayName. */
                    public displayName: string;

                    /** GeneratorEvaluation generatorEvaluationConfig. */
                    public generatorEvaluationConfig?: (google.cloud.dialogflow.v2beta1.IGeneratorEvaluationConfig|null);

                    /** GeneratorEvaluation createTime. */
                    public createTime?: (google.protobuf.ITimestamp|null);

                    /** GeneratorEvaluation completeTime. */
                    public completeTime?: (google.protobuf.ITimestamp|null);

                    /** GeneratorEvaluation initialGenerator. */
                    public initialGenerator?: (google.cloud.dialogflow.v2beta1.IGenerator|null);

                    /** GeneratorEvaluation summarizationMetrics. */
                    public summarizationMetrics?: (google.cloud.dialogflow.v2beta1.ISummarizationEvaluationMetrics|null);

                    /** GeneratorEvaluation evaluationStatus. */
                    public evaluationStatus?: (google.cloud.dialogflow.v2beta1.IEvaluationStatus|null);

                    /** GeneratorEvaluation satisfiesPzs. */
                    public satisfiesPzs?: (boolean|null);

                    /** GeneratorEvaluation satisfiesPzi. */
                    public satisfiesPzi?: (boolean|null);

                    /** GeneratorEvaluation metrics. */
                    public metrics?: "summarizationMetrics";

                    /**
                     * Creates a new GeneratorEvaluation instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GeneratorEvaluation instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IGeneratorEvaluation): google.cloud.dialogflow.v2beta1.GeneratorEvaluation;

                    /**
                     * Encodes the specified GeneratorEvaluation message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.GeneratorEvaluation.verify|verify} messages.
                     * @param message GeneratorEvaluation message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IGeneratorEvaluation, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GeneratorEvaluation message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.GeneratorEvaluation.verify|verify} messages.
                     * @param message GeneratorEvaluation message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IGeneratorEvaluation, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GeneratorEvaluation message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GeneratorEvaluation
                     * @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.cloud.dialogflow.v2beta1.GeneratorEvaluation;

                    /**
                     * Decodes a GeneratorEvaluation message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GeneratorEvaluation
                     * @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.cloud.dialogflow.v2beta1.GeneratorEvaluation;

                    /**
                     * Verifies a GeneratorEvaluation 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 GeneratorEvaluation message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GeneratorEvaluation
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.GeneratorEvaluation;

                    /**
                     * Creates a plain object from a GeneratorEvaluation message. Also converts values to other types if specified.
                     * @param message GeneratorEvaluation
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.GeneratorEvaluation, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GeneratorEvaluation to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GeneratorEvaluation
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SummarizationEvaluationMetrics. */
                interface ISummarizationEvaluationMetrics {

                    /** SummarizationEvaluationMetrics summarizationEvaluationResults */
                    summarizationEvaluationResults?: (google.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.ISummarizationEvaluationResult[]|null);

                    /** SummarizationEvaluationMetrics summarizationEvaluationMergedResultsUri */
                    summarizationEvaluationMergedResultsUri?: (string|null);

                    /** SummarizationEvaluationMetrics overallMetrics */
                    overallMetrics?: (google.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.IOverallScoresByMetric[]|null);

                    /** SummarizationEvaluationMetrics overallSectionTokens */
                    overallSectionTokens?: (google.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.ISectionToken[]|null);

                    /** SummarizationEvaluationMetrics conversationDetails */
                    conversationDetails?: (google.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.IConversationDetail[]|null);
                }

                /** Represents a SummarizationEvaluationMetrics. */
                class SummarizationEvaluationMetrics implements ISummarizationEvaluationMetrics {

                    /**
                     * Constructs a new SummarizationEvaluationMetrics.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.ISummarizationEvaluationMetrics);

                    /** SummarizationEvaluationMetrics summarizationEvaluationResults. */
                    public summarizationEvaluationResults: google.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.ISummarizationEvaluationResult[];

                    /** SummarizationEvaluationMetrics summarizationEvaluationMergedResultsUri. */
                    public summarizationEvaluationMergedResultsUri: string;

                    /** SummarizationEvaluationMetrics overallMetrics. */
                    public overallMetrics: google.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.IOverallScoresByMetric[];

                    /** SummarizationEvaluationMetrics overallSectionTokens. */
                    public overallSectionTokens: google.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.ISectionToken[];

                    /** SummarizationEvaluationMetrics conversationDetails. */
                    public conversationDetails: google.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.IConversationDetail[];

                    /**
                     * Creates a new SummarizationEvaluationMetrics instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SummarizationEvaluationMetrics instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.ISummarizationEvaluationMetrics): google.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics;

                    /**
                     * Encodes the specified SummarizationEvaluationMetrics message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.verify|verify} messages.
                     * @param message SummarizationEvaluationMetrics message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.ISummarizationEvaluationMetrics, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SummarizationEvaluationMetrics message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.verify|verify} messages.
                     * @param message SummarizationEvaluationMetrics message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.ISummarizationEvaluationMetrics, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SummarizationEvaluationMetrics message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SummarizationEvaluationMetrics
                     * @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.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics;

                    /**
                     * Decodes a SummarizationEvaluationMetrics message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SummarizationEvaluationMetrics
                     * @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.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics;

                    /**
                     * Verifies a SummarizationEvaluationMetrics 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 SummarizationEvaluationMetrics message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SummarizationEvaluationMetrics
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics;

                    /**
                     * Creates a plain object from a SummarizationEvaluationMetrics message. Also converts values to other types if specified.
                     * @param message SummarizationEvaluationMetrics
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SummarizationEvaluationMetrics to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SummarizationEvaluationMetrics
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace SummarizationEvaluationMetrics {

                    /** Properties of an AccuracyDecomposition. */
                    interface IAccuracyDecomposition {

                        /** AccuracyDecomposition point */
                        point?: (string|null);

                        /** AccuracyDecomposition accuracyReasoning */
                        accuracyReasoning?: (string|null);

                        /** AccuracyDecomposition isAccurate */
                        isAccurate?: (boolean|null);
                    }

                    /** Represents an AccuracyDecomposition. */
                    class AccuracyDecomposition implements IAccuracyDecomposition {

                        /**
                         * Constructs a new AccuracyDecomposition.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.IAccuracyDecomposition);

                        /** AccuracyDecomposition point. */
                        public point: string;

                        /** AccuracyDecomposition accuracyReasoning. */
                        public accuracyReasoning: string;

                        /** AccuracyDecomposition isAccurate. */
                        public isAccurate?: (boolean|null);

                        /**
                         * Creates a new AccuracyDecomposition instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns AccuracyDecomposition instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.IAccuracyDecomposition): google.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.AccuracyDecomposition;

                        /**
                         * Encodes the specified AccuracyDecomposition message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.AccuracyDecomposition.verify|verify} messages.
                         * @param message AccuracyDecomposition message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.IAccuracyDecomposition, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified AccuracyDecomposition message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.AccuracyDecomposition.verify|verify} messages.
                         * @param message AccuracyDecomposition message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.IAccuracyDecomposition, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes an AccuracyDecomposition message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns AccuracyDecomposition
                         * @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.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.AccuracyDecomposition;

                        /**
                         * Decodes an AccuracyDecomposition message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns AccuracyDecomposition
                         * @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.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.AccuracyDecomposition;

                        /**
                         * Verifies an AccuracyDecomposition 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 AccuracyDecomposition message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns AccuracyDecomposition
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.AccuracyDecomposition;

                        /**
                         * Creates a plain object from an AccuracyDecomposition message. Also converts values to other types if specified.
                         * @param message AccuracyDecomposition
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.AccuracyDecomposition, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this AccuracyDecomposition to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for AccuracyDecomposition
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    /** Properties of an AdherenceDecomposition. */
                    interface IAdherenceDecomposition {

                        /** AdherenceDecomposition point */
                        point?: (string|null);

                        /** AdherenceDecomposition adherenceReasoning */
                        adherenceReasoning?: (string|null);

                        /** AdherenceDecomposition isAdherent */
                        isAdherent?: (boolean|null);
                    }

                    /** Represents an AdherenceDecomposition. */
                    class AdherenceDecomposition implements IAdherenceDecomposition {

                        /**
                         * Constructs a new AdherenceDecomposition.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.IAdherenceDecomposition);

                        /** AdherenceDecomposition point. */
                        public point: string;

                        /** AdherenceDecomposition adherenceReasoning. */
                        public adherenceReasoning: string;

                        /** AdherenceDecomposition isAdherent. */
                        public isAdherent: boolean;

                        /**
                         * Creates a new AdherenceDecomposition instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns AdherenceDecomposition instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.IAdherenceDecomposition): google.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.AdherenceDecomposition;

                        /**
                         * Encodes the specified AdherenceDecomposition message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.AdherenceDecomposition.verify|verify} messages.
                         * @param message AdherenceDecomposition message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.IAdherenceDecomposition, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified AdherenceDecomposition message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.AdherenceDecomposition.verify|verify} messages.
                         * @param message AdherenceDecomposition message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.IAdherenceDecomposition, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes an AdherenceDecomposition message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns AdherenceDecomposition
                         * @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.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.AdherenceDecomposition;

                        /**
                         * Decodes an AdherenceDecomposition message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns AdherenceDecomposition
                         * @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.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.AdherenceDecomposition;

                        /**
                         * Verifies an AdherenceDecomposition 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 AdherenceDecomposition message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns AdherenceDecomposition
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.AdherenceDecomposition;

                        /**
                         * Creates a plain object from an AdherenceDecomposition message. Also converts values to other types if specified.
                         * @param message AdherenceDecomposition
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.AdherenceDecomposition, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this AdherenceDecomposition to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for AdherenceDecomposition
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    /** Properties of an AdherenceRubric. */
                    interface IAdherenceRubric {

                        /** AdherenceRubric question */
                        question?: (string|null);

                        /** AdherenceRubric reasoning */
                        reasoning?: (string|null);

                        /** AdherenceRubric isAddressed */
                        isAddressed?: (boolean|null);
                    }

                    /** Represents an AdherenceRubric. */
                    class AdherenceRubric implements IAdherenceRubric {

                        /**
                         * Constructs a new AdherenceRubric.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.IAdherenceRubric);

                        /** AdherenceRubric question. */
                        public question: string;

                        /** AdherenceRubric reasoning. */
                        public reasoning: string;

                        /** AdherenceRubric isAddressed. */
                        public isAddressed?: (boolean|null);

                        /**
                         * Creates a new AdherenceRubric instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns AdherenceRubric instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.IAdherenceRubric): google.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.AdherenceRubric;

                        /**
                         * Encodes the specified AdherenceRubric message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.AdherenceRubric.verify|verify} messages.
                         * @param message AdherenceRubric message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.IAdherenceRubric, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified AdherenceRubric message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.AdherenceRubric.verify|verify} messages.
                         * @param message AdherenceRubric message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.IAdherenceRubric, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes an AdherenceRubric message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns AdherenceRubric
                         * @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.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.AdherenceRubric;

                        /**
                         * Decodes an AdherenceRubric message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns AdherenceRubric
                         * @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.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.AdherenceRubric;

                        /**
                         * Verifies an AdherenceRubric 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 AdherenceRubric message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns AdherenceRubric
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.AdherenceRubric;

                        /**
                         * Creates a plain object from an AdherenceRubric message. Also converts values to other types if specified.
                         * @param message AdherenceRubric
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.AdherenceRubric, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this AdherenceRubric to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for AdherenceRubric
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    /** Properties of a CompletenessRubric. */
                    interface ICompletenessRubric {

                        /** CompletenessRubric question */
                        question?: (string|null);

                        /** CompletenessRubric isAddressed */
                        isAddressed?: (boolean|null);
                    }

                    /** Represents a CompletenessRubric. */
                    class CompletenessRubric implements ICompletenessRubric {

                        /**
                         * Constructs a new CompletenessRubric.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.ICompletenessRubric);

                        /** CompletenessRubric question. */
                        public question: string;

                        /** CompletenessRubric isAddressed. */
                        public isAddressed?: (boolean|null);

                        /**
                         * Creates a new CompletenessRubric instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns CompletenessRubric instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.ICompletenessRubric): google.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.CompletenessRubric;

                        /**
                         * Encodes the specified CompletenessRubric message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.CompletenessRubric.verify|verify} messages.
                         * @param message CompletenessRubric message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.ICompletenessRubric, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified CompletenessRubric message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.CompletenessRubric.verify|verify} messages.
                         * @param message CompletenessRubric message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.ICompletenessRubric, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a CompletenessRubric message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns CompletenessRubric
                         * @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.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.CompletenessRubric;

                        /**
                         * Decodes a CompletenessRubric message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns CompletenessRubric
                         * @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.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.CompletenessRubric;

                        /**
                         * Verifies a CompletenessRubric 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 CompletenessRubric message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns CompletenessRubric
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.CompletenessRubric;

                        /**
                         * Creates a plain object from a CompletenessRubric message. Also converts values to other types if specified.
                         * @param message CompletenessRubric
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.CompletenessRubric, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this CompletenessRubric to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for CompletenessRubric
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    /** Properties of a Decomposition. */
                    interface IDecomposition {

                        /** Decomposition accuracyDecomposition */
                        accuracyDecomposition?: (google.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.IAccuracyDecomposition|null);

                        /** Decomposition adherenceDecomposition */
                        adherenceDecomposition?: (google.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.IAdherenceDecomposition|null);
                    }

                    /** Represents a Decomposition. */
                    class Decomposition implements IDecomposition {

                        /**
                         * Constructs a new Decomposition.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.IDecomposition);

                        /** Decomposition accuracyDecomposition. */
                        public accuracyDecomposition?: (google.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.IAccuracyDecomposition|null);

                        /** Decomposition adherenceDecomposition. */
                        public adherenceDecomposition?: (google.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.IAdherenceDecomposition|null);

                        /** Decomposition decomposition. */
                        public decomposition?: ("accuracyDecomposition"|"adherenceDecomposition");

                        /**
                         * Creates a new Decomposition instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns Decomposition instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.IDecomposition): google.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.Decomposition;

                        /**
                         * Encodes the specified Decomposition message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.Decomposition.verify|verify} messages.
                         * @param message Decomposition message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.IDecomposition, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified Decomposition message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.Decomposition.verify|verify} messages.
                         * @param message Decomposition message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.IDecomposition, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a Decomposition message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns Decomposition
                         * @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.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.Decomposition;

                        /**
                         * Decodes a Decomposition message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns Decomposition
                         * @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.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.Decomposition;

                        /**
                         * Verifies a Decomposition 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 Decomposition message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns Decomposition
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.Decomposition;

                        /**
                         * Creates a plain object from a Decomposition message. Also converts values to other types if specified.
                         * @param message Decomposition
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.Decomposition, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this Decomposition to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for Decomposition
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    /** Properties of an EvaluationResult. */
                    interface IEvaluationResult {

                        /** EvaluationResult accuracyDecomposition */
                        accuracyDecomposition?: (google.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.IAccuracyDecomposition|null);

                        /** EvaluationResult adherenceRubric */
                        adherenceRubric?: (google.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.IAdherenceRubric|null);

                        /** EvaluationResult completenessRubric */
                        completenessRubric?: (google.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.ICompletenessRubric|null);
                    }

                    /** Represents an EvaluationResult. */
                    class EvaluationResult implements IEvaluationResult {

                        /**
                         * Constructs a new EvaluationResult.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.IEvaluationResult);

                        /** EvaluationResult accuracyDecomposition. */
                        public accuracyDecomposition?: (google.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.IAccuracyDecomposition|null);

                        /** EvaluationResult adherenceRubric. */
                        public adherenceRubric?: (google.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.IAdherenceRubric|null);

                        /** EvaluationResult completenessRubric. */
                        public completenessRubric?: (google.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.ICompletenessRubric|null);

                        /** EvaluationResult result. */
                        public result?: ("accuracyDecomposition"|"adherenceRubric"|"completenessRubric");

                        /**
                         * Creates a new EvaluationResult instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns EvaluationResult instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.IEvaluationResult): google.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.EvaluationResult;

                        /**
                         * Encodes the specified EvaluationResult message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.EvaluationResult.verify|verify} messages.
                         * @param message EvaluationResult message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.IEvaluationResult, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified EvaluationResult message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.EvaluationResult.verify|verify} messages.
                         * @param message EvaluationResult message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.IEvaluationResult, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes an EvaluationResult message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns EvaluationResult
                         * @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.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.EvaluationResult;

                        /**
                         * Decodes an EvaluationResult message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns EvaluationResult
                         * @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.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.EvaluationResult;

                        /**
                         * Verifies an EvaluationResult 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 EvaluationResult message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns EvaluationResult
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.EvaluationResult;

                        /**
                         * Creates a plain object from an EvaluationResult message. Also converts values to other types if specified.
                         * @param message EvaluationResult
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.EvaluationResult, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this EvaluationResult to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for EvaluationResult
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    /** Properties of a SummarizationEvaluationResult. */
                    interface ISummarizationEvaluationResult {

                        /** SummarizationEvaluationResult sessionId */
                        sessionId?: (string|null);

                        /** SummarizationEvaluationResult metric */
                        metric?: (string|null);

                        /** SummarizationEvaluationResult section */
                        section?: (string|null);

                        /** SummarizationEvaluationResult score */
                        score?: (number|null);

                        /** SummarizationEvaluationResult sectionSummary */
                        sectionSummary?: (string|null);

                        /** SummarizationEvaluationResult decompositions */
                        decompositions?: (google.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.IDecomposition[]|null);

                        /** SummarizationEvaluationResult evaluationResults */
                        evaluationResults?: (google.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.IEvaluationResult[]|null);
                    }

                    /** Represents a SummarizationEvaluationResult. */
                    class SummarizationEvaluationResult implements ISummarizationEvaluationResult {

                        /**
                         * Constructs a new SummarizationEvaluationResult.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.ISummarizationEvaluationResult);

                        /** SummarizationEvaluationResult sessionId. */
                        public sessionId: string;

                        /** SummarizationEvaluationResult metric. */
                        public metric: string;

                        /** SummarizationEvaluationResult section. */
                        public section: string;

                        /** SummarizationEvaluationResult score. */
                        public score: number;

                        /** SummarizationEvaluationResult sectionSummary. */
                        public sectionSummary: string;

                        /** SummarizationEvaluationResult decompositions. */
                        public decompositions: google.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.IDecomposition[];

                        /** SummarizationEvaluationResult evaluationResults. */
                        public evaluationResults: google.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.IEvaluationResult[];

                        /**
                         * Creates a new SummarizationEvaluationResult instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns SummarizationEvaluationResult instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.ISummarizationEvaluationResult): google.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.SummarizationEvaluationResult;

                        /**
                         * Encodes the specified SummarizationEvaluationResult message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.SummarizationEvaluationResult.verify|verify} messages.
                         * @param message SummarizationEvaluationResult message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.ISummarizationEvaluationResult, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified SummarizationEvaluationResult message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.SummarizationEvaluationResult.verify|verify} messages.
                         * @param message SummarizationEvaluationResult message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.ISummarizationEvaluationResult, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a SummarizationEvaluationResult message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns SummarizationEvaluationResult
                         * @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.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.SummarizationEvaluationResult;

                        /**
                         * Decodes a SummarizationEvaluationResult message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns SummarizationEvaluationResult
                         * @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.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.SummarizationEvaluationResult;

                        /**
                         * Verifies a SummarizationEvaluationResult 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 SummarizationEvaluationResult message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns SummarizationEvaluationResult
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.SummarizationEvaluationResult;

                        /**
                         * Creates a plain object from a SummarizationEvaluationResult message. Also converts values to other types if specified.
                         * @param message SummarizationEvaluationResult
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.SummarizationEvaluationResult, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this SummarizationEvaluationResult to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for SummarizationEvaluationResult
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    /** Properties of an OverallScoresByMetric. */
                    interface IOverallScoresByMetric {

                        /** OverallScoresByMetric metric */
                        metric?: (string|null);
                    }

                    /** Represents an OverallScoresByMetric. */
                    class OverallScoresByMetric implements IOverallScoresByMetric {

                        /**
                         * Constructs a new OverallScoresByMetric.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.IOverallScoresByMetric);

                        /** OverallScoresByMetric metric. */
                        public metric: string;

                        /**
                         * Creates a new OverallScoresByMetric instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns OverallScoresByMetric instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.IOverallScoresByMetric): google.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.OverallScoresByMetric;

                        /**
                         * Encodes the specified OverallScoresByMetric message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.OverallScoresByMetric.verify|verify} messages.
                         * @param message OverallScoresByMetric message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.IOverallScoresByMetric, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified OverallScoresByMetric message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.OverallScoresByMetric.verify|verify} messages.
                         * @param message OverallScoresByMetric message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.IOverallScoresByMetric, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes an OverallScoresByMetric message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns OverallScoresByMetric
                         * @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.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.OverallScoresByMetric;

                        /**
                         * Decodes an OverallScoresByMetric message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns OverallScoresByMetric
                         * @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.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.OverallScoresByMetric;

                        /**
                         * Verifies an OverallScoresByMetric 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 OverallScoresByMetric message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns OverallScoresByMetric
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.OverallScoresByMetric;

                        /**
                         * Creates a plain object from an OverallScoresByMetric message. Also converts values to other types if specified.
                         * @param message OverallScoresByMetric
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.OverallScoresByMetric, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this OverallScoresByMetric to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for OverallScoresByMetric
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    /** Properties of a SectionToken. */
                    interface ISectionToken {

                        /** SectionToken section */
                        section?: (string|null);

                        /** SectionToken tokenCount */
                        tokenCount?: (number|Long|string|null);
                    }

                    /** Represents a SectionToken. */
                    class SectionToken implements ISectionToken {

                        /**
                         * Constructs a new SectionToken.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.ISectionToken);

                        /** SectionToken section. */
                        public section: string;

                        /** SectionToken tokenCount. */
                        public tokenCount?: (number|Long|string|null);

                        /**
                         * Creates a new SectionToken instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns SectionToken instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.ISectionToken): google.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.SectionToken;

                        /**
                         * Encodes the specified SectionToken message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.SectionToken.verify|verify} messages.
                         * @param message SectionToken message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.ISectionToken, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified SectionToken message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.SectionToken.verify|verify} messages.
                         * @param message SectionToken message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.ISectionToken, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a SectionToken message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns SectionToken
                         * @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.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.SectionToken;

                        /**
                         * Decodes a SectionToken message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns SectionToken
                         * @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.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.SectionToken;

                        /**
                         * Verifies a SectionToken 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 SectionToken message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns SectionToken
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.SectionToken;

                        /**
                         * Creates a plain object from a SectionToken message. Also converts values to other types if specified.
                         * @param message SectionToken
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.SectionToken, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this SectionToken to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for SectionToken
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    /** Properties of a ConversationDetail. */
                    interface IConversationDetail {

                        /** ConversationDetail messageEntries */
                        messageEntries?: (google.cloud.dialogflow.v2beta1.IMessageEntry[]|null);

                        /** ConversationDetail summarySections */
                        summarySections?: (google.cloud.dialogflow.v2beta1.SummarySuggestion.ISummarySection[]|null);

                        /** ConversationDetail metricDetails */
                        metricDetails?: (google.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.ConversationDetail.IMetricDetail[]|null);

                        /** ConversationDetail sectionTokens */
                        sectionTokens?: (google.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.ISectionToken[]|null);
                    }

                    /** Represents a ConversationDetail. */
                    class ConversationDetail implements IConversationDetail {

                        /**
                         * Constructs a new ConversationDetail.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.IConversationDetail);

                        /** ConversationDetail messageEntries. */
                        public messageEntries: google.cloud.dialogflow.v2beta1.IMessageEntry[];

                        /** ConversationDetail summarySections. */
                        public summarySections: google.cloud.dialogflow.v2beta1.SummarySuggestion.ISummarySection[];

                        /** ConversationDetail metricDetails. */
                        public metricDetails: google.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.ConversationDetail.IMetricDetail[];

                        /** ConversationDetail sectionTokens. */
                        public sectionTokens: google.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.ISectionToken[];

                        /**
                         * Creates a new ConversationDetail instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns ConversationDetail instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.IConversationDetail): google.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.ConversationDetail;

                        /**
                         * Encodes the specified ConversationDetail message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.ConversationDetail.verify|verify} messages.
                         * @param message ConversationDetail message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.IConversationDetail, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified ConversationDetail message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.ConversationDetail.verify|verify} messages.
                         * @param message ConversationDetail message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.IConversationDetail, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a ConversationDetail message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns ConversationDetail
                         * @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.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.ConversationDetail;

                        /**
                         * Decodes a ConversationDetail message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns ConversationDetail
                         * @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.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.ConversationDetail;

                        /**
                         * Verifies a ConversationDetail 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 ConversationDetail message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns ConversationDetail
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.ConversationDetail;

                        /**
                         * Creates a plain object from a ConversationDetail message. Also converts values to other types if specified.
                         * @param message ConversationDetail
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.ConversationDetail, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this ConversationDetail to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for ConversationDetail
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    namespace ConversationDetail {

                        /** Properties of a MetricDetail. */
                        interface IMetricDetail {

                            /** MetricDetail metric */
                            metric?: (string|null);

                            /** MetricDetail score */
                            score?: (number|null);

                            /** MetricDetail sectionDetails */
                            sectionDetails?: (google.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.ConversationDetail.MetricDetail.ISectionDetail[]|null);
                        }

                        /** Represents a MetricDetail. */
                        class MetricDetail implements IMetricDetail {

                            /**
                             * Constructs a new MetricDetail.
                             * @param [properties] Properties to set
                             */
                            constructor(properties?: google.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.ConversationDetail.IMetricDetail);

                            /** MetricDetail metric. */
                            public metric: string;

                            /** MetricDetail score. */
                            public score?: (number|null);

                            /** MetricDetail sectionDetails. */
                            public sectionDetails: google.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.ConversationDetail.MetricDetail.ISectionDetail[];

                            /**
                             * Creates a new MetricDetail instance using the specified properties.
                             * @param [properties] Properties to set
                             * @returns MetricDetail instance
                             */
                            public static create(properties?: google.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.ConversationDetail.IMetricDetail): google.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.ConversationDetail.MetricDetail;

                            /**
                             * Encodes the specified MetricDetail message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.ConversationDetail.MetricDetail.verify|verify} messages.
                             * @param message MetricDetail message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encode(message: google.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.ConversationDetail.IMetricDetail, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Encodes the specified MetricDetail message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.ConversationDetail.MetricDetail.verify|verify} messages.
                             * @param message MetricDetail message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.ConversationDetail.IMetricDetail, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Decodes a MetricDetail message from the specified reader or buffer.
                             * @param reader Reader or buffer to decode from
                             * @param [length] Message length if known beforehand
                             * @returns MetricDetail
                             * @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.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.ConversationDetail.MetricDetail;

                            /**
                             * Decodes a MetricDetail message from the specified reader or buffer, length delimited.
                             * @param reader Reader or buffer to decode from
                             * @returns MetricDetail
                             * @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.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.ConversationDetail.MetricDetail;

                            /**
                             * Verifies a MetricDetail 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 MetricDetail message from a plain object. Also converts values to their respective internal types.
                             * @param object Plain object
                             * @returns MetricDetail
                             */
                            public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.ConversationDetail.MetricDetail;

                            /**
                             * Creates a plain object from a MetricDetail message. Also converts values to other types if specified.
                             * @param message MetricDetail
                             * @param [options] Conversion options
                             * @returns Plain object
                             */
                            public static toObject(message: google.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.ConversationDetail.MetricDetail, options?: $protobuf.IConversionOptions): { [k: string]: any };

                            /**
                             * Converts this MetricDetail to JSON.
                             * @returns JSON object
                             */
                            public toJSON(): { [k: string]: any };

                            /**
                             * Gets the default type url for MetricDetail
                             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                             * @returns The default type url
                             */
                            public static getTypeUrl(typeUrlPrefix?: string): string;
                        }

                        namespace MetricDetail {

                            /** Properties of a SectionDetail. */
                            interface ISectionDetail {

                                /** SectionDetail section */
                                section?: (string|null);

                                /** SectionDetail score */
                                score?: (number|null);

                                /** SectionDetail sectionSummary */
                                sectionSummary?: (string|null);

                                /** SectionDetail evaluationResults */
                                evaluationResults?: (google.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.IEvaluationResult[]|null);
                            }

                            /** Represents a SectionDetail. */
                            class SectionDetail implements ISectionDetail {

                                /**
                                 * Constructs a new SectionDetail.
                                 * @param [properties] Properties to set
                                 */
                                constructor(properties?: google.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.ConversationDetail.MetricDetail.ISectionDetail);

                                /** SectionDetail section. */
                                public section: string;

                                /** SectionDetail score. */
                                public score?: (number|null);

                                /** SectionDetail sectionSummary. */
                                public sectionSummary: string;

                                /** SectionDetail evaluationResults. */
                                public evaluationResults: google.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.IEvaluationResult[];

                                /**
                                 * Creates a new SectionDetail instance using the specified properties.
                                 * @param [properties] Properties to set
                                 * @returns SectionDetail instance
                                 */
                                public static create(properties?: google.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.ConversationDetail.MetricDetail.ISectionDetail): google.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.ConversationDetail.MetricDetail.SectionDetail;

                                /**
                                 * Encodes the specified SectionDetail message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.ConversationDetail.MetricDetail.SectionDetail.verify|verify} messages.
                                 * @param message SectionDetail message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encode(message: google.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.ConversationDetail.MetricDetail.ISectionDetail, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Encodes the specified SectionDetail message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.ConversationDetail.MetricDetail.SectionDetail.verify|verify} messages.
                                 * @param message SectionDetail message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.ConversationDetail.MetricDetail.ISectionDetail, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Decodes a SectionDetail message from the specified reader or buffer.
                                 * @param reader Reader or buffer to decode from
                                 * @param [length] Message length if known beforehand
                                 * @returns SectionDetail
                                 * @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.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.ConversationDetail.MetricDetail.SectionDetail;

                                /**
                                 * Decodes a SectionDetail message from the specified reader or buffer, length delimited.
                                 * @param reader Reader or buffer to decode from
                                 * @returns SectionDetail
                                 * @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.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.ConversationDetail.MetricDetail.SectionDetail;

                                /**
                                 * Verifies a SectionDetail 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 SectionDetail message from a plain object. Also converts values to their respective internal types.
                                 * @param object Plain object
                                 * @returns SectionDetail
                                 */
                                public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.ConversationDetail.MetricDetail.SectionDetail;

                                /**
                                 * Creates a plain object from a SectionDetail message. Also converts values to other types if specified.
                                 * @param message SectionDetail
                                 * @param [options] Conversion options
                                 * @returns Plain object
                                 */
                                public static toObject(message: google.cloud.dialogflow.v2beta1.SummarizationEvaluationMetrics.ConversationDetail.MetricDetail.SectionDetail, options?: $protobuf.IConversionOptions): { [k: string]: any };

                                /**
                                 * Converts this SectionDetail to JSON.
                                 * @returns JSON object
                                 */
                                public toJSON(): { [k: string]: any };

                                /**
                                 * Gets the default type url for SectionDetail
                                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                                 * @returns The default type url
                                 */
                                public static getTypeUrl(typeUrlPrefix?: string): string;
                            }
                        }
                    }
                }

                /** Properties of a GeneratorEvaluationConfig. */
                interface IGeneratorEvaluationConfig {

                    /** GeneratorEvaluationConfig inputDataConfig */
                    inputDataConfig?: (google.cloud.dialogflow.v2beta1.GeneratorEvaluationConfig.IInputDataConfig|null);

                    /** GeneratorEvaluationConfig outputGcsBucketPath */
                    outputGcsBucketPath?: (string|null);

                    /** GeneratorEvaluationConfig summarizationConfig */
                    summarizationConfig?: (google.cloud.dialogflow.v2beta1.GeneratorEvaluationConfig.ISummarizationConfig|null);
                }

                /** Represents a GeneratorEvaluationConfig. */
                class GeneratorEvaluationConfig implements IGeneratorEvaluationConfig {

                    /**
                     * Constructs a new GeneratorEvaluationConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IGeneratorEvaluationConfig);

                    /** GeneratorEvaluationConfig inputDataConfig. */
                    public inputDataConfig?: (google.cloud.dialogflow.v2beta1.GeneratorEvaluationConfig.IInputDataConfig|null);

                    /** GeneratorEvaluationConfig outputGcsBucketPath. */
                    public outputGcsBucketPath: string;

                    /** GeneratorEvaluationConfig summarizationConfig. */
                    public summarizationConfig?: (google.cloud.dialogflow.v2beta1.GeneratorEvaluationConfig.ISummarizationConfig|null);

                    /** GeneratorEvaluationConfig evaluationFeatureConfig. */
                    public evaluationFeatureConfig?: "summarizationConfig";

                    /**
                     * Creates a new GeneratorEvaluationConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GeneratorEvaluationConfig instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IGeneratorEvaluationConfig): google.cloud.dialogflow.v2beta1.GeneratorEvaluationConfig;

                    /**
                     * Encodes the specified GeneratorEvaluationConfig message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.GeneratorEvaluationConfig.verify|verify} messages.
                     * @param message GeneratorEvaluationConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IGeneratorEvaluationConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GeneratorEvaluationConfig message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.GeneratorEvaluationConfig.verify|verify} messages.
                     * @param message GeneratorEvaluationConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IGeneratorEvaluationConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GeneratorEvaluationConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GeneratorEvaluationConfig
                     * @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.cloud.dialogflow.v2beta1.GeneratorEvaluationConfig;

                    /**
                     * Decodes a GeneratorEvaluationConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GeneratorEvaluationConfig
                     * @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.cloud.dialogflow.v2beta1.GeneratorEvaluationConfig;

                    /**
                     * Verifies a GeneratorEvaluationConfig 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 GeneratorEvaluationConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GeneratorEvaluationConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.GeneratorEvaluationConfig;

                    /**
                     * Creates a plain object from a GeneratorEvaluationConfig message. Also converts values to other types if specified.
                     * @param message GeneratorEvaluationConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.GeneratorEvaluationConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GeneratorEvaluationConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GeneratorEvaluationConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace GeneratorEvaluationConfig {

                    /** InputDataSourceType enum. */
                    enum InputDataSourceType {
                        INPUT_DATA_SOURCE_TYPE_UNSPECIFIED = 0,
                        AGENT_ASSIST_CONVERSATIONS = 1,
                        INSIGHTS_CONVERSATIONS = 2
                    }

                    /** Properties of an AgentAssistInputDataConfig. */
                    interface IAgentAssistInputDataConfig {

                        /** AgentAssistInputDataConfig startTime */
                        startTime?: (google.protobuf.ITimestamp|null);

                        /** AgentAssistInputDataConfig endTime */
                        endTime?: (google.protobuf.ITimestamp|null);
                    }

                    /** Represents an AgentAssistInputDataConfig. */
                    class AgentAssistInputDataConfig implements IAgentAssistInputDataConfig {

                        /**
                         * Constructs a new AgentAssistInputDataConfig.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2beta1.GeneratorEvaluationConfig.IAgentAssistInputDataConfig);

                        /** AgentAssistInputDataConfig startTime. */
                        public startTime?: (google.protobuf.ITimestamp|null);

                        /** AgentAssistInputDataConfig endTime. */
                        public endTime?: (google.protobuf.ITimestamp|null);

                        /**
                         * Creates a new AgentAssistInputDataConfig instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns AgentAssistInputDataConfig instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2beta1.GeneratorEvaluationConfig.IAgentAssistInputDataConfig): google.cloud.dialogflow.v2beta1.GeneratorEvaluationConfig.AgentAssistInputDataConfig;

                        /**
                         * Encodes the specified AgentAssistInputDataConfig message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.GeneratorEvaluationConfig.AgentAssistInputDataConfig.verify|verify} messages.
                         * @param message AgentAssistInputDataConfig message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2beta1.GeneratorEvaluationConfig.IAgentAssistInputDataConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified AgentAssistInputDataConfig message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.GeneratorEvaluationConfig.AgentAssistInputDataConfig.verify|verify} messages.
                         * @param message AgentAssistInputDataConfig message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.GeneratorEvaluationConfig.IAgentAssistInputDataConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes an AgentAssistInputDataConfig message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns AgentAssistInputDataConfig
                         * @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.cloud.dialogflow.v2beta1.GeneratorEvaluationConfig.AgentAssistInputDataConfig;

                        /**
                         * Decodes an AgentAssistInputDataConfig message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns AgentAssistInputDataConfig
                         * @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.cloud.dialogflow.v2beta1.GeneratorEvaluationConfig.AgentAssistInputDataConfig;

                        /**
                         * Verifies an AgentAssistInputDataConfig 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 AgentAssistInputDataConfig message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns AgentAssistInputDataConfig
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.GeneratorEvaluationConfig.AgentAssistInputDataConfig;

                        /**
                         * Creates a plain object from an AgentAssistInputDataConfig message. Also converts values to other types if specified.
                         * @param message AgentAssistInputDataConfig
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.dialogflow.v2beta1.GeneratorEvaluationConfig.AgentAssistInputDataConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this AgentAssistInputDataConfig to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for AgentAssistInputDataConfig
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    /** Properties of a DatasetInputDataConfig. */
                    interface IDatasetInputDataConfig {

                        /** DatasetInputDataConfig dataset */
                        dataset?: (string|null);
                    }

                    /** Represents a DatasetInputDataConfig. */
                    class DatasetInputDataConfig implements IDatasetInputDataConfig {

                        /**
                         * Constructs a new DatasetInputDataConfig.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2beta1.GeneratorEvaluationConfig.IDatasetInputDataConfig);

                        /** DatasetInputDataConfig dataset. */
                        public dataset: string;

                        /**
                         * Creates a new DatasetInputDataConfig instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns DatasetInputDataConfig instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2beta1.GeneratorEvaluationConfig.IDatasetInputDataConfig): google.cloud.dialogflow.v2beta1.GeneratorEvaluationConfig.DatasetInputDataConfig;

                        /**
                         * Encodes the specified DatasetInputDataConfig message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.GeneratorEvaluationConfig.DatasetInputDataConfig.verify|verify} messages.
                         * @param message DatasetInputDataConfig message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2beta1.GeneratorEvaluationConfig.IDatasetInputDataConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified DatasetInputDataConfig message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.GeneratorEvaluationConfig.DatasetInputDataConfig.verify|verify} messages.
                         * @param message DatasetInputDataConfig message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.GeneratorEvaluationConfig.IDatasetInputDataConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a DatasetInputDataConfig message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns DatasetInputDataConfig
                         * @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.cloud.dialogflow.v2beta1.GeneratorEvaluationConfig.DatasetInputDataConfig;

                        /**
                         * Decodes a DatasetInputDataConfig message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns DatasetInputDataConfig
                         * @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.cloud.dialogflow.v2beta1.GeneratorEvaluationConfig.DatasetInputDataConfig;

                        /**
                         * Verifies a DatasetInputDataConfig 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 DatasetInputDataConfig message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns DatasetInputDataConfig
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.GeneratorEvaluationConfig.DatasetInputDataConfig;

                        /**
                         * Creates a plain object from a DatasetInputDataConfig message. Also converts values to other types if specified.
                         * @param message DatasetInputDataConfig
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.dialogflow.v2beta1.GeneratorEvaluationConfig.DatasetInputDataConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this DatasetInputDataConfig to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for DatasetInputDataConfig
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    /** Properties of an InputDataConfig. */
                    interface IInputDataConfig {

                        /** InputDataConfig inputDataSourceType */
                        inputDataSourceType?: (google.cloud.dialogflow.v2beta1.GeneratorEvaluationConfig.InputDataSourceType|keyof typeof google.cloud.dialogflow.v2beta1.GeneratorEvaluationConfig.InputDataSourceType|null);

                        /** InputDataConfig startTime */
                        startTime?: (google.protobuf.ITimestamp|null);

                        /** InputDataConfig endTime */
                        endTime?: (google.protobuf.ITimestamp|null);

                        /** InputDataConfig sampleSize */
                        sampleSize?: (number|null);

                        /** InputDataConfig isSummaryGenerationAllowed */
                        isSummaryGenerationAllowed?: (boolean|null);

                        /** InputDataConfig summaryGenerationOption */
                        summaryGenerationOption?: (google.cloud.dialogflow.v2beta1.GeneratorEvaluationConfig.InputDataConfig.SummaryGenerationOption|keyof typeof google.cloud.dialogflow.v2beta1.GeneratorEvaluationConfig.InputDataConfig.SummaryGenerationOption|null);

                        /** InputDataConfig agentAssistInputDataConfig */
                        agentAssistInputDataConfig?: (google.cloud.dialogflow.v2beta1.GeneratorEvaluationConfig.IAgentAssistInputDataConfig|null);

                        /** InputDataConfig datasetInputDataConfig */
                        datasetInputDataConfig?: (google.cloud.dialogflow.v2beta1.GeneratorEvaluationConfig.IDatasetInputDataConfig|null);
                    }

                    /** Represents an InputDataConfig. */
                    class InputDataConfig implements IInputDataConfig {

                        /**
                         * Constructs a new InputDataConfig.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2beta1.GeneratorEvaluationConfig.IInputDataConfig);

                        /** InputDataConfig inputDataSourceType. */
                        public inputDataSourceType: (google.cloud.dialogflow.v2beta1.GeneratorEvaluationConfig.InputDataSourceType|keyof typeof google.cloud.dialogflow.v2beta1.GeneratorEvaluationConfig.InputDataSourceType);

                        /** InputDataConfig startTime. */
                        public startTime?: (google.protobuf.ITimestamp|null);

                        /** InputDataConfig endTime. */
                        public endTime?: (google.protobuf.ITimestamp|null);

                        /** InputDataConfig sampleSize. */
                        public sampleSize: number;

                        /** InputDataConfig isSummaryGenerationAllowed. */
                        public isSummaryGenerationAllowed: boolean;

                        /** InputDataConfig summaryGenerationOption. */
                        public summaryGenerationOption: (google.cloud.dialogflow.v2beta1.GeneratorEvaluationConfig.InputDataConfig.SummaryGenerationOption|keyof typeof google.cloud.dialogflow.v2beta1.GeneratorEvaluationConfig.InputDataConfig.SummaryGenerationOption);

                        /** InputDataConfig agentAssistInputDataConfig. */
                        public agentAssistInputDataConfig?: (google.cloud.dialogflow.v2beta1.GeneratorEvaluationConfig.IAgentAssistInputDataConfig|null);

                        /** InputDataConfig datasetInputDataConfig. */
                        public datasetInputDataConfig?: (google.cloud.dialogflow.v2beta1.GeneratorEvaluationConfig.IDatasetInputDataConfig|null);

                        /** InputDataConfig sourceSpecificConfig. */
                        public sourceSpecificConfig?: ("agentAssistInputDataConfig"|"datasetInputDataConfig");

                        /**
                         * Creates a new InputDataConfig instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns InputDataConfig instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2beta1.GeneratorEvaluationConfig.IInputDataConfig): google.cloud.dialogflow.v2beta1.GeneratorEvaluationConfig.InputDataConfig;

                        /**
                         * Encodes the specified InputDataConfig message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.GeneratorEvaluationConfig.InputDataConfig.verify|verify} messages.
                         * @param message InputDataConfig message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2beta1.GeneratorEvaluationConfig.IInputDataConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified InputDataConfig message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.GeneratorEvaluationConfig.InputDataConfig.verify|verify} messages.
                         * @param message InputDataConfig message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.GeneratorEvaluationConfig.IInputDataConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes an InputDataConfig message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns InputDataConfig
                         * @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.cloud.dialogflow.v2beta1.GeneratorEvaluationConfig.InputDataConfig;

                        /**
                         * Decodes an InputDataConfig message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns InputDataConfig
                         * @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.cloud.dialogflow.v2beta1.GeneratorEvaluationConfig.InputDataConfig;

                        /**
                         * Verifies an InputDataConfig 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 InputDataConfig message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns InputDataConfig
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.GeneratorEvaluationConfig.InputDataConfig;

                        /**
                         * Creates a plain object from an InputDataConfig message. Also converts values to other types if specified.
                         * @param message InputDataConfig
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.dialogflow.v2beta1.GeneratorEvaluationConfig.InputDataConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this InputDataConfig to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for InputDataConfig
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    namespace InputDataConfig {

                        /** SummaryGenerationOption enum. */
                        enum SummaryGenerationOption {
                            SUMMARY_GENERATION_OPTION_UNSPECIFIED = 0,
                            ALWAYS_GENERATE = 1,
                            GENERATE_IF_MISSING = 2,
                            DO_NOT_GENERATE = 3
                        }
                    }

                    /** Properties of a SummarizationConfig. */
                    interface ISummarizationConfig {

                        /** SummarizationConfig enableAccuracyEvaluation */
                        enableAccuracyEvaluation?: (boolean|null);

                        /** SummarizationConfig accuracyEvaluationVersion */
                        accuracyEvaluationVersion?: (string|null);

                        /** SummarizationConfig enableCompletenessEvaluation */
                        enableCompletenessEvaluation?: (boolean|null);

                        /** SummarizationConfig completenessEvaluationVersion */
                        completenessEvaluationVersion?: (string|null);

                        /** SummarizationConfig evaluatorVersion */
                        evaluatorVersion?: (string|null);
                    }

                    /** Represents a SummarizationConfig. */
                    class SummarizationConfig implements ISummarizationConfig {

                        /**
                         * Constructs a new SummarizationConfig.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2beta1.GeneratorEvaluationConfig.ISummarizationConfig);

                        /** SummarizationConfig enableAccuracyEvaluation. */
                        public enableAccuracyEvaluation: boolean;

                        /** SummarizationConfig accuracyEvaluationVersion. */
                        public accuracyEvaluationVersion: string;

                        /** SummarizationConfig enableCompletenessEvaluation. */
                        public enableCompletenessEvaluation: boolean;

                        /** SummarizationConfig completenessEvaluationVersion. */
                        public completenessEvaluationVersion: string;

                        /** SummarizationConfig evaluatorVersion. */
                        public evaluatorVersion?: (string|null);

                        /**
                         * Creates a new SummarizationConfig instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns SummarizationConfig instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2beta1.GeneratorEvaluationConfig.ISummarizationConfig): google.cloud.dialogflow.v2beta1.GeneratorEvaluationConfig.SummarizationConfig;

                        /**
                         * Encodes the specified SummarizationConfig message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.GeneratorEvaluationConfig.SummarizationConfig.verify|verify} messages.
                         * @param message SummarizationConfig message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2beta1.GeneratorEvaluationConfig.ISummarizationConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified SummarizationConfig message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.GeneratorEvaluationConfig.SummarizationConfig.verify|verify} messages.
                         * @param message SummarizationConfig message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.GeneratorEvaluationConfig.ISummarizationConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a SummarizationConfig message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns SummarizationConfig
                         * @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.cloud.dialogflow.v2beta1.GeneratorEvaluationConfig.SummarizationConfig;

                        /**
                         * Decodes a SummarizationConfig message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns SummarizationConfig
                         * @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.cloud.dialogflow.v2beta1.GeneratorEvaluationConfig.SummarizationConfig;

                        /**
                         * Verifies a SummarizationConfig 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 SummarizationConfig message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns SummarizationConfig
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.GeneratorEvaluationConfig.SummarizationConfig;

                        /**
                         * Creates a plain object from a SummarizationConfig message. Also converts values to other types if specified.
                         * @param message SummarizationConfig
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.dialogflow.v2beta1.GeneratorEvaluationConfig.SummarizationConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this SummarizationConfig to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for SummarizationConfig
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }
                }

                /** Properties of an EvaluationStatus. */
                interface IEvaluationStatus {

                    /** EvaluationStatus done */
                    done?: (boolean|null);

                    /** EvaluationStatus pipelineStatus */
                    pipelineStatus?: (google.rpc.IStatus|null);
                }

                /** Represents an EvaluationStatus. */
                class EvaluationStatus implements IEvaluationStatus {

                    /**
                     * Constructs a new EvaluationStatus.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IEvaluationStatus);

                    /** EvaluationStatus done. */
                    public done?: (boolean|null);

                    /** EvaluationStatus pipelineStatus. */
                    public pipelineStatus?: (google.rpc.IStatus|null);

                    /**
                     * Creates a new EvaluationStatus instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns EvaluationStatus instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IEvaluationStatus): google.cloud.dialogflow.v2beta1.EvaluationStatus;

                    /**
                     * Encodes the specified EvaluationStatus message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.EvaluationStatus.verify|verify} messages.
                     * @param message EvaluationStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IEvaluationStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified EvaluationStatus message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.EvaluationStatus.verify|verify} messages.
                     * @param message EvaluationStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IEvaluationStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an EvaluationStatus message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns EvaluationStatus
                     * @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.cloud.dialogflow.v2beta1.EvaluationStatus;

                    /**
                     * Decodes an EvaluationStatus message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns EvaluationStatus
                     * @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.cloud.dialogflow.v2beta1.EvaluationStatus;

                    /**
                     * Verifies an EvaluationStatus 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 EvaluationStatus message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns EvaluationStatus
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.EvaluationStatus;

                    /**
                     * Creates a plain object from an EvaluationStatus message. Also converts values to other types if specified.
                     * @param message EvaluationStatus
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.EvaluationStatus, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this EvaluationStatus to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for EvaluationStatus
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GeneratorEvaluationOperationMetadata. */
                interface IGeneratorEvaluationOperationMetadata {

                    /** GeneratorEvaluationOperationMetadata generatorEvaluation */
                    generatorEvaluation?: (string|null);
                }

                /** Represents a GeneratorEvaluationOperationMetadata. */
                class GeneratorEvaluationOperationMetadata implements IGeneratorEvaluationOperationMetadata {

                    /**
                     * Constructs a new GeneratorEvaluationOperationMetadata.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IGeneratorEvaluationOperationMetadata);

                    /** GeneratorEvaluationOperationMetadata generatorEvaluation. */
                    public generatorEvaluation: string;

                    /**
                     * Creates a new GeneratorEvaluationOperationMetadata instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GeneratorEvaluationOperationMetadata instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IGeneratorEvaluationOperationMetadata): google.cloud.dialogflow.v2beta1.GeneratorEvaluationOperationMetadata;

                    /**
                     * Encodes the specified GeneratorEvaluationOperationMetadata message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.GeneratorEvaluationOperationMetadata.verify|verify} messages.
                     * @param message GeneratorEvaluationOperationMetadata message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IGeneratorEvaluationOperationMetadata, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GeneratorEvaluationOperationMetadata message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.GeneratorEvaluationOperationMetadata.verify|verify} messages.
                     * @param message GeneratorEvaluationOperationMetadata message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IGeneratorEvaluationOperationMetadata, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GeneratorEvaluationOperationMetadata message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GeneratorEvaluationOperationMetadata
                     * @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.cloud.dialogflow.v2beta1.GeneratorEvaluationOperationMetadata;

                    /**
                     * Decodes a GeneratorEvaluationOperationMetadata message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GeneratorEvaluationOperationMetadata
                     * @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.cloud.dialogflow.v2beta1.GeneratorEvaluationOperationMetadata;

                    /**
                     * Verifies a GeneratorEvaluationOperationMetadata 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 GeneratorEvaluationOperationMetadata message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GeneratorEvaluationOperationMetadata
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.GeneratorEvaluationOperationMetadata;

                    /**
                     * Creates a plain object from a GeneratorEvaluationOperationMetadata message. Also converts values to other types if specified.
                     * @param message GeneratorEvaluationOperationMetadata
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.GeneratorEvaluationOperationMetadata, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GeneratorEvaluationOperationMetadata to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GeneratorEvaluationOperationMetadata
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a HumanAgentAssistantEvent. */
                interface IHumanAgentAssistantEvent {

                    /** HumanAgentAssistantEvent conversation */
                    conversation?: (string|null);

                    /** HumanAgentAssistantEvent participant */
                    participant?: (string|null);

                    /** HumanAgentAssistantEvent suggestionResults */
                    suggestionResults?: (google.cloud.dialogflow.v2beta1.ISuggestionResult[]|null);
                }

                /** Represents a HumanAgentAssistantEvent. */
                class HumanAgentAssistantEvent implements IHumanAgentAssistantEvent {

                    /**
                     * Constructs a new HumanAgentAssistantEvent.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IHumanAgentAssistantEvent);

                    /** HumanAgentAssistantEvent conversation. */
                    public conversation: string;

                    /** HumanAgentAssistantEvent participant. */
                    public participant: string;

                    /** HumanAgentAssistantEvent suggestionResults. */
                    public suggestionResults: google.cloud.dialogflow.v2beta1.ISuggestionResult[];

                    /**
                     * Creates a new HumanAgentAssistantEvent instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns HumanAgentAssistantEvent instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IHumanAgentAssistantEvent): google.cloud.dialogflow.v2beta1.HumanAgentAssistantEvent;

                    /**
                     * Encodes the specified HumanAgentAssistantEvent message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.HumanAgentAssistantEvent.verify|verify} messages.
                     * @param message HumanAgentAssistantEvent message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IHumanAgentAssistantEvent, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified HumanAgentAssistantEvent message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.HumanAgentAssistantEvent.verify|verify} messages.
                     * @param message HumanAgentAssistantEvent message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IHumanAgentAssistantEvent, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a HumanAgentAssistantEvent message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns HumanAgentAssistantEvent
                     * @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.cloud.dialogflow.v2beta1.HumanAgentAssistantEvent;

                    /**
                     * Decodes a HumanAgentAssistantEvent message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns HumanAgentAssistantEvent
                     * @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.cloud.dialogflow.v2beta1.HumanAgentAssistantEvent;

                    /**
                     * Verifies a HumanAgentAssistantEvent 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 HumanAgentAssistantEvent message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns HumanAgentAssistantEvent
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.HumanAgentAssistantEvent;

                    /**
                     * Creates a plain object from a HumanAgentAssistantEvent message. Also converts values to other types if specified.
                     * @param message HumanAgentAssistantEvent
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.HumanAgentAssistantEvent, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this HumanAgentAssistantEvent to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for HumanAgentAssistantEvent
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Represents a KnowledgeBases */
                class KnowledgeBases extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new KnowledgeBases 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 KnowledgeBases 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): KnowledgeBases;

                    /**
                     * Calls ListKnowledgeBases.
                     * @param request ListKnowledgeBasesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ListKnowledgeBasesResponse
                     */
                    public listKnowledgeBases(request: google.cloud.dialogflow.v2beta1.IListKnowledgeBasesRequest, callback: google.cloud.dialogflow.v2beta1.KnowledgeBases.ListKnowledgeBasesCallback): void;

                    /**
                     * Calls ListKnowledgeBases.
                     * @param request ListKnowledgeBasesRequest message or plain object
                     * @returns Promise
                     */
                    public listKnowledgeBases(request: google.cloud.dialogflow.v2beta1.IListKnowledgeBasesRequest): Promise<google.cloud.dialogflow.v2beta1.ListKnowledgeBasesResponse>;

                    /**
                     * Calls GetKnowledgeBase.
                     * @param request GetKnowledgeBaseRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and KnowledgeBase
                     */
                    public getKnowledgeBase(request: google.cloud.dialogflow.v2beta1.IGetKnowledgeBaseRequest, callback: google.cloud.dialogflow.v2beta1.KnowledgeBases.GetKnowledgeBaseCallback): void;

                    /**
                     * Calls GetKnowledgeBase.
                     * @param request GetKnowledgeBaseRequest message or plain object
                     * @returns Promise
                     */
                    public getKnowledgeBase(request: google.cloud.dialogflow.v2beta1.IGetKnowledgeBaseRequest): Promise<google.cloud.dialogflow.v2beta1.KnowledgeBase>;

                    /**
                     * Calls CreateKnowledgeBase.
                     * @param request CreateKnowledgeBaseRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and KnowledgeBase
                     */
                    public createKnowledgeBase(request: google.cloud.dialogflow.v2beta1.ICreateKnowledgeBaseRequest, callback: google.cloud.dialogflow.v2beta1.KnowledgeBases.CreateKnowledgeBaseCallback): void;

                    /**
                     * Calls CreateKnowledgeBase.
                     * @param request CreateKnowledgeBaseRequest message or plain object
                     * @returns Promise
                     */
                    public createKnowledgeBase(request: google.cloud.dialogflow.v2beta1.ICreateKnowledgeBaseRequest): Promise<google.cloud.dialogflow.v2beta1.KnowledgeBase>;

                    /**
                     * Calls DeleteKnowledgeBase.
                     * @param request DeleteKnowledgeBaseRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Empty
                     */
                    public deleteKnowledgeBase(request: google.cloud.dialogflow.v2beta1.IDeleteKnowledgeBaseRequest, callback: google.cloud.dialogflow.v2beta1.KnowledgeBases.DeleteKnowledgeBaseCallback): void;

                    /**
                     * Calls DeleteKnowledgeBase.
                     * @param request DeleteKnowledgeBaseRequest message or plain object
                     * @returns Promise
                     */
                    public deleteKnowledgeBase(request: google.cloud.dialogflow.v2beta1.IDeleteKnowledgeBaseRequest): Promise<google.protobuf.Empty>;

                    /**
                     * Calls UpdateKnowledgeBase.
                     * @param request UpdateKnowledgeBaseRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and KnowledgeBase
                     */
                    public updateKnowledgeBase(request: google.cloud.dialogflow.v2beta1.IUpdateKnowledgeBaseRequest, callback: google.cloud.dialogflow.v2beta1.KnowledgeBases.UpdateKnowledgeBaseCallback): void;

                    /**
                     * Calls UpdateKnowledgeBase.
                     * @param request UpdateKnowledgeBaseRequest message or plain object
                     * @returns Promise
                     */
                    public updateKnowledgeBase(request: google.cloud.dialogflow.v2beta1.IUpdateKnowledgeBaseRequest): Promise<google.cloud.dialogflow.v2beta1.KnowledgeBase>;
                }

                namespace KnowledgeBases {

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2beta1.KnowledgeBases|listKnowledgeBases}.
                     * @param error Error, if any
                     * @param [response] ListKnowledgeBasesResponse
                     */
                    type ListKnowledgeBasesCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2beta1.ListKnowledgeBasesResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2beta1.KnowledgeBases|getKnowledgeBase}.
                     * @param error Error, if any
                     * @param [response] KnowledgeBase
                     */
                    type GetKnowledgeBaseCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2beta1.KnowledgeBase) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2beta1.KnowledgeBases|createKnowledgeBase}.
                     * @param error Error, if any
                     * @param [response] KnowledgeBase
                     */
                    type CreateKnowledgeBaseCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2beta1.KnowledgeBase) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2beta1.KnowledgeBases|deleteKnowledgeBase}.
                     * @param error Error, if any
                     * @param [response] Empty
                     */
                    type DeleteKnowledgeBaseCallback = (error: (Error|null), response?: google.protobuf.Empty) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2beta1.KnowledgeBases|updateKnowledgeBase}.
                     * @param error Error, if any
                     * @param [response] KnowledgeBase
                     */
                    type UpdateKnowledgeBaseCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2beta1.KnowledgeBase) => void;
                }

                /** Properties of a KnowledgeBase. */
                interface IKnowledgeBase {

                    /** KnowledgeBase name */
                    name?: (string|null);

                    /** KnowledgeBase displayName */
                    displayName?: (string|null);

                    /** KnowledgeBase languageCode */
                    languageCode?: (string|null);
                }

                /** Represents a KnowledgeBase. */
                class KnowledgeBase implements IKnowledgeBase {

                    /**
                     * Constructs a new KnowledgeBase.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IKnowledgeBase);

                    /** KnowledgeBase name. */
                    public name: string;

                    /** KnowledgeBase displayName. */
                    public displayName: string;

                    /** KnowledgeBase languageCode. */
                    public languageCode: string;

                    /**
                     * Creates a new KnowledgeBase instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns KnowledgeBase instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IKnowledgeBase): google.cloud.dialogflow.v2beta1.KnowledgeBase;

                    /**
                     * Encodes the specified KnowledgeBase message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.KnowledgeBase.verify|verify} messages.
                     * @param message KnowledgeBase message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IKnowledgeBase, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified KnowledgeBase message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.KnowledgeBase.verify|verify} messages.
                     * @param message KnowledgeBase message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IKnowledgeBase, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a KnowledgeBase message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns KnowledgeBase
                     * @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.cloud.dialogflow.v2beta1.KnowledgeBase;

                    /**
                     * Decodes a KnowledgeBase message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns KnowledgeBase
                     * @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.cloud.dialogflow.v2beta1.KnowledgeBase;

                    /**
                     * Verifies a KnowledgeBase 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 KnowledgeBase message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns KnowledgeBase
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.KnowledgeBase;

                    /**
                     * Creates a plain object from a KnowledgeBase message. Also converts values to other types if specified.
                     * @param message KnowledgeBase
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.KnowledgeBase, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this KnowledgeBase to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for KnowledgeBase
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListKnowledgeBasesRequest. */
                interface IListKnowledgeBasesRequest {

                    /** ListKnowledgeBasesRequest parent */
                    parent?: (string|null);

                    /** ListKnowledgeBasesRequest pageSize */
                    pageSize?: (number|null);

                    /** ListKnowledgeBasesRequest pageToken */
                    pageToken?: (string|null);

                    /** ListKnowledgeBasesRequest filter */
                    filter?: (string|null);
                }

                /** Represents a ListKnowledgeBasesRequest. */
                class ListKnowledgeBasesRequest implements IListKnowledgeBasesRequest {

                    /**
                     * Constructs a new ListKnowledgeBasesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IListKnowledgeBasesRequest);

                    /** ListKnowledgeBasesRequest parent. */
                    public parent: string;

                    /** ListKnowledgeBasesRequest pageSize. */
                    public pageSize: number;

                    /** ListKnowledgeBasesRequest pageToken. */
                    public pageToken: string;

                    /** ListKnowledgeBasesRequest filter. */
                    public filter: string;

                    /**
                     * Creates a new ListKnowledgeBasesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListKnowledgeBasesRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IListKnowledgeBasesRequest): google.cloud.dialogflow.v2beta1.ListKnowledgeBasesRequest;

                    /**
                     * Encodes the specified ListKnowledgeBasesRequest message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.ListKnowledgeBasesRequest.verify|verify} messages.
                     * @param message ListKnowledgeBasesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IListKnowledgeBasesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListKnowledgeBasesRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.ListKnowledgeBasesRequest.verify|verify} messages.
                     * @param message ListKnowledgeBasesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IListKnowledgeBasesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListKnowledgeBasesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListKnowledgeBasesRequest
                     * @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.cloud.dialogflow.v2beta1.ListKnowledgeBasesRequest;

                    /**
                     * Decodes a ListKnowledgeBasesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListKnowledgeBasesRequest
                     * @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.cloud.dialogflow.v2beta1.ListKnowledgeBasesRequest;

                    /**
                     * Verifies a ListKnowledgeBasesRequest 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 ListKnowledgeBasesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListKnowledgeBasesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.ListKnowledgeBasesRequest;

                    /**
                     * Creates a plain object from a ListKnowledgeBasesRequest message. Also converts values to other types if specified.
                     * @param message ListKnowledgeBasesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.ListKnowledgeBasesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListKnowledgeBasesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListKnowledgeBasesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListKnowledgeBasesResponse. */
                interface IListKnowledgeBasesResponse {

                    /** ListKnowledgeBasesResponse knowledgeBases */
                    knowledgeBases?: (google.cloud.dialogflow.v2beta1.IKnowledgeBase[]|null);

                    /** ListKnowledgeBasesResponse nextPageToken */
                    nextPageToken?: (string|null);
                }

                /** Represents a ListKnowledgeBasesResponse. */
                class ListKnowledgeBasesResponse implements IListKnowledgeBasesResponse {

                    /**
                     * Constructs a new ListKnowledgeBasesResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IListKnowledgeBasesResponse);

                    /** ListKnowledgeBasesResponse knowledgeBases. */
                    public knowledgeBases: google.cloud.dialogflow.v2beta1.IKnowledgeBase[];

                    /** ListKnowledgeBasesResponse nextPageToken. */
                    public nextPageToken: string;

                    /**
                     * Creates a new ListKnowledgeBasesResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListKnowledgeBasesResponse instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IListKnowledgeBasesResponse): google.cloud.dialogflow.v2beta1.ListKnowledgeBasesResponse;

                    /**
                     * Encodes the specified ListKnowledgeBasesResponse message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.ListKnowledgeBasesResponse.verify|verify} messages.
                     * @param message ListKnowledgeBasesResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IListKnowledgeBasesResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListKnowledgeBasesResponse message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.ListKnowledgeBasesResponse.verify|verify} messages.
                     * @param message ListKnowledgeBasesResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IListKnowledgeBasesResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListKnowledgeBasesResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListKnowledgeBasesResponse
                     * @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.cloud.dialogflow.v2beta1.ListKnowledgeBasesResponse;

                    /**
                     * Decodes a ListKnowledgeBasesResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListKnowledgeBasesResponse
                     * @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.cloud.dialogflow.v2beta1.ListKnowledgeBasesResponse;

                    /**
                     * Verifies a ListKnowledgeBasesResponse 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 ListKnowledgeBasesResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListKnowledgeBasesResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.ListKnowledgeBasesResponse;

                    /**
                     * Creates a plain object from a ListKnowledgeBasesResponse message. Also converts values to other types if specified.
                     * @param message ListKnowledgeBasesResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.ListKnowledgeBasesResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListKnowledgeBasesResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListKnowledgeBasesResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetKnowledgeBaseRequest. */
                interface IGetKnowledgeBaseRequest {

                    /** GetKnowledgeBaseRequest name */
                    name?: (string|null);
                }

                /** Represents a GetKnowledgeBaseRequest. */
                class GetKnowledgeBaseRequest implements IGetKnowledgeBaseRequest {

                    /**
                     * Constructs a new GetKnowledgeBaseRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IGetKnowledgeBaseRequest);

                    /** GetKnowledgeBaseRequest name. */
                    public name: string;

                    /**
                     * Creates a new GetKnowledgeBaseRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetKnowledgeBaseRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IGetKnowledgeBaseRequest): google.cloud.dialogflow.v2beta1.GetKnowledgeBaseRequest;

                    /**
                     * Encodes the specified GetKnowledgeBaseRequest message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.GetKnowledgeBaseRequest.verify|verify} messages.
                     * @param message GetKnowledgeBaseRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IGetKnowledgeBaseRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetKnowledgeBaseRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.GetKnowledgeBaseRequest.verify|verify} messages.
                     * @param message GetKnowledgeBaseRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IGetKnowledgeBaseRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetKnowledgeBaseRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetKnowledgeBaseRequest
                     * @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.cloud.dialogflow.v2beta1.GetKnowledgeBaseRequest;

                    /**
                     * Decodes a GetKnowledgeBaseRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetKnowledgeBaseRequest
                     * @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.cloud.dialogflow.v2beta1.GetKnowledgeBaseRequest;

                    /**
                     * Verifies a GetKnowledgeBaseRequest 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 GetKnowledgeBaseRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetKnowledgeBaseRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.GetKnowledgeBaseRequest;

                    /**
                     * Creates a plain object from a GetKnowledgeBaseRequest message. Also converts values to other types if specified.
                     * @param message GetKnowledgeBaseRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.GetKnowledgeBaseRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetKnowledgeBaseRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetKnowledgeBaseRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a CreateKnowledgeBaseRequest. */
                interface ICreateKnowledgeBaseRequest {

                    /** CreateKnowledgeBaseRequest parent */
                    parent?: (string|null);

                    /** CreateKnowledgeBaseRequest knowledgeBase */
                    knowledgeBase?: (google.cloud.dialogflow.v2beta1.IKnowledgeBase|null);
                }

                /** Represents a CreateKnowledgeBaseRequest. */
                class CreateKnowledgeBaseRequest implements ICreateKnowledgeBaseRequest {

                    /**
                     * Constructs a new CreateKnowledgeBaseRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.ICreateKnowledgeBaseRequest);

                    /** CreateKnowledgeBaseRequest parent. */
                    public parent: string;

                    /** CreateKnowledgeBaseRequest knowledgeBase. */
                    public knowledgeBase?: (google.cloud.dialogflow.v2beta1.IKnowledgeBase|null);

                    /**
                     * Creates a new CreateKnowledgeBaseRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CreateKnowledgeBaseRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.ICreateKnowledgeBaseRequest): google.cloud.dialogflow.v2beta1.CreateKnowledgeBaseRequest;

                    /**
                     * Encodes the specified CreateKnowledgeBaseRequest message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.CreateKnowledgeBaseRequest.verify|verify} messages.
                     * @param message CreateKnowledgeBaseRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.ICreateKnowledgeBaseRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CreateKnowledgeBaseRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.CreateKnowledgeBaseRequest.verify|verify} messages.
                     * @param message CreateKnowledgeBaseRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.ICreateKnowledgeBaseRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CreateKnowledgeBaseRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CreateKnowledgeBaseRequest
                     * @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.cloud.dialogflow.v2beta1.CreateKnowledgeBaseRequest;

                    /**
                     * Decodes a CreateKnowledgeBaseRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CreateKnowledgeBaseRequest
                     * @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.cloud.dialogflow.v2beta1.CreateKnowledgeBaseRequest;

                    /**
                     * Verifies a CreateKnowledgeBaseRequest 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 CreateKnowledgeBaseRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CreateKnowledgeBaseRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.CreateKnowledgeBaseRequest;

                    /**
                     * Creates a plain object from a CreateKnowledgeBaseRequest message. Also converts values to other types if specified.
                     * @param message CreateKnowledgeBaseRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.CreateKnowledgeBaseRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CreateKnowledgeBaseRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CreateKnowledgeBaseRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteKnowledgeBaseRequest. */
                interface IDeleteKnowledgeBaseRequest {

                    /** DeleteKnowledgeBaseRequest name */
                    name?: (string|null);

                    /** DeleteKnowledgeBaseRequest force */
                    force?: (boolean|null);
                }

                /** Represents a DeleteKnowledgeBaseRequest. */
                class DeleteKnowledgeBaseRequest implements IDeleteKnowledgeBaseRequest {

                    /**
                     * Constructs a new DeleteKnowledgeBaseRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IDeleteKnowledgeBaseRequest);

                    /** DeleteKnowledgeBaseRequest name. */
                    public name: string;

                    /** DeleteKnowledgeBaseRequest force. */
                    public force: boolean;

                    /**
                     * Creates a new DeleteKnowledgeBaseRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteKnowledgeBaseRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IDeleteKnowledgeBaseRequest): google.cloud.dialogflow.v2beta1.DeleteKnowledgeBaseRequest;

                    /**
                     * Encodes the specified DeleteKnowledgeBaseRequest message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.DeleteKnowledgeBaseRequest.verify|verify} messages.
                     * @param message DeleteKnowledgeBaseRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IDeleteKnowledgeBaseRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteKnowledgeBaseRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.DeleteKnowledgeBaseRequest.verify|verify} messages.
                     * @param message DeleteKnowledgeBaseRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IDeleteKnowledgeBaseRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteKnowledgeBaseRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteKnowledgeBaseRequest
                     * @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.cloud.dialogflow.v2beta1.DeleteKnowledgeBaseRequest;

                    /**
                     * Decodes a DeleteKnowledgeBaseRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteKnowledgeBaseRequest
                     * @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.cloud.dialogflow.v2beta1.DeleteKnowledgeBaseRequest;

                    /**
                     * Verifies a DeleteKnowledgeBaseRequest 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 DeleteKnowledgeBaseRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteKnowledgeBaseRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.DeleteKnowledgeBaseRequest;

                    /**
                     * Creates a plain object from a DeleteKnowledgeBaseRequest message. Also converts values to other types if specified.
                     * @param message DeleteKnowledgeBaseRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.DeleteKnowledgeBaseRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteKnowledgeBaseRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteKnowledgeBaseRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an UpdateKnowledgeBaseRequest. */
                interface IUpdateKnowledgeBaseRequest {

                    /** UpdateKnowledgeBaseRequest knowledgeBase */
                    knowledgeBase?: (google.cloud.dialogflow.v2beta1.IKnowledgeBase|null);

                    /** UpdateKnowledgeBaseRequest updateMask */
                    updateMask?: (google.protobuf.IFieldMask|null);
                }

                /** Represents an UpdateKnowledgeBaseRequest. */
                class UpdateKnowledgeBaseRequest implements IUpdateKnowledgeBaseRequest {

                    /**
                     * Constructs a new UpdateKnowledgeBaseRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IUpdateKnowledgeBaseRequest);

                    /** UpdateKnowledgeBaseRequest knowledgeBase. */
                    public knowledgeBase?: (google.cloud.dialogflow.v2beta1.IKnowledgeBase|null);

                    /** UpdateKnowledgeBaseRequest updateMask. */
                    public updateMask?: (google.protobuf.IFieldMask|null);

                    /**
                     * Creates a new UpdateKnowledgeBaseRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UpdateKnowledgeBaseRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IUpdateKnowledgeBaseRequest): google.cloud.dialogflow.v2beta1.UpdateKnowledgeBaseRequest;

                    /**
                     * Encodes the specified UpdateKnowledgeBaseRequest message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.UpdateKnowledgeBaseRequest.verify|verify} messages.
                     * @param message UpdateKnowledgeBaseRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IUpdateKnowledgeBaseRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified UpdateKnowledgeBaseRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.UpdateKnowledgeBaseRequest.verify|verify} messages.
                     * @param message UpdateKnowledgeBaseRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IUpdateKnowledgeBaseRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an UpdateKnowledgeBaseRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns UpdateKnowledgeBaseRequest
                     * @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.cloud.dialogflow.v2beta1.UpdateKnowledgeBaseRequest;

                    /**
                     * Decodes an UpdateKnowledgeBaseRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns UpdateKnowledgeBaseRequest
                     * @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.cloud.dialogflow.v2beta1.UpdateKnowledgeBaseRequest;

                    /**
                     * Verifies an UpdateKnowledgeBaseRequest 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 UpdateKnowledgeBaseRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UpdateKnowledgeBaseRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.UpdateKnowledgeBaseRequest;

                    /**
                     * Creates a plain object from an UpdateKnowledgeBaseRequest message. Also converts values to other types if specified.
                     * @param message UpdateKnowledgeBaseRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.UpdateKnowledgeBaseRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this UpdateKnowledgeBaseRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for UpdateKnowledgeBaseRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Represents a PhoneNumbers */
                class PhoneNumbers extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new PhoneNumbers 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 PhoneNumbers 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): PhoneNumbers;

                    /**
                     * Calls ListPhoneNumbers.
                     * @param request ListPhoneNumbersRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ListPhoneNumbersResponse
                     */
                    public listPhoneNumbers(request: google.cloud.dialogflow.v2beta1.IListPhoneNumbersRequest, callback: google.cloud.dialogflow.v2beta1.PhoneNumbers.ListPhoneNumbersCallback): void;

                    /**
                     * Calls ListPhoneNumbers.
                     * @param request ListPhoneNumbersRequest message or plain object
                     * @returns Promise
                     */
                    public listPhoneNumbers(request: google.cloud.dialogflow.v2beta1.IListPhoneNumbersRequest): Promise<google.cloud.dialogflow.v2beta1.ListPhoneNumbersResponse>;

                    /**
                     * Calls UpdatePhoneNumber.
                     * @param request UpdatePhoneNumberRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and PhoneNumber
                     */
                    public updatePhoneNumber(request: google.cloud.dialogflow.v2beta1.IUpdatePhoneNumberRequest, callback: google.cloud.dialogflow.v2beta1.PhoneNumbers.UpdatePhoneNumberCallback): void;

                    /**
                     * Calls UpdatePhoneNumber.
                     * @param request UpdatePhoneNumberRequest message or plain object
                     * @returns Promise
                     */
                    public updatePhoneNumber(request: google.cloud.dialogflow.v2beta1.IUpdatePhoneNumberRequest): Promise<google.cloud.dialogflow.v2beta1.PhoneNumber>;

                    /**
                     * Calls DeletePhoneNumber.
                     * @param request DeletePhoneNumberRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and PhoneNumber
                     */
                    public deletePhoneNumber(request: google.cloud.dialogflow.v2beta1.IDeletePhoneNumberRequest, callback: google.cloud.dialogflow.v2beta1.PhoneNumbers.DeletePhoneNumberCallback): void;

                    /**
                     * Calls DeletePhoneNumber.
                     * @param request DeletePhoneNumberRequest message or plain object
                     * @returns Promise
                     */
                    public deletePhoneNumber(request: google.cloud.dialogflow.v2beta1.IDeletePhoneNumberRequest): Promise<google.cloud.dialogflow.v2beta1.PhoneNumber>;

                    /**
                     * Calls UndeletePhoneNumber.
                     * @param request UndeletePhoneNumberRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and PhoneNumber
                     */
                    public undeletePhoneNumber(request: google.cloud.dialogflow.v2beta1.IUndeletePhoneNumberRequest, callback: google.cloud.dialogflow.v2beta1.PhoneNumbers.UndeletePhoneNumberCallback): void;

                    /**
                     * Calls UndeletePhoneNumber.
                     * @param request UndeletePhoneNumberRequest message or plain object
                     * @returns Promise
                     */
                    public undeletePhoneNumber(request: google.cloud.dialogflow.v2beta1.IUndeletePhoneNumberRequest): Promise<google.cloud.dialogflow.v2beta1.PhoneNumber>;
                }

                namespace PhoneNumbers {

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2beta1.PhoneNumbers|listPhoneNumbers}.
                     * @param error Error, if any
                     * @param [response] ListPhoneNumbersResponse
                     */
                    type ListPhoneNumbersCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2beta1.ListPhoneNumbersResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2beta1.PhoneNumbers|updatePhoneNumber}.
                     * @param error Error, if any
                     * @param [response] PhoneNumber
                     */
                    type UpdatePhoneNumberCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2beta1.PhoneNumber) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2beta1.PhoneNumbers|deletePhoneNumber}.
                     * @param error Error, if any
                     * @param [response] PhoneNumber
                     */
                    type DeletePhoneNumberCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2beta1.PhoneNumber) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2beta1.PhoneNumbers|undeletePhoneNumber}.
                     * @param error Error, if any
                     * @param [response] PhoneNumber
                     */
                    type UndeletePhoneNumberCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2beta1.PhoneNumber) => void;
                }

                /** Properties of a PhoneNumber. */
                interface IPhoneNumber {

                    /** PhoneNumber name */
                    name?: (string|null);

                    /** PhoneNumber phoneNumber */
                    phoneNumber?: (string|null);

                    /** PhoneNumber conversationProfile */
                    conversationProfile?: (string|null);

                    /** PhoneNumber lifecycleState */
                    lifecycleState?: (google.cloud.dialogflow.v2beta1.PhoneNumber.LifecycleState|keyof typeof google.cloud.dialogflow.v2beta1.PhoneNumber.LifecycleState|null);

                    /** PhoneNumber allowedSipTrunks */
                    allowedSipTrunks?: (google.cloud.dialogflow.v2beta1.PhoneNumber.IAllowedSipTrunks|null);

                    /** PhoneNumber purgeTime */
                    purgeTime?: (google.protobuf.ITimestamp|null);
                }

                /** Represents a PhoneNumber. */
                class PhoneNumber implements IPhoneNumber {

                    /**
                     * Constructs a new PhoneNumber.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IPhoneNumber);

                    /** PhoneNumber name. */
                    public name: string;

                    /** PhoneNumber phoneNumber. */
                    public phoneNumber: string;

                    /** PhoneNumber conversationProfile. */
                    public conversationProfile: string;

                    /** PhoneNumber lifecycleState. */
                    public lifecycleState: (google.cloud.dialogflow.v2beta1.PhoneNumber.LifecycleState|keyof typeof google.cloud.dialogflow.v2beta1.PhoneNumber.LifecycleState);

                    /** PhoneNumber allowedSipTrunks. */
                    public allowedSipTrunks?: (google.cloud.dialogflow.v2beta1.PhoneNumber.IAllowedSipTrunks|null);

                    /** PhoneNumber purgeTime. */
                    public purgeTime?: (google.protobuf.ITimestamp|null);

                    /** PhoneNumber inboundRestriction. */
                    public inboundRestriction?: "allowedSipTrunks";

                    /**
                     * Creates a new PhoneNumber instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PhoneNumber instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IPhoneNumber): google.cloud.dialogflow.v2beta1.PhoneNumber;

                    /**
                     * Encodes the specified PhoneNumber message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.PhoneNumber.verify|verify} messages.
                     * @param message PhoneNumber message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IPhoneNumber, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PhoneNumber message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.PhoneNumber.verify|verify} messages.
                     * @param message PhoneNumber message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IPhoneNumber, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PhoneNumber message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PhoneNumber
                     * @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.cloud.dialogflow.v2beta1.PhoneNumber;

                    /**
                     * Decodes a PhoneNumber message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PhoneNumber
                     * @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.cloud.dialogflow.v2beta1.PhoneNumber;

                    /**
                     * Verifies a PhoneNumber 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 PhoneNumber message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PhoneNumber
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.PhoneNumber;

                    /**
                     * Creates a plain object from a PhoneNumber message. Also converts values to other types if specified.
                     * @param message PhoneNumber
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.PhoneNumber, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PhoneNumber to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PhoneNumber
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace PhoneNumber {

                    /** LifecycleState enum. */
                    enum LifecycleState {
                        LIFECYCLE_STATE_UNSPECIFIED = 0,
                        ACTIVE = 1,
                        DELETE_REQUESTED = 2
                    }

                    /** Properties of an AllowedSipTrunks. */
                    interface IAllowedSipTrunks {

                        /** AllowedSipTrunks sipTrunks */
                        sipTrunks?: (string[]|null);

                        /** AllowedSipTrunks carrierIds */
                        carrierIds?: (string[]|null);
                    }

                    /** Represents an AllowedSipTrunks. */
                    class AllowedSipTrunks implements IAllowedSipTrunks {

                        /**
                         * Constructs a new AllowedSipTrunks.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2beta1.PhoneNumber.IAllowedSipTrunks);

                        /** AllowedSipTrunks sipTrunks. */
                        public sipTrunks: string[];

                        /** AllowedSipTrunks carrierIds. */
                        public carrierIds: string[];

                        /**
                         * Creates a new AllowedSipTrunks instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns AllowedSipTrunks instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2beta1.PhoneNumber.IAllowedSipTrunks): google.cloud.dialogflow.v2beta1.PhoneNumber.AllowedSipTrunks;

                        /**
                         * Encodes the specified AllowedSipTrunks message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.PhoneNumber.AllowedSipTrunks.verify|verify} messages.
                         * @param message AllowedSipTrunks message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2beta1.PhoneNumber.IAllowedSipTrunks, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified AllowedSipTrunks message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.PhoneNumber.AllowedSipTrunks.verify|verify} messages.
                         * @param message AllowedSipTrunks message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.PhoneNumber.IAllowedSipTrunks, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes an AllowedSipTrunks message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns AllowedSipTrunks
                         * @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.cloud.dialogflow.v2beta1.PhoneNumber.AllowedSipTrunks;

                        /**
                         * Decodes an AllowedSipTrunks message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns AllowedSipTrunks
                         * @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.cloud.dialogflow.v2beta1.PhoneNumber.AllowedSipTrunks;

                        /**
                         * Verifies an AllowedSipTrunks 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 AllowedSipTrunks message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns AllowedSipTrunks
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.PhoneNumber.AllowedSipTrunks;

                        /**
                         * Creates a plain object from an AllowedSipTrunks message. Also converts values to other types if specified.
                         * @param message AllowedSipTrunks
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.dialogflow.v2beta1.PhoneNumber.AllowedSipTrunks, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this AllowedSipTrunks to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for AllowedSipTrunks
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }
                }

                /** Properties of a DeletePhoneNumberRequest. */
                interface IDeletePhoneNumberRequest {

                    /** DeletePhoneNumberRequest name */
                    name?: (string|null);
                }

                /** Represents a DeletePhoneNumberRequest. */
                class DeletePhoneNumberRequest implements IDeletePhoneNumberRequest {

                    /**
                     * Constructs a new DeletePhoneNumberRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IDeletePhoneNumberRequest);

                    /** DeletePhoneNumberRequest name. */
                    public name: string;

                    /**
                     * Creates a new DeletePhoneNumberRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeletePhoneNumberRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IDeletePhoneNumberRequest): google.cloud.dialogflow.v2beta1.DeletePhoneNumberRequest;

                    /**
                     * Encodes the specified DeletePhoneNumberRequest message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.DeletePhoneNumberRequest.verify|verify} messages.
                     * @param message DeletePhoneNumberRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IDeletePhoneNumberRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeletePhoneNumberRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.DeletePhoneNumberRequest.verify|verify} messages.
                     * @param message DeletePhoneNumberRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IDeletePhoneNumberRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeletePhoneNumberRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeletePhoneNumberRequest
                     * @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.cloud.dialogflow.v2beta1.DeletePhoneNumberRequest;

                    /**
                     * Decodes a DeletePhoneNumberRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeletePhoneNumberRequest
                     * @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.cloud.dialogflow.v2beta1.DeletePhoneNumberRequest;

                    /**
                     * Verifies a DeletePhoneNumberRequest 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 DeletePhoneNumberRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeletePhoneNumberRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.DeletePhoneNumberRequest;

                    /**
                     * Creates a plain object from a DeletePhoneNumberRequest message. Also converts values to other types if specified.
                     * @param message DeletePhoneNumberRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.DeletePhoneNumberRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeletePhoneNumberRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeletePhoneNumberRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an UndeletePhoneNumberRequest. */
                interface IUndeletePhoneNumberRequest {

                    /** UndeletePhoneNumberRequest name */
                    name?: (string|null);
                }

                /** Represents an UndeletePhoneNumberRequest. */
                class UndeletePhoneNumberRequest implements IUndeletePhoneNumberRequest {

                    /**
                     * Constructs a new UndeletePhoneNumberRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IUndeletePhoneNumberRequest);

                    /** UndeletePhoneNumberRequest name. */
                    public name: string;

                    /**
                     * Creates a new UndeletePhoneNumberRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UndeletePhoneNumberRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IUndeletePhoneNumberRequest): google.cloud.dialogflow.v2beta1.UndeletePhoneNumberRequest;

                    /**
                     * Encodes the specified UndeletePhoneNumberRequest message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.UndeletePhoneNumberRequest.verify|verify} messages.
                     * @param message UndeletePhoneNumberRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IUndeletePhoneNumberRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified UndeletePhoneNumberRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.UndeletePhoneNumberRequest.verify|verify} messages.
                     * @param message UndeletePhoneNumberRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IUndeletePhoneNumberRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an UndeletePhoneNumberRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns UndeletePhoneNumberRequest
                     * @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.cloud.dialogflow.v2beta1.UndeletePhoneNumberRequest;

                    /**
                     * Decodes an UndeletePhoneNumberRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns UndeletePhoneNumberRequest
                     * @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.cloud.dialogflow.v2beta1.UndeletePhoneNumberRequest;

                    /**
                     * Verifies an UndeletePhoneNumberRequest 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 UndeletePhoneNumberRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UndeletePhoneNumberRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.UndeletePhoneNumberRequest;

                    /**
                     * Creates a plain object from an UndeletePhoneNumberRequest message. Also converts values to other types if specified.
                     * @param message UndeletePhoneNumberRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.UndeletePhoneNumberRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this UndeletePhoneNumberRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for UndeletePhoneNumberRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListPhoneNumbersRequest. */
                interface IListPhoneNumbersRequest {

                    /** ListPhoneNumbersRequest parent */
                    parent?: (string|null);

                    /** ListPhoneNumbersRequest pageSize */
                    pageSize?: (number|null);

                    /** ListPhoneNumbersRequest pageToken */
                    pageToken?: (string|null);

                    /** ListPhoneNumbersRequest showDeleted */
                    showDeleted?: (boolean|null);
                }

                /** Represents a ListPhoneNumbersRequest. */
                class ListPhoneNumbersRequest implements IListPhoneNumbersRequest {

                    /**
                     * Constructs a new ListPhoneNumbersRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IListPhoneNumbersRequest);

                    /** ListPhoneNumbersRequest parent. */
                    public parent: string;

                    /** ListPhoneNumbersRequest pageSize. */
                    public pageSize: number;

                    /** ListPhoneNumbersRequest pageToken. */
                    public pageToken: string;

                    /** ListPhoneNumbersRequest showDeleted. */
                    public showDeleted: boolean;

                    /**
                     * Creates a new ListPhoneNumbersRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListPhoneNumbersRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IListPhoneNumbersRequest): google.cloud.dialogflow.v2beta1.ListPhoneNumbersRequest;

                    /**
                     * Encodes the specified ListPhoneNumbersRequest message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.ListPhoneNumbersRequest.verify|verify} messages.
                     * @param message ListPhoneNumbersRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IListPhoneNumbersRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListPhoneNumbersRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.ListPhoneNumbersRequest.verify|verify} messages.
                     * @param message ListPhoneNumbersRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IListPhoneNumbersRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListPhoneNumbersRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListPhoneNumbersRequest
                     * @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.cloud.dialogflow.v2beta1.ListPhoneNumbersRequest;

                    /**
                     * Decodes a ListPhoneNumbersRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListPhoneNumbersRequest
                     * @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.cloud.dialogflow.v2beta1.ListPhoneNumbersRequest;

                    /**
                     * Verifies a ListPhoneNumbersRequest 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 ListPhoneNumbersRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListPhoneNumbersRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.ListPhoneNumbersRequest;

                    /**
                     * Creates a plain object from a ListPhoneNumbersRequest message. Also converts values to other types if specified.
                     * @param message ListPhoneNumbersRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.ListPhoneNumbersRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListPhoneNumbersRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListPhoneNumbersRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListPhoneNumbersResponse. */
                interface IListPhoneNumbersResponse {

                    /** ListPhoneNumbersResponse phoneNumbers */
                    phoneNumbers?: (google.cloud.dialogflow.v2beta1.IPhoneNumber[]|null);

                    /** ListPhoneNumbersResponse nextPageToken */
                    nextPageToken?: (string|null);
                }

                /** Represents a ListPhoneNumbersResponse. */
                class ListPhoneNumbersResponse implements IListPhoneNumbersResponse {

                    /**
                     * Constructs a new ListPhoneNumbersResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IListPhoneNumbersResponse);

                    /** ListPhoneNumbersResponse phoneNumbers. */
                    public phoneNumbers: google.cloud.dialogflow.v2beta1.IPhoneNumber[];

                    /** ListPhoneNumbersResponse nextPageToken. */
                    public nextPageToken: string;

                    /**
                     * Creates a new ListPhoneNumbersResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListPhoneNumbersResponse instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IListPhoneNumbersResponse): google.cloud.dialogflow.v2beta1.ListPhoneNumbersResponse;

                    /**
                     * Encodes the specified ListPhoneNumbersResponse message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.ListPhoneNumbersResponse.verify|verify} messages.
                     * @param message ListPhoneNumbersResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IListPhoneNumbersResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListPhoneNumbersResponse message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.ListPhoneNumbersResponse.verify|verify} messages.
                     * @param message ListPhoneNumbersResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IListPhoneNumbersResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListPhoneNumbersResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListPhoneNumbersResponse
                     * @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.cloud.dialogflow.v2beta1.ListPhoneNumbersResponse;

                    /**
                     * Decodes a ListPhoneNumbersResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListPhoneNumbersResponse
                     * @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.cloud.dialogflow.v2beta1.ListPhoneNumbersResponse;

                    /**
                     * Verifies a ListPhoneNumbersResponse 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 ListPhoneNumbersResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListPhoneNumbersResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.ListPhoneNumbersResponse;

                    /**
                     * Creates a plain object from a ListPhoneNumbersResponse message. Also converts values to other types if specified.
                     * @param message ListPhoneNumbersResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.ListPhoneNumbersResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListPhoneNumbersResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListPhoneNumbersResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an UpdatePhoneNumberRequest. */
                interface IUpdatePhoneNumberRequest {

                    /** UpdatePhoneNumberRequest phoneNumber */
                    phoneNumber?: (google.cloud.dialogflow.v2beta1.IPhoneNumber|null);

                    /** UpdatePhoneNumberRequest updateMask */
                    updateMask?: (google.protobuf.IFieldMask|null);
                }

                /** Represents an UpdatePhoneNumberRequest. */
                class UpdatePhoneNumberRequest implements IUpdatePhoneNumberRequest {

                    /**
                     * Constructs a new UpdatePhoneNumberRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IUpdatePhoneNumberRequest);

                    /** UpdatePhoneNumberRequest phoneNumber. */
                    public phoneNumber?: (google.cloud.dialogflow.v2beta1.IPhoneNumber|null);

                    /** UpdatePhoneNumberRequest updateMask. */
                    public updateMask?: (google.protobuf.IFieldMask|null);

                    /**
                     * Creates a new UpdatePhoneNumberRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UpdatePhoneNumberRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IUpdatePhoneNumberRequest): google.cloud.dialogflow.v2beta1.UpdatePhoneNumberRequest;

                    /**
                     * Encodes the specified UpdatePhoneNumberRequest message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.UpdatePhoneNumberRequest.verify|verify} messages.
                     * @param message UpdatePhoneNumberRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IUpdatePhoneNumberRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified UpdatePhoneNumberRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.UpdatePhoneNumberRequest.verify|verify} messages.
                     * @param message UpdatePhoneNumberRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IUpdatePhoneNumberRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an UpdatePhoneNumberRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns UpdatePhoneNumberRequest
                     * @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.cloud.dialogflow.v2beta1.UpdatePhoneNumberRequest;

                    /**
                     * Decodes an UpdatePhoneNumberRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns UpdatePhoneNumberRequest
                     * @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.cloud.dialogflow.v2beta1.UpdatePhoneNumberRequest;

                    /**
                     * Verifies an UpdatePhoneNumberRequest 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 UpdatePhoneNumberRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UpdatePhoneNumberRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.UpdatePhoneNumberRequest;

                    /**
                     * Creates a plain object from an UpdatePhoneNumberRequest message. Also converts values to other types if specified.
                     * @param message UpdatePhoneNumberRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.UpdatePhoneNumberRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this UpdatePhoneNumberRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for UpdatePhoneNumberRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Represents a SipTrunks */
                class SipTrunks extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new SipTrunks 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 SipTrunks 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): SipTrunks;

                    /**
                     * Calls CreateSipTrunk.
                     * @param request CreateSipTrunkRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and SipTrunk
                     */
                    public createSipTrunk(request: google.cloud.dialogflow.v2beta1.ICreateSipTrunkRequest, callback: google.cloud.dialogflow.v2beta1.SipTrunks.CreateSipTrunkCallback): void;

                    /**
                     * Calls CreateSipTrunk.
                     * @param request CreateSipTrunkRequest message or plain object
                     * @returns Promise
                     */
                    public createSipTrunk(request: google.cloud.dialogflow.v2beta1.ICreateSipTrunkRequest): Promise<google.cloud.dialogflow.v2beta1.SipTrunk>;

                    /**
                     * Calls DeleteSipTrunk.
                     * @param request DeleteSipTrunkRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Empty
                     */
                    public deleteSipTrunk(request: google.cloud.dialogflow.v2beta1.IDeleteSipTrunkRequest, callback: google.cloud.dialogflow.v2beta1.SipTrunks.DeleteSipTrunkCallback): void;

                    /**
                     * Calls DeleteSipTrunk.
                     * @param request DeleteSipTrunkRequest message or plain object
                     * @returns Promise
                     */
                    public deleteSipTrunk(request: google.cloud.dialogflow.v2beta1.IDeleteSipTrunkRequest): Promise<google.protobuf.Empty>;

                    /**
                     * Calls ListSipTrunks.
                     * @param request ListSipTrunksRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ListSipTrunksResponse
                     */
                    public listSipTrunks(request: google.cloud.dialogflow.v2beta1.IListSipTrunksRequest, callback: google.cloud.dialogflow.v2beta1.SipTrunks.ListSipTrunksCallback): void;

                    /**
                     * Calls ListSipTrunks.
                     * @param request ListSipTrunksRequest message or plain object
                     * @returns Promise
                     */
                    public listSipTrunks(request: google.cloud.dialogflow.v2beta1.IListSipTrunksRequest): Promise<google.cloud.dialogflow.v2beta1.ListSipTrunksResponse>;

                    /**
                     * Calls GetSipTrunk.
                     * @param request GetSipTrunkRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and SipTrunk
                     */
                    public getSipTrunk(request: google.cloud.dialogflow.v2beta1.IGetSipTrunkRequest, callback: google.cloud.dialogflow.v2beta1.SipTrunks.GetSipTrunkCallback): void;

                    /**
                     * Calls GetSipTrunk.
                     * @param request GetSipTrunkRequest message or plain object
                     * @returns Promise
                     */
                    public getSipTrunk(request: google.cloud.dialogflow.v2beta1.IGetSipTrunkRequest): Promise<google.cloud.dialogflow.v2beta1.SipTrunk>;

                    /**
                     * Calls UpdateSipTrunk.
                     * @param request UpdateSipTrunkRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and SipTrunk
                     */
                    public updateSipTrunk(request: google.cloud.dialogflow.v2beta1.IUpdateSipTrunkRequest, callback: google.cloud.dialogflow.v2beta1.SipTrunks.UpdateSipTrunkCallback): void;

                    /**
                     * Calls UpdateSipTrunk.
                     * @param request UpdateSipTrunkRequest message or plain object
                     * @returns Promise
                     */
                    public updateSipTrunk(request: google.cloud.dialogflow.v2beta1.IUpdateSipTrunkRequest): Promise<google.cloud.dialogflow.v2beta1.SipTrunk>;
                }

                namespace SipTrunks {

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2beta1.SipTrunks|createSipTrunk}.
                     * @param error Error, if any
                     * @param [response] SipTrunk
                     */
                    type CreateSipTrunkCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2beta1.SipTrunk) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2beta1.SipTrunks|deleteSipTrunk}.
                     * @param error Error, if any
                     * @param [response] Empty
                     */
                    type DeleteSipTrunkCallback = (error: (Error|null), response?: google.protobuf.Empty) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2beta1.SipTrunks|listSipTrunks}.
                     * @param error Error, if any
                     * @param [response] ListSipTrunksResponse
                     */
                    type ListSipTrunksCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2beta1.ListSipTrunksResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2beta1.SipTrunks|getSipTrunk}.
                     * @param error Error, if any
                     * @param [response] SipTrunk
                     */
                    type GetSipTrunkCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2beta1.SipTrunk) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2beta1.SipTrunks|updateSipTrunk}.
                     * @param error Error, if any
                     * @param [response] SipTrunk
                     */
                    type UpdateSipTrunkCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2beta1.SipTrunk) => void;
                }

                /** Properties of a CreateSipTrunkRequest. */
                interface ICreateSipTrunkRequest {

                    /** CreateSipTrunkRequest parent */
                    parent?: (string|null);

                    /** CreateSipTrunkRequest sipTrunk */
                    sipTrunk?: (google.cloud.dialogflow.v2beta1.ISipTrunk|null);
                }

                /** Represents a CreateSipTrunkRequest. */
                class CreateSipTrunkRequest implements ICreateSipTrunkRequest {

                    /**
                     * Constructs a new CreateSipTrunkRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.ICreateSipTrunkRequest);

                    /** CreateSipTrunkRequest parent. */
                    public parent: string;

                    /** CreateSipTrunkRequest sipTrunk. */
                    public sipTrunk?: (google.cloud.dialogflow.v2beta1.ISipTrunk|null);

                    /**
                     * Creates a new CreateSipTrunkRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CreateSipTrunkRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.ICreateSipTrunkRequest): google.cloud.dialogflow.v2beta1.CreateSipTrunkRequest;

                    /**
                     * Encodes the specified CreateSipTrunkRequest message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.CreateSipTrunkRequest.verify|verify} messages.
                     * @param message CreateSipTrunkRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.ICreateSipTrunkRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CreateSipTrunkRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.CreateSipTrunkRequest.verify|verify} messages.
                     * @param message CreateSipTrunkRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.ICreateSipTrunkRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CreateSipTrunkRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CreateSipTrunkRequest
                     * @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.cloud.dialogflow.v2beta1.CreateSipTrunkRequest;

                    /**
                     * Decodes a CreateSipTrunkRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CreateSipTrunkRequest
                     * @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.cloud.dialogflow.v2beta1.CreateSipTrunkRequest;

                    /**
                     * Verifies a CreateSipTrunkRequest 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 CreateSipTrunkRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CreateSipTrunkRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.CreateSipTrunkRequest;

                    /**
                     * Creates a plain object from a CreateSipTrunkRequest message. Also converts values to other types if specified.
                     * @param message CreateSipTrunkRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.CreateSipTrunkRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CreateSipTrunkRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CreateSipTrunkRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteSipTrunkRequest. */
                interface IDeleteSipTrunkRequest {

                    /** DeleteSipTrunkRequest name */
                    name?: (string|null);
                }

                /** Represents a DeleteSipTrunkRequest. */
                class DeleteSipTrunkRequest implements IDeleteSipTrunkRequest {

                    /**
                     * Constructs a new DeleteSipTrunkRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IDeleteSipTrunkRequest);

                    /** DeleteSipTrunkRequest name. */
                    public name: string;

                    /**
                     * Creates a new DeleteSipTrunkRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteSipTrunkRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IDeleteSipTrunkRequest): google.cloud.dialogflow.v2beta1.DeleteSipTrunkRequest;

                    /**
                     * Encodes the specified DeleteSipTrunkRequest message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.DeleteSipTrunkRequest.verify|verify} messages.
                     * @param message DeleteSipTrunkRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IDeleteSipTrunkRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteSipTrunkRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.DeleteSipTrunkRequest.verify|verify} messages.
                     * @param message DeleteSipTrunkRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IDeleteSipTrunkRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteSipTrunkRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteSipTrunkRequest
                     * @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.cloud.dialogflow.v2beta1.DeleteSipTrunkRequest;

                    /**
                     * Decodes a DeleteSipTrunkRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteSipTrunkRequest
                     * @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.cloud.dialogflow.v2beta1.DeleteSipTrunkRequest;

                    /**
                     * Verifies a DeleteSipTrunkRequest 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 DeleteSipTrunkRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteSipTrunkRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.DeleteSipTrunkRequest;

                    /**
                     * Creates a plain object from a DeleteSipTrunkRequest message. Also converts values to other types if specified.
                     * @param message DeleteSipTrunkRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.DeleteSipTrunkRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteSipTrunkRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteSipTrunkRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListSipTrunksRequest. */
                interface IListSipTrunksRequest {

                    /** ListSipTrunksRequest parent */
                    parent?: (string|null);

                    /** ListSipTrunksRequest pageSize */
                    pageSize?: (number|null);

                    /** ListSipTrunksRequest pageToken */
                    pageToken?: (string|null);
                }

                /** Represents a ListSipTrunksRequest. */
                class ListSipTrunksRequest implements IListSipTrunksRequest {

                    /**
                     * Constructs a new ListSipTrunksRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IListSipTrunksRequest);

                    /** ListSipTrunksRequest parent. */
                    public parent: string;

                    /** ListSipTrunksRequest pageSize. */
                    public pageSize: number;

                    /** ListSipTrunksRequest pageToken. */
                    public pageToken: string;

                    /**
                     * Creates a new ListSipTrunksRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListSipTrunksRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IListSipTrunksRequest): google.cloud.dialogflow.v2beta1.ListSipTrunksRequest;

                    /**
                     * Encodes the specified ListSipTrunksRequest message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.ListSipTrunksRequest.verify|verify} messages.
                     * @param message ListSipTrunksRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IListSipTrunksRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListSipTrunksRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.ListSipTrunksRequest.verify|verify} messages.
                     * @param message ListSipTrunksRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IListSipTrunksRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListSipTrunksRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListSipTrunksRequest
                     * @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.cloud.dialogflow.v2beta1.ListSipTrunksRequest;

                    /**
                     * Decodes a ListSipTrunksRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListSipTrunksRequest
                     * @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.cloud.dialogflow.v2beta1.ListSipTrunksRequest;

                    /**
                     * Verifies a ListSipTrunksRequest 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 ListSipTrunksRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListSipTrunksRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.ListSipTrunksRequest;

                    /**
                     * Creates a plain object from a ListSipTrunksRequest message. Also converts values to other types if specified.
                     * @param message ListSipTrunksRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.ListSipTrunksRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListSipTrunksRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListSipTrunksRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListSipTrunksResponse. */
                interface IListSipTrunksResponse {

                    /** ListSipTrunksResponse sipTrunks */
                    sipTrunks?: (google.cloud.dialogflow.v2beta1.ISipTrunk[]|null);

                    /** ListSipTrunksResponse nextPageToken */
                    nextPageToken?: (string|null);
                }

                /** Represents a ListSipTrunksResponse. */
                class ListSipTrunksResponse implements IListSipTrunksResponse {

                    /**
                     * Constructs a new ListSipTrunksResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IListSipTrunksResponse);

                    /** ListSipTrunksResponse sipTrunks. */
                    public sipTrunks: google.cloud.dialogflow.v2beta1.ISipTrunk[];

                    /** ListSipTrunksResponse nextPageToken. */
                    public nextPageToken: string;

                    /**
                     * Creates a new ListSipTrunksResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListSipTrunksResponse instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IListSipTrunksResponse): google.cloud.dialogflow.v2beta1.ListSipTrunksResponse;

                    /**
                     * Encodes the specified ListSipTrunksResponse message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.ListSipTrunksResponse.verify|verify} messages.
                     * @param message ListSipTrunksResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IListSipTrunksResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListSipTrunksResponse message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.ListSipTrunksResponse.verify|verify} messages.
                     * @param message ListSipTrunksResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IListSipTrunksResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListSipTrunksResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListSipTrunksResponse
                     * @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.cloud.dialogflow.v2beta1.ListSipTrunksResponse;

                    /**
                     * Decodes a ListSipTrunksResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListSipTrunksResponse
                     * @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.cloud.dialogflow.v2beta1.ListSipTrunksResponse;

                    /**
                     * Verifies a ListSipTrunksResponse 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 ListSipTrunksResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListSipTrunksResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.ListSipTrunksResponse;

                    /**
                     * Creates a plain object from a ListSipTrunksResponse message. Also converts values to other types if specified.
                     * @param message ListSipTrunksResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.ListSipTrunksResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListSipTrunksResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListSipTrunksResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetSipTrunkRequest. */
                interface IGetSipTrunkRequest {

                    /** GetSipTrunkRequest name */
                    name?: (string|null);
                }

                /** Represents a GetSipTrunkRequest. */
                class GetSipTrunkRequest implements IGetSipTrunkRequest {

                    /**
                     * Constructs a new GetSipTrunkRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IGetSipTrunkRequest);

                    /** GetSipTrunkRequest name. */
                    public name: string;

                    /**
                     * Creates a new GetSipTrunkRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetSipTrunkRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IGetSipTrunkRequest): google.cloud.dialogflow.v2beta1.GetSipTrunkRequest;

                    /**
                     * Encodes the specified GetSipTrunkRequest message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.GetSipTrunkRequest.verify|verify} messages.
                     * @param message GetSipTrunkRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IGetSipTrunkRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetSipTrunkRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.GetSipTrunkRequest.verify|verify} messages.
                     * @param message GetSipTrunkRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IGetSipTrunkRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetSipTrunkRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetSipTrunkRequest
                     * @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.cloud.dialogflow.v2beta1.GetSipTrunkRequest;

                    /**
                     * Decodes a GetSipTrunkRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetSipTrunkRequest
                     * @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.cloud.dialogflow.v2beta1.GetSipTrunkRequest;

                    /**
                     * Verifies a GetSipTrunkRequest 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 GetSipTrunkRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetSipTrunkRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.GetSipTrunkRequest;

                    /**
                     * Creates a plain object from a GetSipTrunkRequest message. Also converts values to other types if specified.
                     * @param message GetSipTrunkRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.GetSipTrunkRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetSipTrunkRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetSipTrunkRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an UpdateSipTrunkRequest. */
                interface IUpdateSipTrunkRequest {

                    /** UpdateSipTrunkRequest sipTrunk */
                    sipTrunk?: (google.cloud.dialogflow.v2beta1.ISipTrunk|null);

                    /** UpdateSipTrunkRequest updateMask */
                    updateMask?: (google.protobuf.IFieldMask|null);
                }

                /** Represents an UpdateSipTrunkRequest. */
                class UpdateSipTrunkRequest implements IUpdateSipTrunkRequest {

                    /**
                     * Constructs a new UpdateSipTrunkRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IUpdateSipTrunkRequest);

                    /** UpdateSipTrunkRequest sipTrunk. */
                    public sipTrunk?: (google.cloud.dialogflow.v2beta1.ISipTrunk|null);

                    /** UpdateSipTrunkRequest updateMask. */
                    public updateMask?: (google.protobuf.IFieldMask|null);

                    /**
                     * Creates a new UpdateSipTrunkRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UpdateSipTrunkRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IUpdateSipTrunkRequest): google.cloud.dialogflow.v2beta1.UpdateSipTrunkRequest;

                    /**
                     * Encodes the specified UpdateSipTrunkRequest message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.UpdateSipTrunkRequest.verify|verify} messages.
                     * @param message UpdateSipTrunkRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IUpdateSipTrunkRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified UpdateSipTrunkRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.UpdateSipTrunkRequest.verify|verify} messages.
                     * @param message UpdateSipTrunkRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IUpdateSipTrunkRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an UpdateSipTrunkRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns UpdateSipTrunkRequest
                     * @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.cloud.dialogflow.v2beta1.UpdateSipTrunkRequest;

                    /**
                     * Decodes an UpdateSipTrunkRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns UpdateSipTrunkRequest
                     * @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.cloud.dialogflow.v2beta1.UpdateSipTrunkRequest;

                    /**
                     * Verifies an UpdateSipTrunkRequest 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 UpdateSipTrunkRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UpdateSipTrunkRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.UpdateSipTrunkRequest;

                    /**
                     * Creates a plain object from an UpdateSipTrunkRequest message. Also converts values to other types if specified.
                     * @param message UpdateSipTrunkRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.UpdateSipTrunkRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this UpdateSipTrunkRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for UpdateSipTrunkRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SipTrunk. */
                interface ISipTrunk {

                    /** SipTrunk name */
                    name?: (string|null);

                    /** SipTrunk expectedHostname */
                    expectedHostname?: (string[]|null);

                    /** SipTrunk connections */
                    connections?: (google.cloud.dialogflow.v2beta1.IConnection[]|null);

                    /** SipTrunk displayName */
                    displayName?: (string|null);
                }

                /** Represents a SipTrunk. */
                class SipTrunk implements ISipTrunk {

                    /**
                     * Constructs a new SipTrunk.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.ISipTrunk);

                    /** SipTrunk name. */
                    public name: string;

                    /** SipTrunk expectedHostname. */
                    public expectedHostname: string[];

                    /** SipTrunk connections. */
                    public connections: google.cloud.dialogflow.v2beta1.IConnection[];

                    /** SipTrunk displayName. */
                    public displayName: string;

                    /**
                     * Creates a new SipTrunk instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SipTrunk instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.ISipTrunk): google.cloud.dialogflow.v2beta1.SipTrunk;

                    /**
                     * Encodes the specified SipTrunk message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.SipTrunk.verify|verify} messages.
                     * @param message SipTrunk message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.ISipTrunk, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SipTrunk message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.SipTrunk.verify|verify} messages.
                     * @param message SipTrunk message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.ISipTrunk, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SipTrunk message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SipTrunk
                     * @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.cloud.dialogflow.v2beta1.SipTrunk;

                    /**
                     * Decodes a SipTrunk message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SipTrunk
                     * @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.cloud.dialogflow.v2beta1.SipTrunk;

                    /**
                     * Verifies a SipTrunk 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 SipTrunk message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SipTrunk
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.SipTrunk;

                    /**
                     * Creates a plain object from a SipTrunk message. Also converts values to other types if specified.
                     * @param message SipTrunk
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.SipTrunk, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SipTrunk to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SipTrunk
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a Connection. */
                interface IConnection {

                    /** Connection connectionId */
                    connectionId?: (string|null);

                    /** Connection state */
                    state?: (google.cloud.dialogflow.v2beta1.Connection.State|keyof typeof google.cloud.dialogflow.v2beta1.Connection.State|null);

                    /** Connection updateTime */
                    updateTime?: (google.protobuf.ITimestamp|null);

                    /** Connection errorDetails */
                    errorDetails?: (google.cloud.dialogflow.v2beta1.Connection.IErrorDetails|null);
                }

                /** Represents a Connection. */
                class Connection implements IConnection {

                    /**
                     * Constructs a new Connection.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IConnection);

                    /** Connection connectionId. */
                    public connectionId: string;

                    /** Connection state. */
                    public state: (google.cloud.dialogflow.v2beta1.Connection.State|keyof typeof google.cloud.dialogflow.v2beta1.Connection.State);

                    /** Connection updateTime. */
                    public updateTime?: (google.protobuf.ITimestamp|null);

                    /** Connection errorDetails. */
                    public errorDetails?: (google.cloud.dialogflow.v2beta1.Connection.IErrorDetails|null);

                    /**
                     * Creates a new Connection instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Connection instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IConnection): google.cloud.dialogflow.v2beta1.Connection;

                    /**
                     * Encodes the specified Connection message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Connection.verify|verify} messages.
                     * @param message Connection message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IConnection, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Connection message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Connection.verify|verify} messages.
                     * @param message Connection message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IConnection, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a Connection message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Connection
                     * @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.cloud.dialogflow.v2beta1.Connection;

                    /**
                     * Decodes a Connection message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Connection
                     * @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.cloud.dialogflow.v2beta1.Connection;

                    /**
                     * Verifies a Connection 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 Connection message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Connection
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.Connection;

                    /**
                     * Creates a plain object from a Connection message. Also converts values to other types if specified.
                     * @param message Connection
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.Connection, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Connection to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Connection
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace Connection {

                    /** State enum. */
                    enum State {
                        STATE_UNSPECIFIED = 0,
                        CONNECTED = 1,
                        DISCONNECTED = 2,
                        AUTHENTICATION_FAILED = 3,
                        KEEPALIVE = 4
                    }

                    /** CertificateState enum. */
                    enum CertificateState {
                        CERTIFICATE_STATE_UNSPECIFIED = 0,
                        CERTIFICATE_VALID = 1,
                        CERTIFICATE_INVALID = 2,
                        CERTIFICATE_EXPIRED = 3,
                        CERTIFICATE_HOSTNAME_NOT_FOUND = 4,
                        CERTIFICATE_UNAUTHENTICATED = 5,
                        CERTIFICATE_TRUST_STORE_NOT_FOUND = 6,
                        CERTIFICATE_HOSTNAME_INVALID_FORMAT = 7,
                        CERTIFICATE_QUOTA_EXCEEDED = 8
                    }

                    /** Properties of an ErrorDetails. */
                    interface IErrorDetails {

                        /** ErrorDetails certificateState */
                        certificateState?: (google.cloud.dialogflow.v2beta1.Connection.CertificateState|keyof typeof google.cloud.dialogflow.v2beta1.Connection.CertificateState|null);

                        /** ErrorDetails errorMessage */
                        errorMessage?: (string|null);
                    }

                    /** Represents an ErrorDetails. */
                    class ErrorDetails implements IErrorDetails {

                        /**
                         * Constructs a new ErrorDetails.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.dialogflow.v2beta1.Connection.IErrorDetails);

                        /** ErrorDetails certificateState. */
                        public certificateState?: (google.cloud.dialogflow.v2beta1.Connection.CertificateState|keyof typeof google.cloud.dialogflow.v2beta1.Connection.CertificateState|null);

                        /** ErrorDetails errorMessage. */
                        public errorMessage?: (string|null);

                        /**
                         * Creates a new ErrorDetails instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns ErrorDetails instance
                         */
                        public static create(properties?: google.cloud.dialogflow.v2beta1.Connection.IErrorDetails): google.cloud.dialogflow.v2beta1.Connection.ErrorDetails;

                        /**
                         * Encodes the specified ErrorDetails message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Connection.ErrorDetails.verify|verify} messages.
                         * @param message ErrorDetails message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.dialogflow.v2beta1.Connection.IErrorDetails, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified ErrorDetails message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Connection.ErrorDetails.verify|verify} messages.
                         * @param message ErrorDetails message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.Connection.IErrorDetails, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes an ErrorDetails message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns ErrorDetails
                         * @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.cloud.dialogflow.v2beta1.Connection.ErrorDetails;

                        /**
                         * Decodes an ErrorDetails message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns ErrorDetails
                         * @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.cloud.dialogflow.v2beta1.Connection.ErrorDetails;

                        /**
                         * Verifies an ErrorDetails 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 ErrorDetails message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns ErrorDetails
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.Connection.ErrorDetails;

                        /**
                         * Creates a plain object from an ErrorDetails message. Also converts values to other types if specified.
                         * @param message ErrorDetails
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.dialogflow.v2beta1.Connection.ErrorDetails, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this ErrorDetails to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for ErrorDetails
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }
                }

                /** Represents a Versions */
                class Versions extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new Versions 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 Versions 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): Versions;

                    /**
                     * Calls ListVersions.
                     * @param request ListVersionsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ListVersionsResponse
                     */
                    public listVersions(request: google.cloud.dialogflow.v2beta1.IListVersionsRequest, callback: google.cloud.dialogflow.v2beta1.Versions.ListVersionsCallback): void;

                    /**
                     * Calls ListVersions.
                     * @param request ListVersionsRequest message or plain object
                     * @returns Promise
                     */
                    public listVersions(request: google.cloud.dialogflow.v2beta1.IListVersionsRequest): Promise<google.cloud.dialogflow.v2beta1.ListVersionsResponse>;

                    /**
                     * Calls GetVersion.
                     * @param request GetVersionRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Version
                     */
                    public getVersion(request: google.cloud.dialogflow.v2beta1.IGetVersionRequest, callback: google.cloud.dialogflow.v2beta1.Versions.GetVersionCallback): void;

                    /**
                     * Calls GetVersion.
                     * @param request GetVersionRequest message or plain object
                     * @returns Promise
                     */
                    public getVersion(request: google.cloud.dialogflow.v2beta1.IGetVersionRequest): Promise<google.cloud.dialogflow.v2beta1.Version>;

                    /**
                     * Calls CreateVersion.
                     * @param request CreateVersionRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Version
                     */
                    public createVersion(request: google.cloud.dialogflow.v2beta1.ICreateVersionRequest, callback: google.cloud.dialogflow.v2beta1.Versions.CreateVersionCallback): void;

                    /**
                     * Calls CreateVersion.
                     * @param request CreateVersionRequest message or plain object
                     * @returns Promise
                     */
                    public createVersion(request: google.cloud.dialogflow.v2beta1.ICreateVersionRequest): Promise<google.cloud.dialogflow.v2beta1.Version>;

                    /**
                     * Calls UpdateVersion.
                     * @param request UpdateVersionRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Version
                     */
                    public updateVersion(request: google.cloud.dialogflow.v2beta1.IUpdateVersionRequest, callback: google.cloud.dialogflow.v2beta1.Versions.UpdateVersionCallback): void;

                    /**
                     * Calls UpdateVersion.
                     * @param request UpdateVersionRequest message or plain object
                     * @returns Promise
                     */
                    public updateVersion(request: google.cloud.dialogflow.v2beta1.IUpdateVersionRequest): Promise<google.cloud.dialogflow.v2beta1.Version>;

                    /**
                     * Calls DeleteVersion.
                     * @param request DeleteVersionRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Empty
                     */
                    public deleteVersion(request: google.cloud.dialogflow.v2beta1.IDeleteVersionRequest, callback: google.cloud.dialogflow.v2beta1.Versions.DeleteVersionCallback): void;

                    /**
                     * Calls DeleteVersion.
                     * @param request DeleteVersionRequest message or plain object
                     * @returns Promise
                     */
                    public deleteVersion(request: google.cloud.dialogflow.v2beta1.IDeleteVersionRequest): Promise<google.protobuf.Empty>;
                }

                namespace Versions {

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2beta1.Versions|listVersions}.
                     * @param error Error, if any
                     * @param [response] ListVersionsResponse
                     */
                    type ListVersionsCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2beta1.ListVersionsResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2beta1.Versions|getVersion}.
                     * @param error Error, if any
                     * @param [response] Version
                     */
                    type GetVersionCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2beta1.Version) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2beta1.Versions|createVersion}.
                     * @param error Error, if any
                     * @param [response] Version
                     */
                    type CreateVersionCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2beta1.Version) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2beta1.Versions|updateVersion}.
                     * @param error Error, if any
                     * @param [response] Version
                     */
                    type UpdateVersionCallback = (error: (Error|null), response?: google.cloud.dialogflow.v2beta1.Version) => void;

                    /**
                     * Callback as used by {@link google.cloud.dialogflow.v2beta1.Versions|deleteVersion}.
                     * @param error Error, if any
                     * @param [response] Empty
                     */
                    type DeleteVersionCallback = (error: (Error|null), response?: google.protobuf.Empty) => void;
                }

                /** Properties of a Version. */
                interface IVersion {

                    /** Version name */
                    name?: (string|null);

                    /** Version description */
                    description?: (string|null);

                    /** Version versionNumber */
                    versionNumber?: (number|null);

                    /** Version createTime */
                    createTime?: (google.protobuf.ITimestamp|null);

                    /** Version status */
                    status?: (google.cloud.dialogflow.v2beta1.Version.VersionStatus|keyof typeof google.cloud.dialogflow.v2beta1.Version.VersionStatus|null);
                }

                /** Represents a Version. */
                class Version implements IVersion {

                    /**
                     * Constructs a new Version.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IVersion);

                    /** Version name. */
                    public name: string;

                    /** Version description. */
                    public description: string;

                    /** Version versionNumber. */
                    public versionNumber: number;

                    /** Version createTime. */
                    public createTime?: (google.protobuf.ITimestamp|null);

                    /** Version status. */
                    public status: (google.cloud.dialogflow.v2beta1.Version.VersionStatus|keyof typeof google.cloud.dialogflow.v2beta1.Version.VersionStatus);

                    /**
                     * Creates a new Version instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Version instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IVersion): google.cloud.dialogflow.v2beta1.Version;

                    /**
                     * Encodes the specified Version message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Version.verify|verify} messages.
                     * @param message Version message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IVersion, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Version message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.Version.verify|verify} messages.
                     * @param message Version message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IVersion, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a Version message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Version
                     * @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.cloud.dialogflow.v2beta1.Version;

                    /**
                     * Decodes a Version message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Version
                     * @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.cloud.dialogflow.v2beta1.Version;

                    /**
                     * Verifies a Version 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 Version message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Version
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.Version;

                    /**
                     * Creates a plain object from a Version message. Also converts values to other types if specified.
                     * @param message Version
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.Version, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Version to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Version
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace Version {

                    /** VersionStatus enum. */
                    enum VersionStatus {
                        VERSION_STATUS_UNSPECIFIED = 0,
                        IN_PROGRESS = 1,
                        READY = 2,
                        FAILED = 3
                    }
                }

                /** Properties of a ListVersionsRequest. */
                interface IListVersionsRequest {

                    /** ListVersionsRequest parent */
                    parent?: (string|null);

                    /** ListVersionsRequest pageSize */
                    pageSize?: (number|null);

                    /** ListVersionsRequest pageToken */
                    pageToken?: (string|null);
                }

                /** Represents a ListVersionsRequest. */
                class ListVersionsRequest implements IListVersionsRequest {

                    /**
                     * Constructs a new ListVersionsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IListVersionsRequest);

                    /** ListVersionsRequest parent. */
                    public parent: string;

                    /** ListVersionsRequest pageSize. */
                    public pageSize: number;

                    /** ListVersionsRequest pageToken. */
                    public pageToken: string;

                    /**
                     * Creates a new ListVersionsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListVersionsRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IListVersionsRequest): google.cloud.dialogflow.v2beta1.ListVersionsRequest;

                    /**
                     * Encodes the specified ListVersionsRequest message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.ListVersionsRequest.verify|verify} messages.
                     * @param message ListVersionsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IListVersionsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListVersionsRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.ListVersionsRequest.verify|verify} messages.
                     * @param message ListVersionsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IListVersionsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListVersionsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListVersionsRequest
                     * @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.cloud.dialogflow.v2beta1.ListVersionsRequest;

                    /**
                     * Decodes a ListVersionsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListVersionsRequest
                     * @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.cloud.dialogflow.v2beta1.ListVersionsRequest;

                    /**
                     * Verifies a ListVersionsRequest 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 ListVersionsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListVersionsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.ListVersionsRequest;

                    /**
                     * Creates a plain object from a ListVersionsRequest message. Also converts values to other types if specified.
                     * @param message ListVersionsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.ListVersionsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListVersionsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListVersionsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListVersionsResponse. */
                interface IListVersionsResponse {

                    /** ListVersionsResponse versions */
                    versions?: (google.cloud.dialogflow.v2beta1.IVersion[]|null);

                    /** ListVersionsResponse nextPageToken */
                    nextPageToken?: (string|null);
                }

                /** Represents a ListVersionsResponse. */
                class ListVersionsResponse implements IListVersionsResponse {

                    /**
                     * Constructs a new ListVersionsResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IListVersionsResponse);

                    /** ListVersionsResponse versions. */
                    public versions: google.cloud.dialogflow.v2beta1.IVersion[];

                    /** ListVersionsResponse nextPageToken. */
                    public nextPageToken: string;

                    /**
                     * Creates a new ListVersionsResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListVersionsResponse instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IListVersionsResponse): google.cloud.dialogflow.v2beta1.ListVersionsResponse;

                    /**
                     * Encodes the specified ListVersionsResponse message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.ListVersionsResponse.verify|verify} messages.
                     * @param message ListVersionsResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IListVersionsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListVersionsResponse message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.ListVersionsResponse.verify|verify} messages.
                     * @param message ListVersionsResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IListVersionsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListVersionsResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListVersionsResponse
                     * @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.cloud.dialogflow.v2beta1.ListVersionsResponse;

                    /**
                     * Decodes a ListVersionsResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListVersionsResponse
                     * @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.cloud.dialogflow.v2beta1.ListVersionsResponse;

                    /**
                     * Verifies a ListVersionsResponse 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 ListVersionsResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListVersionsResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.ListVersionsResponse;

                    /**
                     * Creates a plain object from a ListVersionsResponse message. Also converts values to other types if specified.
                     * @param message ListVersionsResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.ListVersionsResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListVersionsResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListVersionsResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetVersionRequest. */
                interface IGetVersionRequest {

                    /** GetVersionRequest name */
                    name?: (string|null);
                }

                /** Represents a GetVersionRequest. */
                class GetVersionRequest implements IGetVersionRequest {

                    /**
                     * Constructs a new GetVersionRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IGetVersionRequest);

                    /** GetVersionRequest name. */
                    public name: string;

                    /**
                     * Creates a new GetVersionRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetVersionRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IGetVersionRequest): google.cloud.dialogflow.v2beta1.GetVersionRequest;

                    /**
                     * Encodes the specified GetVersionRequest message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.GetVersionRequest.verify|verify} messages.
                     * @param message GetVersionRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IGetVersionRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetVersionRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.GetVersionRequest.verify|verify} messages.
                     * @param message GetVersionRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IGetVersionRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetVersionRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetVersionRequest
                     * @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.cloud.dialogflow.v2beta1.GetVersionRequest;

                    /**
                     * Decodes a GetVersionRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetVersionRequest
                     * @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.cloud.dialogflow.v2beta1.GetVersionRequest;

                    /**
                     * Verifies a GetVersionRequest 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 GetVersionRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetVersionRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.GetVersionRequest;

                    /**
                     * Creates a plain object from a GetVersionRequest message. Also converts values to other types if specified.
                     * @param message GetVersionRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.GetVersionRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetVersionRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetVersionRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a CreateVersionRequest. */
                interface ICreateVersionRequest {

                    /** CreateVersionRequest parent */
                    parent?: (string|null);

                    /** CreateVersionRequest version */
                    version?: (google.cloud.dialogflow.v2beta1.IVersion|null);
                }

                /** Represents a CreateVersionRequest. */
                class CreateVersionRequest implements ICreateVersionRequest {

                    /**
                     * Constructs a new CreateVersionRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.ICreateVersionRequest);

                    /** CreateVersionRequest parent. */
                    public parent: string;

                    /** CreateVersionRequest version. */
                    public version?: (google.cloud.dialogflow.v2beta1.IVersion|null);

                    /**
                     * Creates a new CreateVersionRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CreateVersionRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.ICreateVersionRequest): google.cloud.dialogflow.v2beta1.CreateVersionRequest;

                    /**
                     * Encodes the specified CreateVersionRequest message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.CreateVersionRequest.verify|verify} messages.
                     * @param message CreateVersionRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.ICreateVersionRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CreateVersionRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.CreateVersionRequest.verify|verify} messages.
                     * @param message CreateVersionRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.ICreateVersionRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CreateVersionRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CreateVersionRequest
                     * @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.cloud.dialogflow.v2beta1.CreateVersionRequest;

                    /**
                     * Decodes a CreateVersionRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CreateVersionRequest
                     * @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.cloud.dialogflow.v2beta1.CreateVersionRequest;

                    /**
                     * Verifies a CreateVersionRequest 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 CreateVersionRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CreateVersionRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.CreateVersionRequest;

                    /**
                     * Creates a plain object from a CreateVersionRequest message. Also converts values to other types if specified.
                     * @param message CreateVersionRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.CreateVersionRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CreateVersionRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CreateVersionRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an UpdateVersionRequest. */
                interface IUpdateVersionRequest {

                    /** UpdateVersionRequest version */
                    version?: (google.cloud.dialogflow.v2beta1.IVersion|null);

                    /** UpdateVersionRequest updateMask */
                    updateMask?: (google.protobuf.IFieldMask|null);
                }

                /** Represents an UpdateVersionRequest. */
                class UpdateVersionRequest implements IUpdateVersionRequest {

                    /**
                     * Constructs a new UpdateVersionRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IUpdateVersionRequest);

                    /** UpdateVersionRequest version. */
                    public version?: (google.cloud.dialogflow.v2beta1.IVersion|null);

                    /** UpdateVersionRequest updateMask. */
                    public updateMask?: (google.protobuf.IFieldMask|null);

                    /**
                     * Creates a new UpdateVersionRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UpdateVersionRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IUpdateVersionRequest): google.cloud.dialogflow.v2beta1.UpdateVersionRequest;

                    /**
                     * Encodes the specified UpdateVersionRequest message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.UpdateVersionRequest.verify|verify} messages.
                     * @param message UpdateVersionRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IUpdateVersionRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified UpdateVersionRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.UpdateVersionRequest.verify|verify} messages.
                     * @param message UpdateVersionRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IUpdateVersionRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an UpdateVersionRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns UpdateVersionRequest
                     * @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.cloud.dialogflow.v2beta1.UpdateVersionRequest;

                    /**
                     * Decodes an UpdateVersionRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns UpdateVersionRequest
                     * @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.cloud.dialogflow.v2beta1.UpdateVersionRequest;

                    /**
                     * Verifies an UpdateVersionRequest 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 UpdateVersionRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UpdateVersionRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.UpdateVersionRequest;

                    /**
                     * Creates a plain object from an UpdateVersionRequest message. Also converts values to other types if specified.
                     * @param message UpdateVersionRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.UpdateVersionRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this UpdateVersionRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for UpdateVersionRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteVersionRequest. */
                interface IDeleteVersionRequest {

                    /** DeleteVersionRequest name */
                    name?: (string|null);
                }

                /** Represents a DeleteVersionRequest. */
                class DeleteVersionRequest implements IDeleteVersionRequest {

                    /**
                     * Constructs a new DeleteVersionRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IDeleteVersionRequest);

                    /** DeleteVersionRequest name. */
                    public name: string;

                    /**
                     * Creates a new DeleteVersionRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteVersionRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IDeleteVersionRequest): google.cloud.dialogflow.v2beta1.DeleteVersionRequest;

                    /**
                     * Encodes the specified DeleteVersionRequest message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.DeleteVersionRequest.verify|verify} messages.
                     * @param message DeleteVersionRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IDeleteVersionRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteVersionRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.DeleteVersionRequest.verify|verify} messages.
                     * @param message DeleteVersionRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IDeleteVersionRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteVersionRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteVersionRequest
                     * @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.cloud.dialogflow.v2beta1.DeleteVersionRequest;

                    /**
                     * Decodes a DeleteVersionRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteVersionRequest
                     * @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.cloud.dialogflow.v2beta1.DeleteVersionRequest;

                    /**
                     * Verifies a DeleteVersionRequest 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 DeleteVersionRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteVersionRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.DeleteVersionRequest;

                    /**
                     * Creates a plain object from a DeleteVersionRequest message. Also converts values to other types if specified.
                     * @param message DeleteVersionRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.DeleteVersionRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteVersionRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteVersionRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a WebhookRequest. */
                interface IWebhookRequest {

                    /** WebhookRequest session */
                    session?: (string|null);

                    /** WebhookRequest responseId */
                    responseId?: (string|null);

                    /** WebhookRequest queryResult */
                    queryResult?: (google.cloud.dialogflow.v2beta1.IQueryResult|null);

                    /** WebhookRequest alternativeQueryResults */
                    alternativeQueryResults?: (google.cloud.dialogflow.v2beta1.IQueryResult[]|null);

                    /** WebhookRequest originalDetectIntentRequest */
                    originalDetectIntentRequest?: (google.cloud.dialogflow.v2beta1.IOriginalDetectIntentRequest|null);
                }

                /** Represents a WebhookRequest. */
                class WebhookRequest implements IWebhookRequest {

                    /**
                     * Constructs a new WebhookRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IWebhookRequest);

                    /** WebhookRequest session. */
                    public session: string;

                    /** WebhookRequest responseId. */
                    public responseId: string;

                    /** WebhookRequest queryResult. */
                    public queryResult?: (google.cloud.dialogflow.v2beta1.IQueryResult|null);

                    /** WebhookRequest alternativeQueryResults. */
                    public alternativeQueryResults: google.cloud.dialogflow.v2beta1.IQueryResult[];

                    /** WebhookRequest originalDetectIntentRequest. */
                    public originalDetectIntentRequest?: (google.cloud.dialogflow.v2beta1.IOriginalDetectIntentRequest|null);

                    /**
                     * Creates a new WebhookRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns WebhookRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IWebhookRequest): google.cloud.dialogflow.v2beta1.WebhookRequest;

                    /**
                     * Encodes the specified WebhookRequest message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.WebhookRequest.verify|verify} messages.
                     * @param message WebhookRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IWebhookRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified WebhookRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.WebhookRequest.verify|verify} messages.
                     * @param message WebhookRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IWebhookRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a WebhookRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns WebhookRequest
                     * @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.cloud.dialogflow.v2beta1.WebhookRequest;

                    /**
                     * Decodes a WebhookRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns WebhookRequest
                     * @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.cloud.dialogflow.v2beta1.WebhookRequest;

                    /**
                     * Verifies a WebhookRequest 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 WebhookRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns WebhookRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.WebhookRequest;

                    /**
                     * Creates a plain object from a WebhookRequest message. Also converts values to other types if specified.
                     * @param message WebhookRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.WebhookRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this WebhookRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for WebhookRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a WebhookResponse. */
                interface IWebhookResponse {

                    /** WebhookResponse fulfillmentText */
                    fulfillmentText?: (string|null);

                    /** WebhookResponse fulfillmentMessages */
                    fulfillmentMessages?: (google.cloud.dialogflow.v2beta1.Intent.IMessage[]|null);

                    /** WebhookResponse source */
                    source?: (string|null);

                    /** WebhookResponse payload */
                    payload?: (google.protobuf.IStruct|null);

                    /** WebhookResponse outputContexts */
                    outputContexts?: (google.cloud.dialogflow.v2beta1.IContext[]|null);

                    /** WebhookResponse followupEventInput */
                    followupEventInput?: (google.cloud.dialogflow.v2beta1.IEventInput|null);

                    /** WebhookResponse liveAgentHandoff */
                    liveAgentHandoff?: (boolean|null);

                    /** WebhookResponse endInteraction */
                    endInteraction?: (boolean|null);

                    /** WebhookResponse sessionEntityTypes */
                    sessionEntityTypes?: (google.cloud.dialogflow.v2beta1.ISessionEntityType[]|null);
                }

                /** Represents a WebhookResponse. */
                class WebhookResponse implements IWebhookResponse {

                    /**
                     * Constructs a new WebhookResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IWebhookResponse);

                    /** WebhookResponse fulfillmentText. */
                    public fulfillmentText: string;

                    /** WebhookResponse fulfillmentMessages. */
                    public fulfillmentMessages: google.cloud.dialogflow.v2beta1.Intent.IMessage[];

                    /** WebhookResponse source. */
                    public source: string;

                    /** WebhookResponse payload. */
                    public payload?: (google.protobuf.IStruct|null);

                    /** WebhookResponse outputContexts. */
                    public outputContexts: google.cloud.dialogflow.v2beta1.IContext[];

                    /** WebhookResponse followupEventInput. */
                    public followupEventInput?: (google.cloud.dialogflow.v2beta1.IEventInput|null);

                    /** WebhookResponse liveAgentHandoff. */
                    public liveAgentHandoff: boolean;

                    /** WebhookResponse endInteraction. */
                    public endInteraction: boolean;

                    /** WebhookResponse sessionEntityTypes. */
                    public sessionEntityTypes: google.cloud.dialogflow.v2beta1.ISessionEntityType[];

                    /**
                     * Creates a new WebhookResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns WebhookResponse instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IWebhookResponse): google.cloud.dialogflow.v2beta1.WebhookResponse;

                    /**
                     * Encodes the specified WebhookResponse message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.WebhookResponse.verify|verify} messages.
                     * @param message WebhookResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IWebhookResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified WebhookResponse message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.WebhookResponse.verify|verify} messages.
                     * @param message WebhookResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IWebhookResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a WebhookResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns WebhookResponse
                     * @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.cloud.dialogflow.v2beta1.WebhookResponse;

                    /**
                     * Decodes a WebhookResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns WebhookResponse
                     * @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.cloud.dialogflow.v2beta1.WebhookResponse;

                    /**
                     * Verifies a WebhookResponse 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 WebhookResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns WebhookResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.WebhookResponse;

                    /**
                     * Creates a plain object from a WebhookResponse message. Also converts values to other types if specified.
                     * @param message WebhookResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.WebhookResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this WebhookResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for WebhookResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an OriginalDetectIntentRequest. */
                interface IOriginalDetectIntentRequest {

                    /** OriginalDetectIntentRequest source */
                    source?: (string|null);

                    /** OriginalDetectIntentRequest version */
                    version?: (string|null);

                    /** OriginalDetectIntentRequest payload */
                    payload?: (google.protobuf.IStruct|null);
                }

                /** Represents an OriginalDetectIntentRequest. */
                class OriginalDetectIntentRequest implements IOriginalDetectIntentRequest {

                    /**
                     * Constructs a new OriginalDetectIntentRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.dialogflow.v2beta1.IOriginalDetectIntentRequest);

                    /** OriginalDetectIntentRequest source. */
                    public source: string;

                    /** OriginalDetectIntentRequest version. */
                    public version: string;

                    /** OriginalDetectIntentRequest payload. */
                    public payload?: (google.protobuf.IStruct|null);

                    /**
                     * Creates a new OriginalDetectIntentRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns OriginalDetectIntentRequest instance
                     */
                    public static create(properties?: google.cloud.dialogflow.v2beta1.IOriginalDetectIntentRequest): google.cloud.dialogflow.v2beta1.OriginalDetectIntentRequest;

                    /**
                     * Encodes the specified OriginalDetectIntentRequest message. Does not implicitly {@link google.cloud.dialogflow.v2beta1.OriginalDetectIntentRequest.verify|verify} messages.
                     * @param message OriginalDetectIntentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.dialogflow.v2beta1.IOriginalDetectIntentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified OriginalDetectIntentRequest message, length delimited. Does not implicitly {@link google.cloud.dialogflow.v2beta1.OriginalDetectIntentRequest.verify|verify} messages.
                     * @param message OriginalDetectIntentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.dialogflow.v2beta1.IOriginalDetectIntentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an OriginalDetectIntentRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns OriginalDetectIntentRequest
                     * @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.cloud.dialogflow.v2beta1.OriginalDetectIntentRequest;

                    /**
                     * Decodes an OriginalDetectIntentRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns OriginalDetectIntentRequest
                     * @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.cloud.dialogflow.v2beta1.OriginalDetectIntentRequest;

                    /**
                     * Verifies an OriginalDetectIntentRequest 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 OriginalDetectIntentRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns OriginalDetectIntentRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.dialogflow.v2beta1.OriginalDetectIntentRequest;

                    /**
                     * Creates a plain object from an OriginalDetectIntentRequest message. Also converts values to other types if specified.
                     * @param message OriginalDetectIntentRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.dialogflow.v2beta1.OriginalDetectIntentRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this OriginalDetectIntentRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for OriginalDetectIntentRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }
            }
        }
    }

    /** Namespace api. */
    namespace api {

        /** 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);

            /** Publishing restReferenceDocumentationUri */
            restReferenceDocumentationUri?: (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;

            /** Publishing restReferenceDocumentationUri. */
            public restReferenceDocumentationUri: 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
        }

        /** 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;
        }
    }

    /** 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);

            /** ServiceOptions .google.api.apiVersion */
            ".google.api.apiVersion"?: (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|Buffer|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|Buffer|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 an Any. */
        interface IAny {

            /** Any type_url */
            type_url?: (string|null);

            /** Any value */
            value?: (Uint8Array|Buffer|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|Buffer|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 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;
        }

        /** 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 a Struct. */
        interface IStruct {

            /** Struct fields */
            fields?: ({ [k: string]: google.protobuf.IValue }|null);
        }

        /** Represents a Struct. */
        class Struct implements IStruct {

            /**
             * Constructs a new Struct.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.IStruct);

            /** Struct fields. */
            public fields: { [k: string]: google.protobuf.IValue };

            /**
             * Creates a new Struct instance using the specified properties.
             * @param [properties] Properties to set
             * @returns Struct instance
             */
            public static create(properties?: google.protobuf.IStruct): google.protobuf.Struct;

            /**
             * Encodes the specified Struct message. Does not implicitly {@link google.protobuf.Struct.verify|verify} messages.
             * @param message Struct message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.protobuf.IStruct, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified Struct message, length delimited. Does not implicitly {@link google.protobuf.Struct.verify|verify} messages.
             * @param message Struct message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.protobuf.IStruct, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a Struct message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns Struct
             * @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.Struct;

            /**
             * Decodes a Struct message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns Struct
             * @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.Struct;

            /**
             * Verifies a Struct 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 Struct message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns Struct
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.Struct;

            /**
             * Creates a plain object from a Struct message. Also converts values to other types if specified.
             * @param message Struct
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.Struct, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this Struct to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for Struct
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Properties of a Value. */
        interface IValue {

            /** Value nullValue */
            nullValue?: (google.protobuf.NullValue|keyof typeof google.protobuf.NullValue|null);

            /** Value numberValue */
            numberValue?: (number|null);

            /** Value stringValue */
            stringValue?: (string|null);

            /** Value boolValue */
            boolValue?: (boolean|null);

            /** Value structValue */
            structValue?: (google.protobuf.IStruct|null);

            /** Value listValue */
            listValue?: (google.protobuf.IListValue|null);
        }

        /** Represents a Value. */
        class Value implements IValue {

            /**
             * Constructs a new Value.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.IValue);

            /** Value nullValue. */
            public nullValue?: (google.protobuf.NullValue|keyof typeof google.protobuf.NullValue|null);

            /** Value numberValue. */
            public numberValue?: (number|null);

            /** Value stringValue. */
            public stringValue?: (string|null);

            /** Value boolValue. */
            public boolValue?: (boolean|null);

            /** Value structValue. */
            public structValue?: (google.protobuf.IStruct|null);

            /** Value listValue. */
            public listValue?: (google.protobuf.IListValue|null);

            /** Value kind. */
            public kind?: ("nullValue"|"numberValue"|"stringValue"|"boolValue"|"structValue"|"listValue");

            /**
             * Creates a new Value instance using the specified properties.
             * @param [properties] Properties to set
             * @returns Value instance
             */
            public static create(properties?: google.protobuf.IValue): google.protobuf.Value;

            /**
             * Encodes the specified Value message. Does not implicitly {@link google.protobuf.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.protobuf.IValue, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified Value message, length delimited. Does not implicitly {@link google.protobuf.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.protobuf.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.protobuf.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.protobuf.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.protobuf.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.protobuf.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;
        }

        /** NullValue enum. */
        enum NullValue {
            NULL_VALUE = 0
        }

        /** Properties of a ListValue. */
        interface IListValue {

            /** ListValue values */
            values?: (google.protobuf.IValue[]|null);
        }

        /** Represents a ListValue. */
        class ListValue implements IListValue {

            /**
             * Constructs a new ListValue.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.IListValue);

            /** ListValue values. */
            public values: google.protobuf.IValue[];

            /**
             * Creates a new ListValue instance using the specified properties.
             * @param [properties] Properties to set
             * @returns ListValue instance
             */
            public static create(properties?: google.protobuf.IListValue): google.protobuf.ListValue;

            /**
             * Encodes the specified ListValue message. Does not implicitly {@link google.protobuf.ListValue.verify|verify} messages.
             * @param message ListValue message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.protobuf.IListValue, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified ListValue message, length delimited. Does not implicitly {@link google.protobuf.ListValue.verify|verify} messages.
             * @param message ListValue message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.protobuf.IListValue, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a ListValue message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns ListValue
             * @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.ListValue;

            /**
             * Decodes a ListValue message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns ListValue
             * @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.ListValue;

            /**
             * Verifies a ListValue 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 ListValue message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns ListValue
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.ListValue;

            /**
             * Creates a plain object from a ListValue message. Also converts values to other types if specified.
             * @param message ListValue
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.ListValue, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this ListValue to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for ListValue
             * @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;
        }
    }

    /** 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 LatLng. */
        interface ILatLng {

            /** LatLng latitude */
            latitude?: (number|null);

            /** LatLng longitude */
            longitude?: (number|null);
        }

        /** Represents a LatLng. */
        class LatLng implements ILatLng {

            /**
             * Constructs a new LatLng.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.type.ILatLng);

            /** LatLng latitude. */
            public latitude: number;

            /** LatLng longitude. */
            public longitude: number;

            /**
             * Creates a new LatLng instance using the specified properties.
             * @param [properties] Properties to set
             * @returns LatLng instance
             */
            public static create(properties?: google.type.ILatLng): google.type.LatLng;

            /**
             * Encodes the specified LatLng message. Does not implicitly {@link google.type.LatLng.verify|verify} messages.
             * @param message LatLng message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.type.ILatLng, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified LatLng message, length delimited. Does not implicitly {@link google.type.LatLng.verify|verify} messages.
             * @param message LatLng message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.type.ILatLng, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a LatLng message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns LatLng
             * @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.LatLng;

            /**
             * Decodes a LatLng message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns LatLng
             * @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.LatLng;

            /**
             * Verifies a LatLng 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 LatLng message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns LatLng
             */
            public static fromObject(object: { [k: string]: any }): google.type.LatLng;

            /**
             * Creates a plain object from a LatLng message. Also converts values to other types if specified.
             * @param message LatLng
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.type.LatLng, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this LatLng to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for LatLng
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }
    }
}
