import * as $protobuf from "protobufjs";
/** Namespace Ydb. */
export namespace Ydb {

    /** Namespace Auth. */
    namespace Auth {

        /** Namespace V1. */
        namespace V1 {

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

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

                /**
                 * Calls Login.
                 * @param request LoginRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and LoginResponse
                 */
                public login(request: Ydb.Auth.ILoginRequest, callback: Ydb.Auth.V1.AuthService.LoginCallback): void;

                /**
                 * Calls Login.
                 * @param request LoginRequest message or plain object
                 * @returns Promise
                 */
                public login(request: Ydb.Auth.ILoginRequest): Promise<Ydb.Auth.LoginResponse>;
            }

            namespace AuthService {

                /**
                 * Callback as used by {@link Ydb.Auth.V1.AuthService#login}.
                 * @param error Error, if any
                 * @param [response] LoginResponse
                 */
                type LoginCallback = (error: (Error|null), response?: Ydb.Auth.LoginResponse) => void;
            }
        }

        /** Properties of a LoginRequest. */
        interface ILoginRequest {

            /** LoginRequest operationParams */
            operationParams?: (Ydb.Operations.IOperationParams|null);

            /** LoginRequest user */
            user?: (string|null);

            /** LoginRequest password */
            password?: (string|null);
        }

        /** Represents a LoginRequest. */
        class LoginRequest implements ILoginRequest {

            /**
             * Constructs a new LoginRequest.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Auth.ILoginRequest);

            /** LoginRequest operationParams. */
            public operationParams?: (Ydb.Operations.IOperationParams|null);

            /** LoginRequest user. */
            public user: string;

            /** LoginRequest password. */
            public password: string;

            /**
             * Creates a new LoginRequest instance using the specified properties.
             * @param [properties] Properties to set
             * @returns LoginRequest instance
             */
            public static create(properties?: Ydb.Auth.ILoginRequest): Ydb.Auth.LoginRequest;

            /**
             * Encodes the specified LoginRequest message. Does not implicitly {@link Ydb.Auth.LoginRequest.verify|verify} messages.
             * @param message LoginRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Auth.ILoginRequest, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

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

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

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

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

        /** Properties of a LoginResponse. */
        interface ILoginResponse {

            /** LoginResponse operation */
            operation?: (Ydb.Operations.IOperation|null);
        }

        /** Represents a LoginResponse. */
        class LoginResponse implements ILoginResponse {

            /**
             * Constructs a new LoginResponse.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Auth.ILoginResponse);

            /** LoginResponse operation. */
            public operation?: (Ydb.Operations.IOperation|null);

            /**
             * Creates a new LoginResponse instance using the specified properties.
             * @param [properties] Properties to set
             * @returns LoginResponse instance
             */
            public static create(properties?: Ydb.Auth.ILoginResponse): Ydb.Auth.LoginResponse;

            /**
             * Encodes the specified LoginResponse message. Does not implicitly {@link Ydb.Auth.LoginResponse.verify|verify} messages.
             * @param message LoginResponse message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Auth.ILoginResponse, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

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

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

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

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

        /** Properties of a LoginResult. */
        interface ILoginResult {

            /** LoginResult token */
            token?: (string|null);
        }

        /** Represents a LoginResult. */
        class LoginResult implements ILoginResult {

            /**
             * Constructs a new LoginResult.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Auth.ILoginResult);

            /** LoginResult token. */
            public token: string;

            /**
             * Creates a new LoginResult instance using the specified properties.
             * @param [properties] Properties to set
             * @returns LoginResult instance
             */
            public static create(properties?: Ydb.Auth.ILoginResult): Ydb.Auth.LoginResult;

            /**
             * Encodes the specified LoginResult message. Does not implicitly {@link Ydb.Auth.LoginResult.verify|verify} messages.
             * @param message LoginResult message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Auth.ILoginResult, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

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

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

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

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

    /** Namespace Operations. */
    namespace Operations {

        /** Properties of an OperationParams. */
        interface IOperationParams {

            /** OperationParams operationMode */
            operationMode?: (Ydb.Operations.OperationParams.OperationMode|null);

            /** OperationParams operationTimeout */
            operationTimeout?: (google.protobuf.IDuration|null);

            /** OperationParams cancelAfter */
            cancelAfter?: (google.protobuf.IDuration|null);

            /** OperationParams labels */
            labels?: ({ [k: string]: string }|null);

            /** OperationParams reportCostInfo */
            reportCostInfo?: (Ydb.FeatureFlag.Status|null);
        }

        /** Represents an OperationParams. */
        class OperationParams implements IOperationParams {

            /**
             * Constructs a new OperationParams.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Operations.IOperationParams);

            /** OperationParams operationMode. */
            public operationMode: Ydb.Operations.OperationParams.OperationMode;

            /** OperationParams operationTimeout. */
            public operationTimeout?: (google.protobuf.IDuration|null);

            /** OperationParams cancelAfter. */
            public cancelAfter?: (google.protobuf.IDuration|null);

            /** OperationParams labels. */
            public labels: { [k: string]: string };

            /** OperationParams reportCostInfo. */
            public reportCostInfo: Ydb.FeatureFlag.Status;

            /**
             * Creates a new OperationParams instance using the specified properties.
             * @param [properties] Properties to set
             * @returns OperationParams instance
             */
            public static create(properties?: Ydb.Operations.IOperationParams): Ydb.Operations.OperationParams;

            /**
             * Encodes the specified OperationParams message. Does not implicitly {@link Ydb.Operations.OperationParams.verify|verify} messages.
             * @param message OperationParams message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Operations.IOperationParams, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

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

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

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

        namespace OperationParams {

            /** OperationMode enum. */
            enum OperationMode {
                OPERATION_MODE_UNSPECIFIED = 0,
                SYNC = 1,
                ASYNC = 2
            }
        }

        /** Properties of a GetOperationRequest. */
        interface IGetOperationRequest {

            /** GetOperationRequest id */
            id?: (string|null);
        }

        /** Represents a GetOperationRequest. */
        class GetOperationRequest implements IGetOperationRequest {

            /**
             * Constructs a new GetOperationRequest.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Operations.IGetOperationRequest);

            /** GetOperationRequest id. */
            public id: string;

            /**
             * Creates a new GetOperationRequest instance using the specified properties.
             * @param [properties] Properties to set
             * @returns GetOperationRequest instance
             */
            public static create(properties?: Ydb.Operations.IGetOperationRequest): Ydb.Operations.GetOperationRequest;

            /**
             * Encodes the specified GetOperationRequest message. Does not implicitly {@link Ydb.Operations.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: Ydb.Operations.IGetOperationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified GetOperationRequest message, length delimited. Does not implicitly {@link Ydb.Operations.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: Ydb.Operations.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): Ydb.Operations.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)): Ydb.Operations.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 }): Ydb.Operations.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: Ydb.Operations.GetOperationRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

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

        /** Properties of a GetOperationResponse. */
        interface IGetOperationResponse {

            /** GetOperationResponse operation */
            operation?: (Ydb.Operations.IOperation|null);
        }

        /** Represents a GetOperationResponse. */
        class GetOperationResponse implements IGetOperationResponse {

            /**
             * Constructs a new GetOperationResponse.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Operations.IGetOperationResponse);

            /** GetOperationResponse operation. */
            public operation?: (Ydb.Operations.IOperation|null);

            /**
             * Creates a new GetOperationResponse instance using the specified properties.
             * @param [properties] Properties to set
             * @returns GetOperationResponse instance
             */
            public static create(properties?: Ydb.Operations.IGetOperationResponse): Ydb.Operations.GetOperationResponse;

            /**
             * Encodes the specified GetOperationResponse message. Does not implicitly {@link Ydb.Operations.GetOperationResponse.verify|verify} messages.
             * @param message GetOperationResponse message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Operations.IGetOperationResponse, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

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

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

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

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

        /** Properties of a CancelOperationRequest. */
        interface ICancelOperationRequest {

            /** CancelOperationRequest id */
            id?: (string|null);
        }

        /** Represents a CancelOperationRequest. */
        class CancelOperationRequest implements ICancelOperationRequest {

            /**
             * Constructs a new CancelOperationRequest.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Operations.ICancelOperationRequest);

            /** CancelOperationRequest id. */
            public id: string;

            /**
             * Creates a new CancelOperationRequest instance using the specified properties.
             * @param [properties] Properties to set
             * @returns CancelOperationRequest instance
             */
            public static create(properties?: Ydb.Operations.ICancelOperationRequest): Ydb.Operations.CancelOperationRequest;

            /**
             * Encodes the specified CancelOperationRequest message. Does not implicitly {@link Ydb.Operations.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: Ydb.Operations.ICancelOperationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified CancelOperationRequest message, length delimited. Does not implicitly {@link Ydb.Operations.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: Ydb.Operations.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): Ydb.Operations.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)): Ydb.Operations.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 }): Ydb.Operations.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: Ydb.Operations.CancelOperationRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

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

        /** Properties of a CancelOperationResponse. */
        interface ICancelOperationResponse {

            /** CancelOperationResponse status */
            status?: (Ydb.StatusIds.StatusCode|null);

            /** CancelOperationResponse issues */
            issues?: (Ydb.Issue.IIssueMessage[]|null);
        }

        /** Represents a CancelOperationResponse. */
        class CancelOperationResponse implements ICancelOperationResponse {

            /**
             * Constructs a new CancelOperationResponse.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Operations.ICancelOperationResponse);

            /** CancelOperationResponse status. */
            public status: Ydb.StatusIds.StatusCode;

            /** CancelOperationResponse issues. */
            public issues: Ydb.Issue.IIssueMessage[];

            /**
             * Creates a new CancelOperationResponse instance using the specified properties.
             * @param [properties] Properties to set
             * @returns CancelOperationResponse instance
             */
            public static create(properties?: Ydb.Operations.ICancelOperationResponse): Ydb.Operations.CancelOperationResponse;

            /**
             * Encodes the specified CancelOperationResponse message. Does not implicitly {@link Ydb.Operations.CancelOperationResponse.verify|verify} messages.
             * @param message CancelOperationResponse message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Operations.ICancelOperationResponse, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

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

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

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

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

        /** Properties of a ForgetOperationRequest. */
        interface IForgetOperationRequest {

            /** ForgetOperationRequest id */
            id?: (string|null);
        }

        /** Represents a ForgetOperationRequest. */
        class ForgetOperationRequest implements IForgetOperationRequest {

            /**
             * Constructs a new ForgetOperationRequest.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Operations.IForgetOperationRequest);

            /** ForgetOperationRequest id. */
            public id: string;

            /**
             * Creates a new ForgetOperationRequest instance using the specified properties.
             * @param [properties] Properties to set
             * @returns ForgetOperationRequest instance
             */
            public static create(properties?: Ydb.Operations.IForgetOperationRequest): Ydb.Operations.ForgetOperationRequest;

            /**
             * Encodes the specified ForgetOperationRequest message. Does not implicitly {@link Ydb.Operations.ForgetOperationRequest.verify|verify} messages.
             * @param message ForgetOperationRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Operations.IForgetOperationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

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

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

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

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

        /** Properties of a ForgetOperationResponse. */
        interface IForgetOperationResponse {

            /** ForgetOperationResponse status */
            status?: (Ydb.StatusIds.StatusCode|null);

            /** ForgetOperationResponse issues */
            issues?: (Ydb.Issue.IIssueMessage[]|null);
        }

        /** Represents a ForgetOperationResponse. */
        class ForgetOperationResponse implements IForgetOperationResponse {

            /**
             * Constructs a new ForgetOperationResponse.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Operations.IForgetOperationResponse);

            /** ForgetOperationResponse status. */
            public status: Ydb.StatusIds.StatusCode;

            /** ForgetOperationResponse issues. */
            public issues: Ydb.Issue.IIssueMessage[];

            /**
             * Creates a new ForgetOperationResponse instance using the specified properties.
             * @param [properties] Properties to set
             * @returns ForgetOperationResponse instance
             */
            public static create(properties?: Ydb.Operations.IForgetOperationResponse): Ydb.Operations.ForgetOperationResponse;

            /**
             * Encodes the specified ForgetOperationResponse message. Does not implicitly {@link Ydb.Operations.ForgetOperationResponse.verify|verify} messages.
             * @param message ForgetOperationResponse message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Operations.IForgetOperationResponse, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

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

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

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

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

        /** Properties of a ListOperationsRequest. */
        interface IListOperationsRequest {

            /** ListOperationsRequest kind */
            kind?: (string|null);

            /** ListOperationsRequest pageSize */
            pageSize?: (number|Long|null);

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

        /** Represents a ListOperationsRequest. */
        class ListOperationsRequest implements IListOperationsRequest {

            /**
             * Constructs a new ListOperationsRequest.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Operations.IListOperationsRequest);

            /** ListOperationsRequest kind. */
            public kind: string;

            /** ListOperationsRequest pageSize. */
            public pageSize: (number|Long);

            /** 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?: Ydb.Operations.IListOperationsRequest): Ydb.Operations.ListOperationsRequest;

            /**
             * Encodes the specified ListOperationsRequest message. Does not implicitly {@link Ydb.Operations.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: Ydb.Operations.IListOperationsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified ListOperationsRequest message, length delimited. Does not implicitly {@link Ydb.Operations.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: Ydb.Operations.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): Ydb.Operations.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)): Ydb.Operations.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 }): Ydb.Operations.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: Ydb.Operations.ListOperationsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

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

        /** Properties of a ListOperationsResponse. */
        interface IListOperationsResponse {

            /** ListOperationsResponse status */
            status?: (Ydb.StatusIds.StatusCode|null);

            /** ListOperationsResponse issues */
            issues?: (Ydb.Issue.IIssueMessage[]|null);

            /** ListOperationsResponse operations */
            operations?: (Ydb.Operations.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?: Ydb.Operations.IListOperationsResponse);

            /** ListOperationsResponse status. */
            public status: Ydb.StatusIds.StatusCode;

            /** ListOperationsResponse issues. */
            public issues: Ydb.Issue.IIssueMessage[];

            /** ListOperationsResponse operations. */
            public operations: Ydb.Operations.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?: Ydb.Operations.IListOperationsResponse): Ydb.Operations.ListOperationsResponse;

            /**
             * Encodes the specified ListOperationsResponse message. Does not implicitly {@link Ydb.Operations.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: Ydb.Operations.IListOperationsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified ListOperationsResponse message, length delimited. Does not implicitly {@link Ydb.Operations.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: Ydb.Operations.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): Ydb.Operations.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)): Ydb.Operations.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 }): Ydb.Operations.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: Ydb.Operations.ListOperationsResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

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

        /** Properties of an Operation. */
        interface IOperation {

            /** Operation id */
            id?: (string|null);

            /** Operation ready */
            ready?: (boolean|null);

            /** Operation status */
            status?: (Ydb.StatusIds.StatusCode|null);

            /** Operation issues */
            issues?: (Ydb.Issue.IIssueMessage[]|null);

            /** Operation result */
            result?: (google.protobuf.IAny|null);

            /** Operation metadata */
            metadata?: (google.protobuf.IAny|null);

            /** Operation costInfo */
            costInfo?: (Ydb.ICostInfo|null);
        }

        /** Represents an Operation. */
        class Operation implements IOperation {

            /**
             * Constructs a new Operation.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Operations.IOperation);

            /** Operation id. */
            public id: string;

            /** Operation ready. */
            public ready: boolean;

            /** Operation status. */
            public status: Ydb.StatusIds.StatusCode;

            /** Operation issues. */
            public issues: Ydb.Issue.IIssueMessage[];

            /** Operation result. */
            public result?: (google.protobuf.IAny|null);

            /** Operation metadata. */
            public metadata?: (google.protobuf.IAny|null);

            /** Operation costInfo. */
            public costInfo?: (Ydb.ICostInfo|null);

            /**
             * Creates a new Operation instance using the specified properties.
             * @param [properties] Properties to set
             * @returns Operation instance
             */
            public static create(properties?: Ydb.Operations.IOperation): Ydb.Operations.Operation;

            /**
             * Encodes the specified Operation message. Does not implicitly {@link Ydb.Operations.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: Ydb.Operations.IOperation, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified Operation message, length delimited. Does not implicitly {@link Ydb.Operations.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: Ydb.Operations.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): Ydb.Operations.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)): Ydb.Operations.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 }): Ydb.Operations.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: Ydb.Operations.Operation, options?: $protobuf.IConversionOptions): { [k: string]: any };

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

    /** Properties of a Limit. */
    interface ILimit {

        /** Limit range */
        range?: (Ydb.Limit.IRange|null);

        /** Limit lt */
        lt?: (number|null);

        /** Limit le */
        le?: (number|null);

        /** Limit eq */
        eq?: (number|null);

        /** Limit ge */
        ge?: (number|null);

        /** Limit gt */
        gt?: (number|null);
    }

    /** Represents a Limit. */
    class Limit implements ILimit {

        /**
         * Constructs a new Limit.
         * @param [properties] Properties to set
         */
        constructor(properties?: Ydb.ILimit);

        /** Limit range. */
        public range?: (Ydb.Limit.IRange|null);

        /** Limit lt. */
        public lt?: (number|null);

        /** Limit le. */
        public le?: (number|null);

        /** Limit eq. */
        public eq?: (number|null);

        /** Limit ge. */
        public ge?: (number|null);

        /** Limit gt. */
        public gt?: (number|null);

        /** Limit kind. */
        public kind?: ("range"|"lt"|"le"|"eq"|"ge"|"gt");

        /**
         * Creates a new Limit instance using the specified properties.
         * @param [properties] Properties to set
         * @returns Limit instance
         */
        public static create(properties?: Ydb.ILimit): Ydb.Limit;

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

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

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

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

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

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

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

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

    namespace Limit {

        /** Properties of a Range. */
        interface IRange {

            /** Range min */
            min?: (number|null);

            /** Range max */
            max?: (number|null);
        }

        /** Represents a Range. */
        class Range implements IRange {

            /**
             * Constructs a new Range.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Limit.IRange);

            /** Range min. */
            public min: number;

            /** Range max. */
            public max: number;

            /**
             * Creates a new Range instance using the specified properties.
             * @param [properties] Properties to set
             * @returns Range instance
             */
            public static create(properties?: Ydb.Limit.IRange): Ydb.Limit.Range;

            /**
             * Encodes the specified Range message. Does not implicitly {@link Ydb.Limit.Range.verify|verify} messages.
             * @param message Range message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Limit.IRange, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

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

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

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

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

    /** Properties of a MapKey. */
    interface IMapKey {

        /** MapKey length */
        length?: (Ydb.ILimit|null);

        /** MapKey value */
        value?: (string|null);
    }

    /** Represents a MapKey. */
    class MapKey implements IMapKey {

        /**
         * Constructs a new MapKey.
         * @param [properties] Properties to set
         */
        constructor(properties?: Ydb.IMapKey);

        /** MapKey length. */
        public length?: (Ydb.ILimit|null);

        /** MapKey value. */
        public value: string;

        /**
         * Creates a new MapKey instance using the specified properties.
         * @param [properties] Properties to set
         * @returns MapKey instance
         */
        public static create(properties?: Ydb.IMapKey): Ydb.MapKey;

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

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

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

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

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

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

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

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

    /** Properties of a FeatureFlag. */
    interface IFeatureFlag {
    }

    /** Represents a FeatureFlag. */
    class FeatureFlag implements IFeatureFlag {

        /**
         * Constructs a new FeatureFlag.
         * @param [properties] Properties to set
         */
        constructor(properties?: Ydb.IFeatureFlag);

        /**
         * Creates a new FeatureFlag instance using the specified properties.
         * @param [properties] Properties to set
         * @returns FeatureFlag instance
         */
        public static create(properties?: Ydb.IFeatureFlag): Ydb.FeatureFlag;

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

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

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

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

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

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

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

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

    namespace FeatureFlag {

        /** Status enum. */
        enum Status {
            STATUS_UNSPECIFIED = 0,
            ENABLED = 1,
            DISABLED = 2
        }
    }

    /** Properties of a CostInfo. */
    interface ICostInfo {

        /** CostInfo consumedUnits */
        consumedUnits?: (number|null);
    }

    /** Represents a CostInfo. */
    class CostInfo implements ICostInfo {

        /**
         * Constructs a new CostInfo.
         * @param [properties] Properties to set
         */
        constructor(properties?: Ydb.ICostInfo);

        /** CostInfo consumedUnits. */
        public consumedUnits: number;

        /**
         * Creates a new CostInfo instance using the specified properties.
         * @param [properties] Properties to set
         * @returns CostInfo instance
         */
        public static create(properties?: Ydb.ICostInfo): Ydb.CostInfo;

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

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

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

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

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

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

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

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

    /** Properties of a QuotaExceeded. */
    interface IQuotaExceeded {

        /** QuotaExceeded disk */
        disk?: (boolean|null);
    }

    /** Represents a QuotaExceeded. */
    class QuotaExceeded implements IQuotaExceeded {

        /**
         * Constructs a new QuotaExceeded.
         * @param [properties] Properties to set
         */
        constructor(properties?: Ydb.IQuotaExceeded);

        /** QuotaExceeded disk. */
        public disk: boolean;

        /**
         * Creates a new QuotaExceeded instance using the specified properties.
         * @param [properties] Properties to set
         * @returns QuotaExceeded instance
         */
        public static create(properties?: Ydb.IQuotaExceeded): Ydb.QuotaExceeded;

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

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

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

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

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

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

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

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

    /** Properties of a VirtualTimestamp. */
    interface IVirtualTimestamp {

        /** VirtualTimestamp planStep */
        planStep?: (number|Long|null);

        /** VirtualTimestamp txId */
        txId?: (number|Long|null);
    }

    /** Represents a VirtualTimestamp. */
    class VirtualTimestamp implements IVirtualTimestamp {

        /**
         * Constructs a new VirtualTimestamp.
         * @param [properties] Properties to set
         */
        constructor(properties?: Ydb.IVirtualTimestamp);

        /** VirtualTimestamp planStep. */
        public planStep: (number|Long);

        /** VirtualTimestamp txId. */
        public txId: (number|Long);

        /**
         * Creates a new VirtualTimestamp instance using the specified properties.
         * @param [properties] Properties to set
         * @returns VirtualTimestamp instance
         */
        public static create(properties?: Ydb.IVirtualTimestamp): Ydb.VirtualTimestamp;

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

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

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

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

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

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

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

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

    /** Namespace Issue. */
    namespace Issue {

        /** Properties of an IssueMessage. */
        interface IIssueMessage {

            /** IssueMessage position */
            position?: (Ydb.Issue.IssueMessage.IPosition|null);

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

            /** IssueMessage endPosition */
            endPosition?: (Ydb.Issue.IssueMessage.IPosition|null);

            /** IssueMessage issueCode */
            issueCode?: (number|null);

            /** IssueMessage severity */
            severity?: (number|null);

            /** IssueMessage issues */
            issues?: (Ydb.Issue.IIssueMessage[]|null);
        }

        /** Represents an IssueMessage. */
        class IssueMessage implements IIssueMessage {

            /**
             * Constructs a new IssueMessage.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Issue.IIssueMessage);

            /** IssueMessage position. */
            public position?: (Ydb.Issue.IssueMessage.IPosition|null);

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

            /** IssueMessage endPosition. */
            public endPosition?: (Ydb.Issue.IssueMessage.IPosition|null);

            /** IssueMessage issueCode. */
            public issueCode: number;

            /** IssueMessage severity. */
            public severity: number;

            /** IssueMessage issues. */
            public issues: Ydb.Issue.IIssueMessage[];

            /**
             * Creates a new IssueMessage instance using the specified properties.
             * @param [properties] Properties to set
             * @returns IssueMessage instance
             */
            public static create(properties?: Ydb.Issue.IIssueMessage): Ydb.Issue.IssueMessage;

            /**
             * Encodes the specified IssueMessage message. Does not implicitly {@link Ydb.Issue.IssueMessage.verify|verify} messages.
             * @param message IssueMessage message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Issue.IIssueMessage, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

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

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

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

        namespace IssueMessage {

            /** Properties of a Position. */
            interface IPosition {

                /** Position row */
                row?: (number|null);

                /** Position column */
                column?: (number|null);

                /** Position file */
                file?: (string|null);
            }

            /** Represents a Position. */
            class Position implements IPosition {

                /**
                 * Constructs a new Position.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: Ydb.Issue.IssueMessage.IPosition);

                /** Position row. */
                public row: number;

                /** Position column. */
                public column: number;

                /** Position file. */
                public file: string;

                /**
                 * Creates a new Position instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns Position instance
                 */
                public static create(properties?: Ydb.Issue.IssueMessage.IPosition): Ydb.Issue.IssueMessage.Position;

                /**
                 * Encodes the specified Position message. Does not implicitly {@link Ydb.Issue.IssueMessage.Position.verify|verify} messages.
                 * @param message Position message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: Ydb.Issue.IssueMessage.IPosition, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified Position message, length delimited. Does not implicitly {@link Ydb.Issue.IssueMessage.Position.verify|verify} messages.
                 * @param message Position message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: Ydb.Issue.IssueMessage.IPosition, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

                /**
                 * Creates a Position message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns Position
                 */
                public static fromObject(object: { [k: string]: any }): Ydb.Issue.IssueMessage.Position;

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

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

    /** Properties of a StatusIds. */
    interface IStatusIds {
    }

    /** Represents a StatusIds. */
    class StatusIds implements IStatusIds {

        /**
         * Constructs a new StatusIds.
         * @param [properties] Properties to set
         */
        constructor(properties?: Ydb.IStatusIds);

        /**
         * Creates a new StatusIds instance using the specified properties.
         * @param [properties] Properties to set
         * @returns StatusIds instance
         */
        public static create(properties?: Ydb.IStatusIds): Ydb.StatusIds;

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

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

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

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

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

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

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

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

    namespace StatusIds {

        /** StatusCode enum. */
        enum StatusCode {
            STATUS_CODE_UNSPECIFIED = 0,
            SUCCESS = 400000,
            BAD_REQUEST = 400010,
            UNAUTHORIZED = 400020,
            INTERNAL_ERROR = 400030,
            ABORTED = 400040,
            UNAVAILABLE = 400050,
            OVERLOADED = 400060,
            SCHEME_ERROR = 400070,
            GENERIC_ERROR = 400080,
            TIMEOUT = 400090,
            BAD_SESSION = 400100,
            PRECONDITION_FAILED = 400120,
            ALREADY_EXISTS = 400130,
            NOT_FOUND = 400140,
            SESSION_EXPIRED = 400150,
            CANCELLED = 400160,
            UNDETERMINED = 400170,
            UNSUPPORTED = 400180,
            SESSION_BUSY = 400190,
            EXTERNAL_ERROR = 400200
        }
    }

    /** Namespace Cms. */
    namespace Cms {

        /** Namespace V1. */
        namespace V1 {

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

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

                /**
                 * Calls CreateDatabase.
                 * @param request CreateDatabaseRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and CreateDatabaseResponse
                 */
                public createDatabase(request: Ydb.Cms.ICreateDatabaseRequest, callback: Ydb.Cms.V1.CmsService.CreateDatabaseCallback): void;

                /**
                 * Calls CreateDatabase.
                 * @param request CreateDatabaseRequest message or plain object
                 * @returns Promise
                 */
                public createDatabase(request: Ydb.Cms.ICreateDatabaseRequest): Promise<Ydb.Cms.CreateDatabaseResponse>;

                /**
                 * Calls GetDatabaseStatus.
                 * @param request GetDatabaseStatusRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and GetDatabaseStatusResponse
                 */
                public getDatabaseStatus(request: Ydb.Cms.IGetDatabaseStatusRequest, callback: Ydb.Cms.V1.CmsService.GetDatabaseStatusCallback): void;

                /**
                 * Calls GetDatabaseStatus.
                 * @param request GetDatabaseStatusRequest message or plain object
                 * @returns Promise
                 */
                public getDatabaseStatus(request: Ydb.Cms.IGetDatabaseStatusRequest): Promise<Ydb.Cms.GetDatabaseStatusResponse>;

                /**
                 * Calls AlterDatabase.
                 * @param request AlterDatabaseRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and AlterDatabaseResponse
                 */
                public alterDatabase(request: Ydb.Cms.IAlterDatabaseRequest, callback: Ydb.Cms.V1.CmsService.AlterDatabaseCallback): void;

                /**
                 * Calls AlterDatabase.
                 * @param request AlterDatabaseRequest message or plain object
                 * @returns Promise
                 */
                public alterDatabase(request: Ydb.Cms.IAlterDatabaseRequest): Promise<Ydb.Cms.AlterDatabaseResponse>;

                /**
                 * Calls ListDatabases.
                 * @param request ListDatabasesRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and ListDatabasesResponse
                 */
                public listDatabases(request: Ydb.Cms.IListDatabasesRequest, callback: Ydb.Cms.V1.CmsService.ListDatabasesCallback): void;

                /**
                 * Calls ListDatabases.
                 * @param request ListDatabasesRequest message or plain object
                 * @returns Promise
                 */
                public listDatabases(request: Ydb.Cms.IListDatabasesRequest): Promise<Ydb.Cms.ListDatabasesResponse>;

                /**
                 * Calls RemoveDatabase.
                 * @param request RemoveDatabaseRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and RemoveDatabaseResponse
                 */
                public removeDatabase(request: Ydb.Cms.IRemoveDatabaseRequest, callback: Ydb.Cms.V1.CmsService.RemoveDatabaseCallback): void;

                /**
                 * Calls RemoveDatabase.
                 * @param request RemoveDatabaseRequest message or plain object
                 * @returns Promise
                 */
                public removeDatabase(request: Ydb.Cms.IRemoveDatabaseRequest): Promise<Ydb.Cms.RemoveDatabaseResponse>;

                /**
                 * Calls DescribeDatabaseOptions.
                 * @param request DescribeDatabaseOptionsRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and DescribeDatabaseOptionsResponse
                 */
                public describeDatabaseOptions(request: Ydb.Cms.IDescribeDatabaseOptionsRequest, callback: Ydb.Cms.V1.CmsService.DescribeDatabaseOptionsCallback): void;

                /**
                 * Calls DescribeDatabaseOptions.
                 * @param request DescribeDatabaseOptionsRequest message or plain object
                 * @returns Promise
                 */
                public describeDatabaseOptions(request: Ydb.Cms.IDescribeDatabaseOptionsRequest): Promise<Ydb.Cms.DescribeDatabaseOptionsResponse>;
            }

            namespace CmsService {

                /**
                 * Callback as used by {@link Ydb.Cms.V1.CmsService#createDatabase}.
                 * @param error Error, if any
                 * @param [response] CreateDatabaseResponse
                 */
                type CreateDatabaseCallback = (error: (Error|null), response?: Ydb.Cms.CreateDatabaseResponse) => void;

                /**
                 * Callback as used by {@link Ydb.Cms.V1.CmsService#getDatabaseStatus}.
                 * @param error Error, if any
                 * @param [response] GetDatabaseStatusResponse
                 */
                type GetDatabaseStatusCallback = (error: (Error|null), response?: Ydb.Cms.GetDatabaseStatusResponse) => void;

                /**
                 * Callback as used by {@link Ydb.Cms.V1.CmsService#alterDatabase}.
                 * @param error Error, if any
                 * @param [response] AlterDatabaseResponse
                 */
                type AlterDatabaseCallback = (error: (Error|null), response?: Ydb.Cms.AlterDatabaseResponse) => void;

                /**
                 * Callback as used by {@link Ydb.Cms.V1.CmsService#listDatabases}.
                 * @param error Error, if any
                 * @param [response] ListDatabasesResponse
                 */
                type ListDatabasesCallback = (error: (Error|null), response?: Ydb.Cms.ListDatabasesResponse) => void;

                /**
                 * Callback as used by {@link Ydb.Cms.V1.CmsService#removeDatabase}.
                 * @param error Error, if any
                 * @param [response] RemoveDatabaseResponse
                 */
                type RemoveDatabaseCallback = (error: (Error|null), response?: Ydb.Cms.RemoveDatabaseResponse) => void;

                /**
                 * Callback as used by {@link Ydb.Cms.V1.CmsService#describeDatabaseOptions}.
                 * @param error Error, if any
                 * @param [response] DescribeDatabaseOptionsResponse
                 */
                type DescribeDatabaseOptionsCallback = (error: (Error|null), response?: Ydb.Cms.DescribeDatabaseOptionsResponse) => void;
            }
        }

        /** Properties of a StorageUnits. */
        interface IStorageUnits {

            /** StorageUnits unitKind */
            unitKind?: (string|null);

            /** StorageUnits count */
            count?: (number|Long|null);
        }

        /** Represents a StorageUnits. */
        class StorageUnits implements IStorageUnits {

            /**
             * Constructs a new StorageUnits.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Cms.IStorageUnits);

            /** StorageUnits unitKind. */
            public unitKind: string;

            /** StorageUnits count. */
            public count: (number|Long);

            /**
             * Creates a new StorageUnits instance using the specified properties.
             * @param [properties] Properties to set
             * @returns StorageUnits instance
             */
            public static create(properties?: Ydb.Cms.IStorageUnits): Ydb.Cms.StorageUnits;

            /**
             * Encodes the specified StorageUnits message. Does not implicitly {@link Ydb.Cms.StorageUnits.verify|verify} messages.
             * @param message StorageUnits message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Cms.IStorageUnits, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

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

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

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

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

        /** Properties of a ComputationalUnits. */
        interface IComputationalUnits {

            /** ComputationalUnits unitKind */
            unitKind?: (string|null);

            /** ComputationalUnits availabilityZone */
            availabilityZone?: (string|null);

            /** ComputationalUnits count */
            count?: (number|Long|null);
        }

        /** Represents a ComputationalUnits. */
        class ComputationalUnits implements IComputationalUnits {

            /**
             * Constructs a new ComputationalUnits.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Cms.IComputationalUnits);

            /** ComputationalUnits unitKind. */
            public unitKind: string;

            /** ComputationalUnits availabilityZone. */
            public availabilityZone: string;

            /** ComputationalUnits count. */
            public count: (number|Long);

            /**
             * Creates a new ComputationalUnits instance using the specified properties.
             * @param [properties] Properties to set
             * @returns ComputationalUnits instance
             */
            public static create(properties?: Ydb.Cms.IComputationalUnits): Ydb.Cms.ComputationalUnits;

            /**
             * Encodes the specified ComputationalUnits message. Does not implicitly {@link Ydb.Cms.ComputationalUnits.verify|verify} messages.
             * @param message ComputationalUnits message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Cms.IComputationalUnits, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

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

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

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

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

        /** Properties of an AllocatedComputationalUnit. */
        interface IAllocatedComputationalUnit {

            /** AllocatedComputationalUnit host */
            host?: (string|null);

            /** AllocatedComputationalUnit port */
            port?: (number|null);

            /** AllocatedComputationalUnit unitKind */
            unitKind?: (string|null);
        }

        /** Represents an AllocatedComputationalUnit. */
        class AllocatedComputationalUnit implements IAllocatedComputationalUnit {

            /**
             * Constructs a new AllocatedComputationalUnit.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Cms.IAllocatedComputationalUnit);

            /** AllocatedComputationalUnit host. */
            public host: string;

            /** AllocatedComputationalUnit port. */
            public port: number;

            /** AllocatedComputationalUnit unitKind. */
            public unitKind: string;

            /**
             * Creates a new AllocatedComputationalUnit instance using the specified properties.
             * @param [properties] Properties to set
             * @returns AllocatedComputationalUnit instance
             */
            public static create(properties?: Ydb.Cms.IAllocatedComputationalUnit): Ydb.Cms.AllocatedComputationalUnit;

            /**
             * Encodes the specified AllocatedComputationalUnit message. Does not implicitly {@link Ydb.Cms.AllocatedComputationalUnit.verify|verify} messages.
             * @param message AllocatedComputationalUnit message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Cms.IAllocatedComputationalUnit, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

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

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

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

        /** Properties of a Resources. */
        interface IResources {

            /** Resources storageUnits */
            storageUnits?: (Ydb.Cms.IStorageUnits[]|null);

            /** Resources computationalUnits */
            computationalUnits?: (Ydb.Cms.IComputationalUnits[]|null);
        }

        /** Represents a Resources. */
        class Resources implements IResources {

            /**
             * Constructs a new Resources.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Cms.IResources);

            /** Resources storageUnits. */
            public storageUnits: Ydb.Cms.IStorageUnits[];

            /** Resources computationalUnits. */
            public computationalUnits: Ydb.Cms.IComputationalUnits[];

            /**
             * Creates a new Resources instance using the specified properties.
             * @param [properties] Properties to set
             * @returns Resources instance
             */
            public static create(properties?: Ydb.Cms.IResources): Ydb.Cms.Resources;

            /**
             * Encodes the specified Resources message. Does not implicitly {@link Ydb.Cms.Resources.verify|verify} messages.
             * @param message Resources message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Cms.IResources, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

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

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

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

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

        /** Properties of a ServerlessResources. */
        interface IServerlessResources {

            /** ServerlessResources sharedDatabasePath */
            sharedDatabasePath?: (string|null);
        }

        /** Represents a ServerlessResources. */
        class ServerlessResources implements IServerlessResources {

            /**
             * Constructs a new ServerlessResources.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Cms.IServerlessResources);

            /** ServerlessResources sharedDatabasePath. */
            public sharedDatabasePath: string;

            /**
             * Creates a new ServerlessResources instance using the specified properties.
             * @param [properties] Properties to set
             * @returns ServerlessResources instance
             */
            public static create(properties?: Ydb.Cms.IServerlessResources): Ydb.Cms.ServerlessResources;

            /**
             * Encodes the specified ServerlessResources message. Does not implicitly {@link Ydb.Cms.ServerlessResources.verify|verify} messages.
             * @param message ServerlessResources message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Cms.IServerlessResources, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

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

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

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

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

        /** Properties of a DatabaseOptions. */
        interface IDatabaseOptions {

            /** DatabaseOptions disableTxService */
            disableTxService?: (boolean|null);

            /** DatabaseOptions disableExternalSubdomain */
            disableExternalSubdomain?: (boolean|null);

            /** DatabaseOptions planResolution */
            planResolution?: (number|null);
        }

        /** Represents a DatabaseOptions. */
        class DatabaseOptions implements IDatabaseOptions {

            /**
             * Constructs a new DatabaseOptions.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Cms.IDatabaseOptions);

            /** DatabaseOptions disableTxService. */
            public disableTxService: boolean;

            /** DatabaseOptions disableExternalSubdomain. */
            public disableExternalSubdomain: boolean;

            /** DatabaseOptions planResolution. */
            public planResolution: number;

            /**
             * Creates a new DatabaseOptions instance using the specified properties.
             * @param [properties] Properties to set
             * @returns DatabaseOptions instance
             */
            public static create(properties?: Ydb.Cms.IDatabaseOptions): Ydb.Cms.DatabaseOptions;

            /**
             * Encodes the specified DatabaseOptions message. Does not implicitly {@link Ydb.Cms.DatabaseOptions.verify|verify} messages.
             * @param message DatabaseOptions message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Cms.IDatabaseOptions, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

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

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

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

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

        /** Properties of a SchemaOperationQuotas. */
        interface ISchemaOperationQuotas {

            /** SchemaOperationQuotas leakyBucketQuotas */
            leakyBucketQuotas?: (Ydb.Cms.SchemaOperationQuotas.ILeakyBucket[]|null);
        }

        /** Represents a SchemaOperationQuotas. */
        class SchemaOperationQuotas implements ISchemaOperationQuotas {

            /**
             * Constructs a new SchemaOperationQuotas.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Cms.ISchemaOperationQuotas);

            /** SchemaOperationQuotas leakyBucketQuotas. */
            public leakyBucketQuotas: Ydb.Cms.SchemaOperationQuotas.ILeakyBucket[];

            /**
             * Creates a new SchemaOperationQuotas instance using the specified properties.
             * @param [properties] Properties to set
             * @returns SchemaOperationQuotas instance
             */
            public static create(properties?: Ydb.Cms.ISchemaOperationQuotas): Ydb.Cms.SchemaOperationQuotas;

            /**
             * Encodes the specified SchemaOperationQuotas message. Does not implicitly {@link Ydb.Cms.SchemaOperationQuotas.verify|verify} messages.
             * @param message SchemaOperationQuotas message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Cms.ISchemaOperationQuotas, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

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

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

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

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

        namespace SchemaOperationQuotas {

            /** Properties of a LeakyBucket. */
            interface ILeakyBucket {

                /** LeakyBucket bucketSize */
                bucketSize?: (number|null);

                /** LeakyBucket bucketSeconds */
                bucketSeconds?: (number|Long|null);
            }

            /** Represents a LeakyBucket. */
            class LeakyBucket implements ILeakyBucket {

                /**
                 * Constructs a new LeakyBucket.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: Ydb.Cms.SchemaOperationQuotas.ILeakyBucket);

                /** LeakyBucket bucketSize. */
                public bucketSize: number;

                /** LeakyBucket bucketSeconds. */
                public bucketSeconds: (number|Long);

                /**
                 * Creates a new LeakyBucket instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns LeakyBucket instance
                 */
                public static create(properties?: Ydb.Cms.SchemaOperationQuotas.ILeakyBucket): Ydb.Cms.SchemaOperationQuotas.LeakyBucket;

                /**
                 * Encodes the specified LeakyBucket message. Does not implicitly {@link Ydb.Cms.SchemaOperationQuotas.LeakyBucket.verify|verify} messages.
                 * @param message LeakyBucket message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: Ydb.Cms.SchemaOperationQuotas.ILeakyBucket, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified LeakyBucket message, length delimited. Does not implicitly {@link Ydb.Cms.SchemaOperationQuotas.LeakyBucket.verify|verify} messages.
                 * @param message LeakyBucket message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: Ydb.Cms.SchemaOperationQuotas.ILeakyBucket, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

                /**
                 * Creates a LeakyBucket message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns LeakyBucket
                 */
                public static fromObject(object: { [k: string]: any }): Ydb.Cms.SchemaOperationQuotas.LeakyBucket;

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

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

        /** Properties of a DatabaseQuotas. */
        interface IDatabaseQuotas {

            /** DatabaseQuotas dataSizeHardQuota */
            dataSizeHardQuota?: (number|Long|null);

            /** DatabaseQuotas dataSizeSoftQuota */
            dataSizeSoftQuota?: (number|Long|null);

            /** DatabaseQuotas dataStreamShardsQuota */
            dataStreamShardsQuota?: (number|Long|null);

            /** DatabaseQuotas dataStreamReservedStorageQuota */
            dataStreamReservedStorageQuota?: (number|Long|null);

            /** DatabaseQuotas ttlMinRunInternalSeconds */
            ttlMinRunInternalSeconds?: (number|null);
        }

        /** Represents a DatabaseQuotas. */
        class DatabaseQuotas implements IDatabaseQuotas {

            /**
             * Constructs a new DatabaseQuotas.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Cms.IDatabaseQuotas);

            /** DatabaseQuotas dataSizeHardQuota. */
            public dataSizeHardQuota: (number|Long);

            /** DatabaseQuotas dataSizeSoftQuota. */
            public dataSizeSoftQuota: (number|Long);

            /** DatabaseQuotas dataStreamShardsQuota. */
            public dataStreamShardsQuota: (number|Long);

            /** DatabaseQuotas dataStreamReservedStorageQuota. */
            public dataStreamReservedStorageQuota: (number|Long);

            /** DatabaseQuotas ttlMinRunInternalSeconds. */
            public ttlMinRunInternalSeconds: number;

            /**
             * Creates a new DatabaseQuotas instance using the specified properties.
             * @param [properties] Properties to set
             * @returns DatabaseQuotas instance
             */
            public static create(properties?: Ydb.Cms.IDatabaseQuotas): Ydb.Cms.DatabaseQuotas;

            /**
             * Encodes the specified DatabaseQuotas message. Does not implicitly {@link Ydb.Cms.DatabaseQuotas.verify|verify} messages.
             * @param message DatabaseQuotas message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Cms.IDatabaseQuotas, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

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

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

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

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

        /** Properties of a CreateDatabaseRequest. */
        interface ICreateDatabaseRequest {

            /** CreateDatabaseRequest operationParams */
            operationParams?: (Ydb.Operations.IOperationParams|null);

            /** CreateDatabaseRequest path */
            path?: (string|null);

            /** CreateDatabaseRequest resources */
            resources?: (Ydb.Cms.IResources|null);

            /** CreateDatabaseRequest sharedResources */
            sharedResources?: (Ydb.Cms.IResources|null);

            /** CreateDatabaseRequest serverlessResources */
            serverlessResources?: (Ydb.Cms.IServerlessResources|null);

            /** CreateDatabaseRequest options */
            options?: (Ydb.Cms.IDatabaseOptions|null);

            /** CreateDatabaseRequest attributes */
            attributes?: ({ [k: string]: string }|null);

            /** CreateDatabaseRequest schemaOperationQuotas */
            schemaOperationQuotas?: (Ydb.Cms.ISchemaOperationQuotas|null);

            /** CreateDatabaseRequest idempotencyKey */
            idempotencyKey?: (string|null);

            /** CreateDatabaseRequest databaseQuotas */
            databaseQuotas?: (Ydb.Cms.IDatabaseQuotas|null);
        }

        /** Represents a CreateDatabaseRequest. */
        class CreateDatabaseRequest implements ICreateDatabaseRequest {

            /**
             * Constructs a new CreateDatabaseRequest.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Cms.ICreateDatabaseRequest);

            /** CreateDatabaseRequest operationParams. */
            public operationParams?: (Ydb.Operations.IOperationParams|null);

            /** CreateDatabaseRequest path. */
            public path: string;

            /** CreateDatabaseRequest resources. */
            public resources?: (Ydb.Cms.IResources|null);

            /** CreateDatabaseRequest sharedResources. */
            public sharedResources?: (Ydb.Cms.IResources|null);

            /** CreateDatabaseRequest serverlessResources. */
            public serverlessResources?: (Ydb.Cms.IServerlessResources|null);

            /** CreateDatabaseRequest options. */
            public options?: (Ydb.Cms.IDatabaseOptions|null);

            /** CreateDatabaseRequest attributes. */
            public attributes: { [k: string]: string };

            /** CreateDatabaseRequest schemaOperationQuotas. */
            public schemaOperationQuotas?: (Ydb.Cms.ISchemaOperationQuotas|null);

            /** CreateDatabaseRequest idempotencyKey. */
            public idempotencyKey: string;

            /** CreateDatabaseRequest databaseQuotas. */
            public databaseQuotas?: (Ydb.Cms.IDatabaseQuotas|null);

            /** CreateDatabaseRequest resourcesKind. */
            public resourcesKind?: ("resources"|"sharedResources"|"serverlessResources");

            /**
             * Creates a new CreateDatabaseRequest instance using the specified properties.
             * @param [properties] Properties to set
             * @returns CreateDatabaseRequest instance
             */
            public static create(properties?: Ydb.Cms.ICreateDatabaseRequest): Ydb.Cms.CreateDatabaseRequest;

            /**
             * Encodes the specified CreateDatabaseRequest message. Does not implicitly {@link Ydb.Cms.CreateDatabaseRequest.verify|verify} messages.
             * @param message CreateDatabaseRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Cms.ICreateDatabaseRequest, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

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

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

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

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

        /** Properties of a CreateDatabaseResponse. */
        interface ICreateDatabaseResponse {

            /** CreateDatabaseResponse operation */
            operation?: (Ydb.Operations.IOperation|null);
        }

        /** Represents a CreateDatabaseResponse. */
        class CreateDatabaseResponse implements ICreateDatabaseResponse {

            /**
             * Constructs a new CreateDatabaseResponse.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Cms.ICreateDatabaseResponse);

            /** CreateDatabaseResponse operation. */
            public operation?: (Ydb.Operations.IOperation|null);

            /**
             * Creates a new CreateDatabaseResponse instance using the specified properties.
             * @param [properties] Properties to set
             * @returns CreateDatabaseResponse instance
             */
            public static create(properties?: Ydb.Cms.ICreateDatabaseResponse): Ydb.Cms.CreateDatabaseResponse;

            /**
             * Encodes the specified CreateDatabaseResponse message. Does not implicitly {@link Ydb.Cms.CreateDatabaseResponse.verify|verify} messages.
             * @param message CreateDatabaseResponse message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Cms.ICreateDatabaseResponse, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

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

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

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

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

        /** Properties of a GetDatabaseStatusRequest. */
        interface IGetDatabaseStatusRequest {

            /** GetDatabaseStatusRequest path */
            path?: (string|null);

            /** GetDatabaseStatusRequest operationParams */
            operationParams?: (Ydb.Operations.IOperationParams|null);
        }

        /** Represents a GetDatabaseStatusRequest. */
        class GetDatabaseStatusRequest implements IGetDatabaseStatusRequest {

            /**
             * Constructs a new GetDatabaseStatusRequest.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Cms.IGetDatabaseStatusRequest);

            /** GetDatabaseStatusRequest path. */
            public path: string;

            /** GetDatabaseStatusRequest operationParams. */
            public operationParams?: (Ydb.Operations.IOperationParams|null);

            /**
             * Creates a new GetDatabaseStatusRequest instance using the specified properties.
             * @param [properties] Properties to set
             * @returns GetDatabaseStatusRequest instance
             */
            public static create(properties?: Ydb.Cms.IGetDatabaseStatusRequest): Ydb.Cms.GetDatabaseStatusRequest;

            /**
             * Encodes the specified GetDatabaseStatusRequest message. Does not implicitly {@link Ydb.Cms.GetDatabaseStatusRequest.verify|verify} messages.
             * @param message GetDatabaseStatusRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Cms.IGetDatabaseStatusRequest, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

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

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

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

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

        /** Properties of a GetDatabaseStatusResponse. */
        interface IGetDatabaseStatusResponse {

            /** GetDatabaseStatusResponse operation */
            operation?: (Ydb.Operations.IOperation|null);
        }

        /** Represents a GetDatabaseStatusResponse. */
        class GetDatabaseStatusResponse implements IGetDatabaseStatusResponse {

            /**
             * Constructs a new GetDatabaseStatusResponse.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Cms.IGetDatabaseStatusResponse);

            /** GetDatabaseStatusResponse operation. */
            public operation?: (Ydb.Operations.IOperation|null);

            /**
             * Creates a new GetDatabaseStatusResponse instance using the specified properties.
             * @param [properties] Properties to set
             * @returns GetDatabaseStatusResponse instance
             */
            public static create(properties?: Ydb.Cms.IGetDatabaseStatusResponse): Ydb.Cms.GetDatabaseStatusResponse;

            /**
             * Encodes the specified GetDatabaseStatusResponse message. Does not implicitly {@link Ydb.Cms.GetDatabaseStatusResponse.verify|verify} messages.
             * @param message GetDatabaseStatusResponse message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Cms.IGetDatabaseStatusResponse, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

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

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

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

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

        /** Properties of a GetDatabaseStatusResult. */
        interface IGetDatabaseStatusResult {

            /** GetDatabaseStatusResult path */
            path?: (string|null);

            /** GetDatabaseStatusResult state */
            state?: (Ydb.Cms.GetDatabaseStatusResult.State|null);

            /** GetDatabaseStatusResult requiredResources */
            requiredResources?: (Ydb.Cms.IResources|null);

            /** GetDatabaseStatusResult requiredSharedResources */
            requiredSharedResources?: (Ydb.Cms.IResources|null);

            /** GetDatabaseStatusResult serverlessResources */
            serverlessResources?: (Ydb.Cms.IServerlessResources|null);

            /** GetDatabaseStatusResult allocatedResources */
            allocatedResources?: (Ydb.Cms.IResources|null);

            /** GetDatabaseStatusResult registeredResources */
            registeredResources?: (Ydb.Cms.IAllocatedComputationalUnit[]|null);

            /** GetDatabaseStatusResult generation */
            generation?: (number|Long|null);

            /** GetDatabaseStatusResult schemaOperationQuotas */
            schemaOperationQuotas?: (Ydb.Cms.ISchemaOperationQuotas|null);

            /** GetDatabaseStatusResult databaseQuotas */
            databaseQuotas?: (Ydb.Cms.IDatabaseQuotas|null);
        }

        /** Represents a GetDatabaseStatusResult. */
        class GetDatabaseStatusResult implements IGetDatabaseStatusResult {

            /**
             * Constructs a new GetDatabaseStatusResult.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Cms.IGetDatabaseStatusResult);

            /** GetDatabaseStatusResult path. */
            public path: string;

            /** GetDatabaseStatusResult state. */
            public state: Ydb.Cms.GetDatabaseStatusResult.State;

            /** GetDatabaseStatusResult requiredResources. */
            public requiredResources?: (Ydb.Cms.IResources|null);

            /** GetDatabaseStatusResult requiredSharedResources. */
            public requiredSharedResources?: (Ydb.Cms.IResources|null);

            /** GetDatabaseStatusResult serverlessResources. */
            public serverlessResources?: (Ydb.Cms.IServerlessResources|null);

            /** GetDatabaseStatusResult allocatedResources. */
            public allocatedResources?: (Ydb.Cms.IResources|null);

            /** GetDatabaseStatusResult registeredResources. */
            public registeredResources: Ydb.Cms.IAllocatedComputationalUnit[];

            /** GetDatabaseStatusResult generation. */
            public generation: (number|Long);

            /** GetDatabaseStatusResult schemaOperationQuotas. */
            public schemaOperationQuotas?: (Ydb.Cms.ISchemaOperationQuotas|null);

            /** GetDatabaseStatusResult databaseQuotas. */
            public databaseQuotas?: (Ydb.Cms.IDatabaseQuotas|null);

            /** GetDatabaseStatusResult resourcesKind. */
            public resourcesKind?: ("requiredResources"|"requiredSharedResources"|"serverlessResources");

            /**
             * Creates a new GetDatabaseStatusResult instance using the specified properties.
             * @param [properties] Properties to set
             * @returns GetDatabaseStatusResult instance
             */
            public static create(properties?: Ydb.Cms.IGetDatabaseStatusResult): Ydb.Cms.GetDatabaseStatusResult;

            /**
             * Encodes the specified GetDatabaseStatusResult message. Does not implicitly {@link Ydb.Cms.GetDatabaseStatusResult.verify|verify} messages.
             * @param message GetDatabaseStatusResult message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Cms.IGetDatabaseStatusResult, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

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

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

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

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

        namespace GetDatabaseStatusResult {

            /** State enum. */
            enum State {
                STATE_UNSPECIFIED = 0,
                CREATING = 1,
                RUNNING = 2,
                REMOVING = 3,
                PENDING_RESOURCES = 4,
                CONFIGURING = 5
            }
        }

        /** Properties of an AlterDatabaseRequest. */
        interface IAlterDatabaseRequest {

            /** AlterDatabaseRequest path */
            path?: (string|null);

            /** AlterDatabaseRequest computationalUnitsToAdd */
            computationalUnitsToAdd?: (Ydb.Cms.IComputationalUnits[]|null);

            /** AlterDatabaseRequest computationalUnitsToRemove */
            computationalUnitsToRemove?: (Ydb.Cms.IComputationalUnits[]|null);

            /** AlterDatabaseRequest storageUnitsToAdd */
            storageUnitsToAdd?: (Ydb.Cms.IStorageUnits[]|null);

            /** AlterDatabaseRequest computationalUnitsToRegister */
            computationalUnitsToRegister?: (Ydb.Cms.IAllocatedComputationalUnit[]|null);

            /** AlterDatabaseRequest computationalUnitsToDeregister */
            computationalUnitsToDeregister?: (Ydb.Cms.IAllocatedComputationalUnit[]|null);

            /** AlterDatabaseRequest operationParams */
            operationParams?: (Ydb.Operations.IOperationParams|null);

            /** AlterDatabaseRequest generation */
            generation?: (number|Long|null);

            /** AlterDatabaseRequest schemaOperationQuotas */
            schemaOperationQuotas?: (Ydb.Cms.ISchemaOperationQuotas|null);

            /** AlterDatabaseRequest idempotencyKey */
            idempotencyKey?: (string|null);

            /** AlterDatabaseRequest databaseQuotas */
            databaseQuotas?: (Ydb.Cms.IDatabaseQuotas|null);

            /** AlterDatabaseRequest alterAttributes */
            alterAttributes?: ({ [k: string]: string }|null);
        }

        /** Represents an AlterDatabaseRequest. */
        class AlterDatabaseRequest implements IAlterDatabaseRequest {

            /**
             * Constructs a new AlterDatabaseRequest.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Cms.IAlterDatabaseRequest);

            /** AlterDatabaseRequest path. */
            public path: string;

            /** AlterDatabaseRequest computationalUnitsToAdd. */
            public computationalUnitsToAdd: Ydb.Cms.IComputationalUnits[];

            /** AlterDatabaseRequest computationalUnitsToRemove. */
            public computationalUnitsToRemove: Ydb.Cms.IComputationalUnits[];

            /** AlterDatabaseRequest storageUnitsToAdd. */
            public storageUnitsToAdd: Ydb.Cms.IStorageUnits[];

            /** AlterDatabaseRequest computationalUnitsToRegister. */
            public computationalUnitsToRegister: Ydb.Cms.IAllocatedComputationalUnit[];

            /** AlterDatabaseRequest computationalUnitsToDeregister. */
            public computationalUnitsToDeregister: Ydb.Cms.IAllocatedComputationalUnit[];

            /** AlterDatabaseRequest operationParams. */
            public operationParams?: (Ydb.Operations.IOperationParams|null);

            /** AlterDatabaseRequest generation. */
            public generation: (number|Long);

            /** AlterDatabaseRequest schemaOperationQuotas. */
            public schemaOperationQuotas?: (Ydb.Cms.ISchemaOperationQuotas|null);

            /** AlterDatabaseRequest idempotencyKey. */
            public idempotencyKey: string;

            /** AlterDatabaseRequest databaseQuotas. */
            public databaseQuotas?: (Ydb.Cms.IDatabaseQuotas|null);

            /** AlterDatabaseRequest alterAttributes. */
            public alterAttributes: { [k: string]: string };

            /**
             * Creates a new AlterDatabaseRequest instance using the specified properties.
             * @param [properties] Properties to set
             * @returns AlterDatabaseRequest instance
             */
            public static create(properties?: Ydb.Cms.IAlterDatabaseRequest): Ydb.Cms.AlterDatabaseRequest;

            /**
             * Encodes the specified AlterDatabaseRequest message. Does not implicitly {@link Ydb.Cms.AlterDatabaseRequest.verify|verify} messages.
             * @param message AlterDatabaseRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Cms.IAlterDatabaseRequest, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

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

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

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

        /** Properties of an AlterDatabaseResponse. */
        interface IAlterDatabaseResponse {

            /** AlterDatabaseResponse operation */
            operation?: (Ydb.Operations.IOperation|null);
        }

        /** Represents an AlterDatabaseResponse. */
        class AlterDatabaseResponse implements IAlterDatabaseResponse {

            /**
             * Constructs a new AlterDatabaseResponse.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Cms.IAlterDatabaseResponse);

            /** AlterDatabaseResponse operation. */
            public operation?: (Ydb.Operations.IOperation|null);

            /**
             * Creates a new AlterDatabaseResponse instance using the specified properties.
             * @param [properties] Properties to set
             * @returns AlterDatabaseResponse instance
             */
            public static create(properties?: Ydb.Cms.IAlterDatabaseResponse): Ydb.Cms.AlterDatabaseResponse;

            /**
             * Encodes the specified AlterDatabaseResponse message. Does not implicitly {@link Ydb.Cms.AlterDatabaseResponse.verify|verify} messages.
             * @param message AlterDatabaseResponse message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Cms.IAlterDatabaseResponse, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

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

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

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

        /** Properties of a ListDatabasesRequest. */
        interface IListDatabasesRequest {

            /** ListDatabasesRequest operationParams */
            operationParams?: (Ydb.Operations.IOperationParams|null);
        }

        /** Represents a ListDatabasesRequest. */
        class ListDatabasesRequest implements IListDatabasesRequest {

            /**
             * Constructs a new ListDatabasesRequest.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Cms.IListDatabasesRequest);

            /** ListDatabasesRequest operationParams. */
            public operationParams?: (Ydb.Operations.IOperationParams|null);

            /**
             * Creates a new ListDatabasesRequest instance using the specified properties.
             * @param [properties] Properties to set
             * @returns ListDatabasesRequest instance
             */
            public static create(properties?: Ydb.Cms.IListDatabasesRequest): Ydb.Cms.ListDatabasesRequest;

            /**
             * Encodes the specified ListDatabasesRequest message. Does not implicitly {@link Ydb.Cms.ListDatabasesRequest.verify|verify} messages.
             * @param message ListDatabasesRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Cms.IListDatabasesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

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

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

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

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

        /** Properties of a ListDatabasesResponse. */
        interface IListDatabasesResponse {

            /** ListDatabasesResponse operation */
            operation?: (Ydb.Operations.IOperation|null);
        }

        /** Represents a ListDatabasesResponse. */
        class ListDatabasesResponse implements IListDatabasesResponse {

            /**
             * Constructs a new ListDatabasesResponse.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Cms.IListDatabasesResponse);

            /** ListDatabasesResponse operation. */
            public operation?: (Ydb.Operations.IOperation|null);

            /**
             * Creates a new ListDatabasesResponse instance using the specified properties.
             * @param [properties] Properties to set
             * @returns ListDatabasesResponse instance
             */
            public static create(properties?: Ydb.Cms.IListDatabasesResponse): Ydb.Cms.ListDatabasesResponse;

            /**
             * Encodes the specified ListDatabasesResponse message. Does not implicitly {@link Ydb.Cms.ListDatabasesResponse.verify|verify} messages.
             * @param message ListDatabasesResponse message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Cms.IListDatabasesResponse, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

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

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

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

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

        /** Properties of a ListDatabasesResult. */
        interface IListDatabasesResult {

            /** ListDatabasesResult paths */
            paths?: (string[]|null);
        }

        /** Represents a ListDatabasesResult. */
        class ListDatabasesResult implements IListDatabasesResult {

            /**
             * Constructs a new ListDatabasesResult.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Cms.IListDatabasesResult);

            /** ListDatabasesResult paths. */
            public paths: string[];

            /**
             * Creates a new ListDatabasesResult instance using the specified properties.
             * @param [properties] Properties to set
             * @returns ListDatabasesResult instance
             */
            public static create(properties?: Ydb.Cms.IListDatabasesResult): Ydb.Cms.ListDatabasesResult;

            /**
             * Encodes the specified ListDatabasesResult message. Does not implicitly {@link Ydb.Cms.ListDatabasesResult.verify|verify} messages.
             * @param message ListDatabasesResult message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Cms.IListDatabasesResult, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

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

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

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

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

        /** Properties of a RemoveDatabaseRequest. */
        interface IRemoveDatabaseRequest {

            /** RemoveDatabaseRequest path */
            path?: (string|null);

            /** RemoveDatabaseRequest operationParams */
            operationParams?: (Ydb.Operations.IOperationParams|null);
        }

        /** Represents a RemoveDatabaseRequest. */
        class RemoveDatabaseRequest implements IRemoveDatabaseRequest {

            /**
             * Constructs a new RemoveDatabaseRequest.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Cms.IRemoveDatabaseRequest);

            /** RemoveDatabaseRequest path. */
            public path: string;

            /** RemoveDatabaseRequest operationParams. */
            public operationParams?: (Ydb.Operations.IOperationParams|null);

            /**
             * Creates a new RemoveDatabaseRequest instance using the specified properties.
             * @param [properties] Properties to set
             * @returns RemoveDatabaseRequest instance
             */
            public static create(properties?: Ydb.Cms.IRemoveDatabaseRequest): Ydb.Cms.RemoveDatabaseRequest;

            /**
             * Encodes the specified RemoveDatabaseRequest message. Does not implicitly {@link Ydb.Cms.RemoveDatabaseRequest.verify|verify} messages.
             * @param message RemoveDatabaseRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Cms.IRemoveDatabaseRequest, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

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

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

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

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

        /** Properties of a RemoveDatabaseResponse. */
        interface IRemoveDatabaseResponse {

            /** RemoveDatabaseResponse operation */
            operation?: (Ydb.Operations.IOperation|null);
        }

        /** Represents a RemoveDatabaseResponse. */
        class RemoveDatabaseResponse implements IRemoveDatabaseResponse {

            /**
             * Constructs a new RemoveDatabaseResponse.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Cms.IRemoveDatabaseResponse);

            /** RemoveDatabaseResponse operation. */
            public operation?: (Ydb.Operations.IOperation|null);

            /**
             * Creates a new RemoveDatabaseResponse instance using the specified properties.
             * @param [properties] Properties to set
             * @returns RemoveDatabaseResponse instance
             */
            public static create(properties?: Ydb.Cms.IRemoveDatabaseResponse): Ydb.Cms.RemoveDatabaseResponse;

            /**
             * Encodes the specified RemoveDatabaseResponse message. Does not implicitly {@link Ydb.Cms.RemoveDatabaseResponse.verify|verify} messages.
             * @param message RemoveDatabaseResponse message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Cms.IRemoveDatabaseResponse, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

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

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

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

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

        /** Properties of a StorageUnitDescription. */
        interface IStorageUnitDescription {

            /** StorageUnitDescription kind */
            kind?: (string|null);

            /** StorageUnitDescription labels */
            labels?: ({ [k: string]: string }|null);
        }

        /** Represents a StorageUnitDescription. */
        class StorageUnitDescription implements IStorageUnitDescription {

            /**
             * Constructs a new StorageUnitDescription.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Cms.IStorageUnitDescription);

            /** StorageUnitDescription kind. */
            public kind: string;

            /** StorageUnitDescription labels. */
            public labels: { [k: string]: string };

            /**
             * Creates a new StorageUnitDescription instance using the specified properties.
             * @param [properties] Properties to set
             * @returns StorageUnitDescription instance
             */
            public static create(properties?: Ydb.Cms.IStorageUnitDescription): Ydb.Cms.StorageUnitDescription;

            /**
             * Encodes the specified StorageUnitDescription message. Does not implicitly {@link Ydb.Cms.StorageUnitDescription.verify|verify} messages.
             * @param message StorageUnitDescription message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Cms.IStorageUnitDescription, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

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

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

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

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

        /** Properties of an AvailabilityZoneDescription. */
        interface IAvailabilityZoneDescription {

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

            /** AvailabilityZoneDescription labels */
            labels?: ({ [k: string]: string }|null);
        }

        /** Represents an AvailabilityZoneDescription. */
        class AvailabilityZoneDescription implements IAvailabilityZoneDescription {

            /**
             * Constructs a new AvailabilityZoneDescription.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Cms.IAvailabilityZoneDescription);

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

            /** AvailabilityZoneDescription labels. */
            public labels: { [k: string]: string };

            /**
             * Creates a new AvailabilityZoneDescription instance using the specified properties.
             * @param [properties] Properties to set
             * @returns AvailabilityZoneDescription instance
             */
            public static create(properties?: Ydb.Cms.IAvailabilityZoneDescription): Ydb.Cms.AvailabilityZoneDescription;

            /**
             * Encodes the specified AvailabilityZoneDescription message. Does not implicitly {@link Ydb.Cms.AvailabilityZoneDescription.verify|verify} messages.
             * @param message AvailabilityZoneDescription message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Cms.IAvailabilityZoneDescription, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

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

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

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

        /** Properties of a ComputationalUnitDescription. */
        interface IComputationalUnitDescription {

            /** ComputationalUnitDescription kind */
            kind?: (string|null);

            /** ComputationalUnitDescription labels */
            labels?: ({ [k: string]: string }|null);

            /** ComputationalUnitDescription allowedAvailabilityZones */
            allowedAvailabilityZones?: (string[]|null);
        }

        /** Represents a ComputationalUnitDescription. */
        class ComputationalUnitDescription implements IComputationalUnitDescription {

            /**
             * Constructs a new ComputationalUnitDescription.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Cms.IComputationalUnitDescription);

            /** ComputationalUnitDescription kind. */
            public kind: string;

            /** ComputationalUnitDescription labels. */
            public labels: { [k: string]: string };

            /** ComputationalUnitDescription allowedAvailabilityZones. */
            public allowedAvailabilityZones: string[];

            /**
             * Creates a new ComputationalUnitDescription instance using the specified properties.
             * @param [properties] Properties to set
             * @returns ComputationalUnitDescription instance
             */
            public static create(properties?: Ydb.Cms.IComputationalUnitDescription): Ydb.Cms.ComputationalUnitDescription;

            /**
             * Encodes the specified ComputationalUnitDescription message. Does not implicitly {@link Ydb.Cms.ComputationalUnitDescription.verify|verify} messages.
             * @param message ComputationalUnitDescription message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Cms.IComputationalUnitDescription, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

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

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

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

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

        /** Properties of a DescribeDatabaseOptionsRequest. */
        interface IDescribeDatabaseOptionsRequest {

            /** DescribeDatabaseOptionsRequest operationParams */
            operationParams?: (Ydb.Operations.IOperationParams|null);
        }

        /** Represents a DescribeDatabaseOptionsRequest. */
        class DescribeDatabaseOptionsRequest implements IDescribeDatabaseOptionsRequest {

            /**
             * Constructs a new DescribeDatabaseOptionsRequest.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Cms.IDescribeDatabaseOptionsRequest);

            /** DescribeDatabaseOptionsRequest operationParams. */
            public operationParams?: (Ydb.Operations.IOperationParams|null);

            /**
             * Creates a new DescribeDatabaseOptionsRequest instance using the specified properties.
             * @param [properties] Properties to set
             * @returns DescribeDatabaseOptionsRequest instance
             */
            public static create(properties?: Ydb.Cms.IDescribeDatabaseOptionsRequest): Ydb.Cms.DescribeDatabaseOptionsRequest;

            /**
             * Encodes the specified DescribeDatabaseOptionsRequest message. Does not implicitly {@link Ydb.Cms.DescribeDatabaseOptionsRequest.verify|verify} messages.
             * @param message DescribeDatabaseOptionsRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Cms.IDescribeDatabaseOptionsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

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

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

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

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

        /** Properties of a DescribeDatabaseOptionsResponse. */
        interface IDescribeDatabaseOptionsResponse {

            /** DescribeDatabaseOptionsResponse operation */
            operation?: (Ydb.Operations.IOperation|null);
        }

        /** Represents a DescribeDatabaseOptionsResponse. */
        class DescribeDatabaseOptionsResponse implements IDescribeDatabaseOptionsResponse {

            /**
             * Constructs a new DescribeDatabaseOptionsResponse.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Cms.IDescribeDatabaseOptionsResponse);

            /** DescribeDatabaseOptionsResponse operation. */
            public operation?: (Ydb.Operations.IOperation|null);

            /**
             * Creates a new DescribeDatabaseOptionsResponse instance using the specified properties.
             * @param [properties] Properties to set
             * @returns DescribeDatabaseOptionsResponse instance
             */
            public static create(properties?: Ydb.Cms.IDescribeDatabaseOptionsResponse): Ydb.Cms.DescribeDatabaseOptionsResponse;

            /**
             * Encodes the specified DescribeDatabaseOptionsResponse message. Does not implicitly {@link Ydb.Cms.DescribeDatabaseOptionsResponse.verify|verify} messages.
             * @param message DescribeDatabaseOptionsResponse message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Cms.IDescribeDatabaseOptionsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

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

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

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

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

        /** Properties of a DescribeDatabaseOptionsResult. */
        interface IDescribeDatabaseOptionsResult {

            /** DescribeDatabaseOptionsResult storageUnits */
            storageUnits?: (Ydb.Cms.IStorageUnitDescription[]|null);

            /** DescribeDatabaseOptionsResult availabilityZones */
            availabilityZones?: (Ydb.Cms.IAvailabilityZoneDescription[]|null);

            /** DescribeDatabaseOptionsResult computationalUnits */
            computationalUnits?: (Ydb.Cms.IComputationalUnitDescription[]|null);
        }

        /** Represents a DescribeDatabaseOptionsResult. */
        class DescribeDatabaseOptionsResult implements IDescribeDatabaseOptionsResult {

            /**
             * Constructs a new DescribeDatabaseOptionsResult.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Cms.IDescribeDatabaseOptionsResult);

            /** DescribeDatabaseOptionsResult storageUnits. */
            public storageUnits: Ydb.Cms.IStorageUnitDescription[];

            /** DescribeDatabaseOptionsResult availabilityZones. */
            public availabilityZones: Ydb.Cms.IAvailabilityZoneDescription[];

            /** DescribeDatabaseOptionsResult computationalUnits. */
            public computationalUnits: Ydb.Cms.IComputationalUnitDescription[];

            /**
             * Creates a new DescribeDatabaseOptionsResult instance using the specified properties.
             * @param [properties] Properties to set
             * @returns DescribeDatabaseOptionsResult instance
             */
            public static create(properties?: Ydb.Cms.IDescribeDatabaseOptionsResult): Ydb.Cms.DescribeDatabaseOptionsResult;

            /**
             * Encodes the specified DescribeDatabaseOptionsResult message. Does not implicitly {@link Ydb.Cms.DescribeDatabaseOptionsResult.verify|verify} messages.
             * @param message DescribeDatabaseOptionsResult message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Cms.IDescribeDatabaseOptionsResult, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

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

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

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

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

    /** Namespace Coordination. */
    namespace Coordination {

        /** Namespace V1. */
        namespace V1 {

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

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

                /**
                 * Bidirectional stream used to establish a session with a coordination node
                 *
                 * Relevant APIs for managing semaphores, distributed locking, creating or
                 * restoring a previously established session are described using nested
                 * messages in SessionRequest and SessionResponse. Session is established
                 * with a specific coordination node (previously created using CreateNode
                 * below) and semaphores are local to that coordination node.
                 * @param request SessionRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and SessionResponse
                 */
                public session(request: Ydb.Coordination.ISessionRequest, callback: Ydb.Coordination.V1.CoordinationService.SessionCallback): void;

                /**
                 * Bidirectional stream used to establish a session with a coordination node
                 *
                 * Relevant APIs for managing semaphores, distributed locking, creating or
                 * restoring a previously established session are described using nested
                 * messages in SessionRequest and SessionResponse. Session is established
                 * with a specific coordination node (previously created using CreateNode
                 * below) and semaphores are local to that coordination node.
                 * @param request SessionRequest message or plain object
                 * @returns Promise
                 */
                public session(request: Ydb.Coordination.ISessionRequest): Promise<Ydb.Coordination.SessionResponse>;

                /**
                 * Calls CreateNode.
                 * @param request CreateNodeRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and CreateNodeResponse
                 */
                public createNode(request: Ydb.Coordination.ICreateNodeRequest, callback: Ydb.Coordination.V1.CoordinationService.CreateNodeCallback): void;

                /**
                 * Calls CreateNode.
                 * @param request CreateNodeRequest message or plain object
                 * @returns Promise
                 */
                public createNode(request: Ydb.Coordination.ICreateNodeRequest): Promise<Ydb.Coordination.CreateNodeResponse>;

                /**
                 * Calls AlterNode.
                 * @param request AlterNodeRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and AlterNodeResponse
                 */
                public alterNode(request: Ydb.Coordination.IAlterNodeRequest, callback: Ydb.Coordination.V1.CoordinationService.AlterNodeCallback): void;

                /**
                 * Calls AlterNode.
                 * @param request AlterNodeRequest message or plain object
                 * @returns Promise
                 */
                public alterNode(request: Ydb.Coordination.IAlterNodeRequest): Promise<Ydb.Coordination.AlterNodeResponse>;

                /**
                 * Calls DropNode.
                 * @param request DropNodeRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and DropNodeResponse
                 */
                public dropNode(request: Ydb.Coordination.IDropNodeRequest, callback: Ydb.Coordination.V1.CoordinationService.DropNodeCallback): void;

                /**
                 * Calls DropNode.
                 * @param request DropNodeRequest message or plain object
                 * @returns Promise
                 */
                public dropNode(request: Ydb.Coordination.IDropNodeRequest): Promise<Ydb.Coordination.DropNodeResponse>;

                /**
                 * Calls DescribeNode.
                 * @param request DescribeNodeRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and DescribeNodeResponse
                 */
                public describeNode(request: Ydb.Coordination.IDescribeNodeRequest, callback: Ydb.Coordination.V1.CoordinationService.DescribeNodeCallback): void;

                /**
                 * Calls DescribeNode.
                 * @param request DescribeNodeRequest message or plain object
                 * @returns Promise
                 */
                public describeNode(request: Ydb.Coordination.IDescribeNodeRequest): Promise<Ydb.Coordination.DescribeNodeResponse>;
            }

            namespace CoordinationService {

                /**
                 * Callback as used by {@link Ydb.Coordination.V1.CoordinationService#session}.
                 * @param error Error, if any
                 * @param [response] SessionResponse
                 */
                type SessionCallback = (error: (Error|null), response?: Ydb.Coordination.SessionResponse) => void;

                /**
                 * Callback as used by {@link Ydb.Coordination.V1.CoordinationService#createNode}.
                 * @param error Error, if any
                 * @param [response] CreateNodeResponse
                 */
                type CreateNodeCallback = (error: (Error|null), response?: Ydb.Coordination.CreateNodeResponse) => void;

                /**
                 * Callback as used by {@link Ydb.Coordination.V1.CoordinationService#alterNode}.
                 * @param error Error, if any
                 * @param [response] AlterNodeResponse
                 */
                type AlterNodeCallback = (error: (Error|null), response?: Ydb.Coordination.AlterNodeResponse) => void;

                /**
                 * Callback as used by {@link Ydb.Coordination.V1.CoordinationService#dropNode}.
                 * @param error Error, if any
                 * @param [response] DropNodeResponse
                 */
                type DropNodeCallback = (error: (Error|null), response?: Ydb.Coordination.DropNodeResponse) => void;

                /**
                 * Callback as used by {@link Ydb.Coordination.V1.CoordinationService#describeNode}.
                 * @param error Error, if any
                 * @param [response] DescribeNodeResponse
                 */
                type DescribeNodeCallback = (error: (Error|null), response?: Ydb.Coordination.DescribeNodeResponse) => void;
            }
        }

        /** Properties of an Unsupported. */
        interface IUnsupported {
        }

        /** Stub for unsupported messages */
        class Unsupported implements IUnsupported {

            /**
             * Constructs a new Unsupported.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Coordination.IUnsupported);

            /**
             * Creates a new Unsupported instance using the specified properties.
             * @param [properties] Properties to set
             * @returns Unsupported instance
             */
            public static create(properties?: Ydb.Coordination.IUnsupported): Ydb.Coordination.Unsupported;

            /**
             * Encodes the specified Unsupported message. Does not implicitly {@link Ydb.Coordination.Unsupported.verify|verify} messages.
             * @param message Unsupported message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Coordination.IUnsupported, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

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

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

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

        /** Consistency mode */
        enum ConsistencyMode {
            CONSISTENCY_MODE_UNSET = 0,
            CONSISTENCY_MODE_STRICT = 1,
            CONSISTENCY_MODE_RELAXED = 2
        }

        /** Counters mode */
        enum RateLimiterCountersMode {
            RATE_LIMITER_COUNTERS_MODE_UNSET = 0,
            RATE_LIMITER_COUNTERS_MODE_AGGREGATED = 1,
            RATE_LIMITER_COUNTERS_MODE_DETAILED = 2
        }

        /** Properties of a Config. */
        interface IConfig {

            /** Config path */
            path?: (string|null);

            /** Config selfCheckPeriodMillis */
            selfCheckPeriodMillis?: (number|null);

            /** Config sessionGracePeriodMillis */
            sessionGracePeriodMillis?: (number|null);

            /** Config readConsistencyMode */
            readConsistencyMode?: (Ydb.Coordination.ConsistencyMode|null);

            /** Config attachConsistencyMode */
            attachConsistencyMode?: (Ydb.Coordination.ConsistencyMode|null);

            /** Config rateLimiterCountersMode */
            rateLimiterCountersMode?: (Ydb.Coordination.RateLimiterCountersMode|null);
        }

        /** Configuration settings for a coordination node */
        class Config implements IConfig {

            /**
             * Constructs a new Config.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Coordination.IConfig);

            /** Config path. */
            public path: string;

            /** Config selfCheckPeriodMillis. */
            public selfCheckPeriodMillis: number;

            /** Config sessionGracePeriodMillis. */
            public sessionGracePeriodMillis: number;

            /** Config readConsistencyMode. */
            public readConsistencyMode: Ydb.Coordination.ConsistencyMode;

            /** Config attachConsistencyMode. */
            public attachConsistencyMode: Ydb.Coordination.ConsistencyMode;

            /** Config rateLimiterCountersMode. */
            public rateLimiterCountersMode: Ydb.Coordination.RateLimiterCountersMode;

            /**
             * Creates a new Config instance using the specified properties.
             * @param [properties] Properties to set
             * @returns Config instance
             */
            public static create(properties?: Ydb.Coordination.IConfig): Ydb.Coordination.Config;

            /**
             * Encodes the specified Config message. Does not implicitly {@link Ydb.Coordination.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: Ydb.Coordination.IConfig, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified Config message, length delimited. Does not implicitly {@link Ydb.Coordination.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: Ydb.Coordination.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): Ydb.Coordination.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)): Ydb.Coordination.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 }): Ydb.Coordination.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: Ydb.Coordination.Config, options?: $protobuf.IConversionOptions): { [k: string]: any };

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

        /** Properties of a SessionDescription. */
        interface ISessionDescription {

            /** SessionDescription sessionId */
            sessionId?: (number|Long|null);

            /** SessionDescription timeoutMillis */
            timeoutMillis?: (number|Long|null);

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

            /** SessionDescription attached */
            attached?: (boolean|null);
        }

        /** Describes an active client session */
        class SessionDescription implements ISessionDescription {

            /**
             * Constructs a new SessionDescription.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Coordination.ISessionDescription);

            /** SessionDescription sessionId. */
            public sessionId: (number|Long);

            /** SessionDescription timeoutMillis. */
            public timeoutMillis: (number|Long);

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

            /** SessionDescription attached. */
            public attached: boolean;

            /**
             * Creates a new SessionDescription instance using the specified properties.
             * @param [properties] Properties to set
             * @returns SessionDescription instance
             */
            public static create(properties?: Ydb.Coordination.ISessionDescription): Ydb.Coordination.SessionDescription;

            /**
             * Encodes the specified SessionDescription message. Does not implicitly {@link Ydb.Coordination.SessionDescription.verify|verify} messages.
             * @param message SessionDescription message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Coordination.ISessionDescription, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

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

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

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

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

        /** Properties of a SemaphoreSession. */
        interface ISemaphoreSession {

            /** SemaphoreSession orderId */
            orderId?: (number|Long|null);

            /** SemaphoreSession sessionId */
            sessionId?: (number|Long|null);

            /** SemaphoreSession timeoutMillis */
            timeoutMillis?: (number|Long|null);

            /** SemaphoreSession count */
            count?: (number|Long|null);

            /** SemaphoreSession data */
            data?: (Uint8Array|null);
        }

        /** Describes an owner or a waiter of this semaphore */
        class SemaphoreSession implements ISemaphoreSession {

            /**
             * Constructs a new SemaphoreSession.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Coordination.ISemaphoreSession);

            /** SemaphoreSession orderId. */
            public orderId: (number|Long);

            /** SemaphoreSession sessionId. */
            public sessionId: (number|Long);

            /** SemaphoreSession timeoutMillis. */
            public timeoutMillis: (number|Long);

            /** SemaphoreSession count. */
            public count: (number|Long);

            /** SemaphoreSession data. */
            public data: Uint8Array;

            /**
             * Creates a new SemaphoreSession instance using the specified properties.
             * @param [properties] Properties to set
             * @returns SemaphoreSession instance
             */
            public static create(properties?: Ydb.Coordination.ISemaphoreSession): Ydb.Coordination.SemaphoreSession;

            /**
             * Encodes the specified SemaphoreSession message. Does not implicitly {@link Ydb.Coordination.SemaphoreSession.verify|verify} messages.
             * @param message SemaphoreSession message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Coordination.ISemaphoreSession, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

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

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

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

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

        /** Properties of a SemaphoreDescription. */
        interface ISemaphoreDescription {

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

            /** SemaphoreDescription data */
            data?: (Uint8Array|null);

            /** SemaphoreDescription count */
            count?: (number|Long|null);

            /** SemaphoreDescription limit */
            limit?: (number|Long|null);

            /** SemaphoreDescription ephemeral */
            ephemeral?: (boolean|null);

            /** SemaphoreDescription owners */
            owners?: (Ydb.Coordination.ISemaphoreSession[]|null);

            /** SemaphoreDescription waiters */
            waiters?: (Ydb.Coordination.ISemaphoreSession[]|null);
        }

        /** Describes the state of a semaphore */
        class SemaphoreDescription implements ISemaphoreDescription {

            /**
             * Constructs a new SemaphoreDescription.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Coordination.ISemaphoreDescription);

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

            /** SemaphoreDescription data. */
            public data: Uint8Array;

            /** SemaphoreDescription count. */
            public count: (number|Long);

            /** SemaphoreDescription limit. */
            public limit: (number|Long);

            /** SemaphoreDescription ephemeral. */
            public ephemeral: boolean;

            /** SemaphoreDescription owners. */
            public owners: Ydb.Coordination.ISemaphoreSession[];

            /** SemaphoreDescription waiters. */
            public waiters: Ydb.Coordination.ISemaphoreSession[];

            /**
             * Creates a new SemaphoreDescription instance using the specified properties.
             * @param [properties] Properties to set
             * @returns SemaphoreDescription instance
             */
            public static create(properties?: Ydb.Coordination.ISemaphoreDescription): Ydb.Coordination.SemaphoreDescription;

            /**
             * Encodes the specified SemaphoreDescription message. Does not implicitly {@link Ydb.Coordination.SemaphoreDescription.verify|verify} messages.
             * @param message SemaphoreDescription message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Coordination.ISemaphoreDescription, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

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

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

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

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

        /** Properties of a SessionRequest. */
        interface ISessionRequest {

            /** SessionRequest ping */
            ping?: (Ydb.Coordination.SessionRequest.IPingPong|null);

            /** SessionRequest pong */
            pong?: (Ydb.Coordination.SessionRequest.IPingPong|null);

            /** SessionRequest sessionStart */
            sessionStart?: (Ydb.Coordination.SessionRequest.ISessionStart|null);

            /** SessionRequest sessionStop */
            sessionStop?: (Ydb.Coordination.SessionRequest.ISessionStop|null);

            /** SessionRequest unsupported_5 */
            unsupported_5?: (Ydb.Coordination.IUnsupported|null);

            /** SessionRequest unsupported_6 */
            unsupported_6?: (Ydb.Coordination.IUnsupported|null);

            /** SessionRequest acquireSemaphore */
            acquireSemaphore?: (Ydb.Coordination.SessionRequest.IAcquireSemaphore|null);

            /** SessionRequest releaseSemaphore */
            releaseSemaphore?: (Ydb.Coordination.SessionRequest.IReleaseSemaphore|null);

            /** SessionRequest describeSemaphore */
            describeSemaphore?: (Ydb.Coordination.SessionRequest.IDescribeSemaphore|null);

            /** SessionRequest createSemaphore */
            createSemaphore?: (Ydb.Coordination.SessionRequest.ICreateSemaphore|null);

            /** SessionRequest updateSemaphore */
            updateSemaphore?: (Ydb.Coordination.SessionRequest.IUpdateSemaphore|null);

            /** SessionRequest deleteSemaphore */
            deleteSemaphore?: (Ydb.Coordination.SessionRequest.IDeleteSemaphore|null);

            /** SessionRequest unsupported_13 */
            unsupported_13?: (Ydb.Coordination.IUnsupported|null);

            /** SessionRequest unsupported_14 */
            unsupported_14?: (Ydb.Coordination.IUnsupported|null);

            /** SessionRequest unsupported_15 */
            unsupported_15?: (Ydb.Coordination.IUnsupported|null);
        }

        /** Session request message sent from client to server */
        class SessionRequest implements ISessionRequest {

            /**
             * Constructs a new SessionRequest.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Coordination.ISessionRequest);

            /** SessionRequest ping. */
            public ping?: (Ydb.Coordination.SessionRequest.IPingPong|null);

            /** SessionRequest pong. */
            public pong?: (Ydb.Coordination.SessionRequest.IPingPong|null);

            /** SessionRequest sessionStart. */
            public sessionStart?: (Ydb.Coordination.SessionRequest.ISessionStart|null);

            /** SessionRequest sessionStop. */
            public sessionStop?: (Ydb.Coordination.SessionRequest.ISessionStop|null);

            /** SessionRequest unsupported_5. */
            public unsupported_5?: (Ydb.Coordination.IUnsupported|null);

            /** SessionRequest unsupported_6. */
            public unsupported_6?: (Ydb.Coordination.IUnsupported|null);

            /** SessionRequest acquireSemaphore. */
            public acquireSemaphore?: (Ydb.Coordination.SessionRequest.IAcquireSemaphore|null);

            /** SessionRequest releaseSemaphore. */
            public releaseSemaphore?: (Ydb.Coordination.SessionRequest.IReleaseSemaphore|null);

            /** SessionRequest describeSemaphore. */
            public describeSemaphore?: (Ydb.Coordination.SessionRequest.IDescribeSemaphore|null);

            /** SessionRequest createSemaphore. */
            public createSemaphore?: (Ydb.Coordination.SessionRequest.ICreateSemaphore|null);

            /** SessionRequest updateSemaphore. */
            public updateSemaphore?: (Ydb.Coordination.SessionRequest.IUpdateSemaphore|null);

            /** SessionRequest deleteSemaphore. */
            public deleteSemaphore?: (Ydb.Coordination.SessionRequest.IDeleteSemaphore|null);

            /** SessionRequest unsupported_13. */
            public unsupported_13?: (Ydb.Coordination.IUnsupported|null);

            /** SessionRequest unsupported_14. */
            public unsupported_14?: (Ydb.Coordination.IUnsupported|null);

            /** SessionRequest unsupported_15. */
            public unsupported_15?: (Ydb.Coordination.IUnsupported|null);

            /** SessionRequest request. */
            public request?: ("ping"|"pong"|"sessionStart"|"sessionStop"|"unsupported_5"|"unsupported_6"|"acquireSemaphore"|"releaseSemaphore"|"describeSemaphore"|"createSemaphore"|"updateSemaphore"|"deleteSemaphore"|"unsupported_13"|"unsupported_14"|"unsupported_15");

            /**
             * Creates a new SessionRequest instance using the specified properties.
             * @param [properties] Properties to set
             * @returns SessionRequest instance
             */
            public static create(properties?: Ydb.Coordination.ISessionRequest): Ydb.Coordination.SessionRequest;

            /**
             * Encodes the specified SessionRequest message. Does not implicitly {@link Ydb.Coordination.SessionRequest.verify|verify} messages.
             * @param message SessionRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Coordination.ISessionRequest, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

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

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

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

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

        namespace SessionRequest {

            /** Properties of a PingPong. */
            interface IPingPong {

                /** PingPong opaque */
                opaque?: (number|Long|null);
            }

            /** Used for checking liveness of the connection */
            class PingPong implements IPingPong {

                /**
                 * Constructs a new PingPong.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: Ydb.Coordination.SessionRequest.IPingPong);

                /** PingPong opaque. */
                public opaque: (number|Long);

                /**
                 * Creates a new PingPong instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns PingPong instance
                 */
                public static create(properties?: Ydb.Coordination.SessionRequest.IPingPong): Ydb.Coordination.SessionRequest.PingPong;

                /**
                 * Encodes the specified PingPong message. Does not implicitly {@link Ydb.Coordination.SessionRequest.PingPong.verify|verify} messages.
                 * @param message PingPong message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: Ydb.Coordination.SessionRequest.IPingPong, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified PingPong message, length delimited. Does not implicitly {@link Ydb.Coordination.SessionRequest.PingPong.verify|verify} messages.
                 * @param message PingPong message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: Ydb.Coordination.SessionRequest.IPingPong, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

                /**
                 * Creates a PingPong message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns PingPong
                 */
                public static fromObject(object: { [k: string]: any }): Ydb.Coordination.SessionRequest.PingPong;

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

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

            /** Properties of a SessionStart. */
            interface ISessionStart {

                /** SessionStart path */
                path?: (string|null);

                /** SessionStart sessionId */
                sessionId?: (number|Long|null);

                /** SessionStart timeoutMillis */
                timeoutMillis?: (number|Long|null);

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

                /** SessionStart seqNo */
                seqNo?: (number|Long|null);

                /** SessionStart protectionKey */
                protectionKey?: (Uint8Array|null);
            }

            /** First message used to start/restore a session */
            class SessionStart implements ISessionStart {

                /**
                 * Constructs a new SessionStart.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: Ydb.Coordination.SessionRequest.ISessionStart);

                /** SessionStart path. */
                public path: string;

                /** SessionStart sessionId. */
                public sessionId: (number|Long);

                /** SessionStart timeoutMillis. */
                public timeoutMillis: (number|Long);

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

                /** SessionStart seqNo. */
                public seqNo: (number|Long);

                /** SessionStart protectionKey. */
                public protectionKey: Uint8Array;

                /**
                 * Creates a new SessionStart instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns SessionStart instance
                 */
                public static create(properties?: Ydb.Coordination.SessionRequest.ISessionStart): Ydb.Coordination.SessionRequest.SessionStart;

                /**
                 * Encodes the specified SessionStart message. Does not implicitly {@link Ydb.Coordination.SessionRequest.SessionStart.verify|verify} messages.
                 * @param message SessionStart message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: Ydb.Coordination.SessionRequest.ISessionStart, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified SessionStart message, length delimited. Does not implicitly {@link Ydb.Coordination.SessionRequest.SessionStart.verify|verify} messages.
                 * @param message SessionStart message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: Ydb.Coordination.SessionRequest.ISessionStart, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

                /**
                 * Creates a SessionStart message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns SessionStart
                 */
                public static fromObject(object: { [k: string]: any }): Ydb.Coordination.SessionRequest.SessionStart;

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

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

            /** Properties of a SessionStop. */
            interface ISessionStop {
            }

            /** Last message used to cleanly stop session before its timeout expires */
            class SessionStop implements ISessionStop {

                /**
                 * Constructs a new SessionStop.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: Ydb.Coordination.SessionRequest.ISessionStop);

                /**
                 * Creates a new SessionStop instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns SessionStop instance
                 */
                public static create(properties?: Ydb.Coordination.SessionRequest.ISessionStop): Ydb.Coordination.SessionRequest.SessionStop;

                /**
                 * Encodes the specified SessionStop message. Does not implicitly {@link Ydb.Coordination.SessionRequest.SessionStop.verify|verify} messages.
                 * @param message SessionStop message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: Ydb.Coordination.SessionRequest.ISessionStop, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified SessionStop message, length delimited. Does not implicitly {@link Ydb.Coordination.SessionRequest.SessionStop.verify|verify} messages.
                 * @param message SessionStop message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: Ydb.Coordination.SessionRequest.ISessionStop, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

                /**
                 * Creates a SessionStop message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns SessionStop
                 */
                public static fromObject(object: { [k: string]: any }): Ydb.Coordination.SessionRequest.SessionStop;

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

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

            /** Properties of an AcquireSemaphore. */
            interface IAcquireSemaphore {

                /** AcquireSemaphore reqId */
                reqId?: (number|Long|null);

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

                /** AcquireSemaphore timeoutMillis */
                timeoutMillis?: (number|Long|null);

                /** AcquireSemaphore count */
                count?: (number|Long|null);

                /** AcquireSemaphore data */
                data?: (Uint8Array|null);

                /** AcquireSemaphore ephemeral */
                ephemeral?: (boolean|null);
            }

            /**
             * Used to acquire a semaphore
             *
             * WARNING: a single session cannot acquire the same semaphore multiple times
             *
             * Later requests override previous operations with the same semaphore,
             * e.g. to reduce acquired count, change timeout or attached data.
             */
            class AcquireSemaphore implements IAcquireSemaphore {

                /**
                 * Constructs a new AcquireSemaphore.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: Ydb.Coordination.SessionRequest.IAcquireSemaphore);

                /** AcquireSemaphore reqId. */
                public reqId: (number|Long);

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

                /** AcquireSemaphore timeoutMillis. */
                public timeoutMillis: (number|Long);

                /** AcquireSemaphore count. */
                public count: (number|Long);

                /** AcquireSemaphore data. */
                public data: Uint8Array;

                /** AcquireSemaphore ephemeral. */
                public ephemeral: boolean;

                /**
                 * Creates a new AcquireSemaphore instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns AcquireSemaphore instance
                 */
                public static create(properties?: Ydb.Coordination.SessionRequest.IAcquireSemaphore): Ydb.Coordination.SessionRequest.AcquireSemaphore;

                /**
                 * Encodes the specified AcquireSemaphore message. Does not implicitly {@link Ydb.Coordination.SessionRequest.AcquireSemaphore.verify|verify} messages.
                 * @param message AcquireSemaphore message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: Ydb.Coordination.SessionRequest.IAcquireSemaphore, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified AcquireSemaphore message, length delimited. Does not implicitly {@link Ydb.Coordination.SessionRequest.AcquireSemaphore.verify|verify} messages.
                 * @param message AcquireSemaphore message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: Ydb.Coordination.SessionRequest.IAcquireSemaphore, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

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

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

            /** Properties of a ReleaseSemaphore. */
            interface IReleaseSemaphore {

                /** ReleaseSemaphore reqId */
                reqId?: (number|Long|null);

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

            /**
             * Used to release a semaphore
             *
             * WARNING: a single session cannot release the same semaphore multiple times
             *
             * The release operation will either remove current session from waiters
             * queue or release an already owned semaphore.
             */
            class ReleaseSemaphore implements IReleaseSemaphore {

                /**
                 * Constructs a new ReleaseSemaphore.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: Ydb.Coordination.SessionRequest.IReleaseSemaphore);

                /** ReleaseSemaphore reqId. */
                public reqId: (number|Long);

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

                /**
                 * Creates a new ReleaseSemaphore instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns ReleaseSemaphore instance
                 */
                public static create(properties?: Ydb.Coordination.SessionRequest.IReleaseSemaphore): Ydb.Coordination.SessionRequest.ReleaseSemaphore;

                /**
                 * Encodes the specified ReleaseSemaphore message. Does not implicitly {@link Ydb.Coordination.SessionRequest.ReleaseSemaphore.verify|verify} messages.
                 * @param message ReleaseSemaphore message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: Ydb.Coordination.SessionRequest.IReleaseSemaphore, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified ReleaseSemaphore message, length delimited. Does not implicitly {@link Ydb.Coordination.SessionRequest.ReleaseSemaphore.verify|verify} messages.
                 * @param message ReleaseSemaphore message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: Ydb.Coordination.SessionRequest.IReleaseSemaphore, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

                /**
                 * Creates a ReleaseSemaphore message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns ReleaseSemaphore
                 */
                public static fromObject(object: { [k: string]: any }): Ydb.Coordination.SessionRequest.ReleaseSemaphore;

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

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

            /** Properties of a DescribeSemaphore. */
            interface IDescribeSemaphore {

                /** DescribeSemaphore reqId */
                reqId?: (number|Long|null);

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

                /** DescribeSemaphore includeOwners */
                includeOwners?: (boolean|null);

                /** DescribeSemaphore includeWaiters */
                includeWaiters?: (boolean|null);

                /** DescribeSemaphore watchData */
                watchData?: (boolean|null);

                /** DescribeSemaphore watchOwners */
                watchOwners?: (boolean|null);
            }

            /**
             * Used to describe semaphores and watch them for changes
             *
             * WARNING: a describe operation will cancel previous watches on the same semaphore
             */
            class DescribeSemaphore implements IDescribeSemaphore {

                /**
                 * Constructs a new DescribeSemaphore.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: Ydb.Coordination.SessionRequest.IDescribeSemaphore);

                /** DescribeSemaphore reqId. */
                public reqId: (number|Long);

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

                /** DescribeSemaphore includeOwners. */
                public includeOwners: boolean;

                /** DescribeSemaphore includeWaiters. */
                public includeWaiters: boolean;

                /** DescribeSemaphore watchData. */
                public watchData: boolean;

                /** DescribeSemaphore watchOwners. */
                public watchOwners: boolean;

                /**
                 * Creates a new DescribeSemaphore instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns DescribeSemaphore instance
                 */
                public static create(properties?: Ydb.Coordination.SessionRequest.IDescribeSemaphore): Ydb.Coordination.SessionRequest.DescribeSemaphore;

                /**
                 * Encodes the specified DescribeSemaphore message. Does not implicitly {@link Ydb.Coordination.SessionRequest.DescribeSemaphore.verify|verify} messages.
                 * @param message DescribeSemaphore message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: Ydb.Coordination.SessionRequest.IDescribeSemaphore, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified DescribeSemaphore message, length delimited. Does not implicitly {@link Ydb.Coordination.SessionRequest.DescribeSemaphore.verify|verify} messages.
                 * @param message DescribeSemaphore message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: Ydb.Coordination.SessionRequest.IDescribeSemaphore, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

                /**
                 * Creates a DescribeSemaphore message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns DescribeSemaphore
                 */
                public static fromObject(object: { [k: string]: any }): Ydb.Coordination.SessionRequest.DescribeSemaphore;

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

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

            /** Properties of a CreateSemaphore. */
            interface ICreateSemaphore {

                /** CreateSemaphore reqId */
                reqId?: (number|Long|null);

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

                /** CreateSemaphore limit */
                limit?: (number|Long|null);

                /** CreateSemaphore data */
                data?: (Uint8Array|null);
            }

            /** Used to create a new semaphore */
            class CreateSemaphore implements ICreateSemaphore {

                /**
                 * Constructs a new CreateSemaphore.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: Ydb.Coordination.SessionRequest.ICreateSemaphore);

                /** CreateSemaphore reqId. */
                public reqId: (number|Long);

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

                /** CreateSemaphore limit. */
                public limit: (number|Long);

                /** CreateSemaphore data. */
                public data: Uint8Array;

                /**
                 * Creates a new CreateSemaphore instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns CreateSemaphore instance
                 */
                public static create(properties?: Ydb.Coordination.SessionRequest.ICreateSemaphore): Ydb.Coordination.SessionRequest.CreateSemaphore;

                /**
                 * Encodes the specified CreateSemaphore message. Does not implicitly {@link Ydb.Coordination.SessionRequest.CreateSemaphore.verify|verify} messages.
                 * @param message CreateSemaphore message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: Ydb.Coordination.SessionRequest.ICreateSemaphore, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified CreateSemaphore message, length delimited. Does not implicitly {@link Ydb.Coordination.SessionRequest.CreateSemaphore.verify|verify} messages.
                 * @param message CreateSemaphore message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: Ydb.Coordination.SessionRequest.ICreateSemaphore, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

                /**
                 * Creates a CreateSemaphore message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns CreateSemaphore
                 */
                public static fromObject(object: { [k: string]: any }): Ydb.Coordination.SessionRequest.CreateSemaphore;

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

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

            /** Properties of an UpdateSemaphore. */
            interface IUpdateSemaphore {

                /** UpdateSemaphore reqId */
                reqId?: (number|Long|null);

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

                /** UpdateSemaphore data */
                data?: (Uint8Array|null);
            }

            /** Used to change semaphore data */
            class UpdateSemaphore implements IUpdateSemaphore {

                /**
                 * Constructs a new UpdateSemaphore.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: Ydb.Coordination.SessionRequest.IUpdateSemaphore);

                /** UpdateSemaphore reqId. */
                public reqId: (number|Long);

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

                /** UpdateSemaphore data. */
                public data: Uint8Array;

                /**
                 * Creates a new UpdateSemaphore instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns UpdateSemaphore instance
                 */
                public static create(properties?: Ydb.Coordination.SessionRequest.IUpdateSemaphore): Ydb.Coordination.SessionRequest.UpdateSemaphore;

                /**
                 * Encodes the specified UpdateSemaphore message. Does not implicitly {@link Ydb.Coordination.SessionRequest.UpdateSemaphore.verify|verify} messages.
                 * @param message UpdateSemaphore message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: Ydb.Coordination.SessionRequest.IUpdateSemaphore, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified UpdateSemaphore message, length delimited. Does not implicitly {@link Ydb.Coordination.SessionRequest.UpdateSemaphore.verify|verify} messages.
                 * @param message UpdateSemaphore message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: Ydb.Coordination.SessionRequest.IUpdateSemaphore, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

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

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

            /** Properties of a DeleteSemaphore. */
            interface IDeleteSemaphore {

                /** DeleteSemaphore reqId */
                reqId?: (number|Long|null);

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

                /** DeleteSemaphore force */
                force?: (boolean|null);
            }

            /** Used to delete an existing semaphore */
            class DeleteSemaphore implements IDeleteSemaphore {

                /**
                 * Constructs a new DeleteSemaphore.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: Ydb.Coordination.SessionRequest.IDeleteSemaphore);

                /** DeleteSemaphore reqId. */
                public reqId: (number|Long);

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

                /** DeleteSemaphore force. */
                public force: boolean;

                /**
                 * Creates a new DeleteSemaphore instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns DeleteSemaphore instance
                 */
                public static create(properties?: Ydb.Coordination.SessionRequest.IDeleteSemaphore): Ydb.Coordination.SessionRequest.DeleteSemaphore;

                /**
                 * Encodes the specified DeleteSemaphore message. Does not implicitly {@link Ydb.Coordination.SessionRequest.DeleteSemaphore.verify|verify} messages.
                 * @param message DeleteSemaphore message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: Ydb.Coordination.SessionRequest.IDeleteSemaphore, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified DeleteSemaphore message, length delimited. Does not implicitly {@link Ydb.Coordination.SessionRequest.DeleteSemaphore.verify|verify} messages.
                 * @param message DeleteSemaphore message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: Ydb.Coordination.SessionRequest.IDeleteSemaphore, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

                /**
                 * Creates a DeleteSemaphore message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns DeleteSemaphore
                 */
                public static fromObject(object: { [k: string]: any }): Ydb.Coordination.SessionRequest.DeleteSemaphore;

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

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

        /** Properties of a SessionResponse. */
        interface ISessionResponse {

            /** SessionResponse ping */
            ping?: (Ydb.Coordination.SessionResponse.IPingPong|null);

            /** SessionResponse pong */
            pong?: (Ydb.Coordination.SessionResponse.IPingPong|null);

            /** SessionResponse failure */
            failure?: (Ydb.Coordination.SessionResponse.IFailure|null);

            /** SessionResponse sessionStarted */
            sessionStarted?: (Ydb.Coordination.SessionResponse.ISessionStarted|null);

            /** SessionResponse sessionStopped */
            sessionStopped?: (Ydb.Coordination.SessionResponse.ISessionStopped|null);

            /** SessionResponse unsupported_6 */
            unsupported_6?: (Ydb.Coordination.IUnsupported|null);

            /** SessionResponse unsupported_7 */
            unsupported_7?: (Ydb.Coordination.IUnsupported|null);

            /** SessionResponse acquireSemaphorePending */
            acquireSemaphorePending?: (Ydb.Coordination.SessionResponse.IAcquireSemaphorePending|null);

            /** SessionResponse acquireSemaphoreResult */
            acquireSemaphoreResult?: (Ydb.Coordination.SessionResponse.IAcquireSemaphoreResult|null);

            /** SessionResponse releaseSemaphoreResult */
            releaseSemaphoreResult?: (Ydb.Coordination.SessionResponse.IReleaseSemaphoreResult|null);

            /** SessionResponse describeSemaphoreResult */
            describeSemaphoreResult?: (Ydb.Coordination.SessionResponse.IDescribeSemaphoreResult|null);

            /** SessionResponse describeSemaphoreChanged */
            describeSemaphoreChanged?: (Ydb.Coordination.SessionResponse.IDescribeSemaphoreChanged|null);

            /** SessionResponse createSemaphoreResult */
            createSemaphoreResult?: (Ydb.Coordination.SessionResponse.ICreateSemaphoreResult|null);

            /** SessionResponse updateSemaphoreResult */
            updateSemaphoreResult?: (Ydb.Coordination.SessionResponse.IUpdateSemaphoreResult|null);

            /** SessionResponse deleteSemaphoreResult */
            deleteSemaphoreResult?: (Ydb.Coordination.SessionResponse.IDeleteSemaphoreResult|null);

            /** SessionResponse unsupported_16 */
            unsupported_16?: (Ydb.Coordination.IUnsupported|null);

            /** SessionResponse unsupported_17 */
            unsupported_17?: (Ydb.Coordination.IUnsupported|null);

            /** SessionResponse unsupported_18 */
            unsupported_18?: (Ydb.Coordination.IUnsupported|null);
        }

        /** Session response message sent from server to client */
        class SessionResponse implements ISessionResponse {

            /**
             * Constructs a new SessionResponse.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Coordination.ISessionResponse);

            /** SessionResponse ping. */
            public ping?: (Ydb.Coordination.SessionResponse.IPingPong|null);

            /** SessionResponse pong. */
            public pong?: (Ydb.Coordination.SessionResponse.IPingPong|null);

            /** SessionResponse failure. */
            public failure?: (Ydb.Coordination.SessionResponse.IFailure|null);

            /** SessionResponse sessionStarted. */
            public sessionStarted?: (Ydb.Coordination.SessionResponse.ISessionStarted|null);

            /** SessionResponse sessionStopped. */
            public sessionStopped?: (Ydb.Coordination.SessionResponse.ISessionStopped|null);

            /** SessionResponse unsupported_6. */
            public unsupported_6?: (Ydb.Coordination.IUnsupported|null);

            /** SessionResponse unsupported_7. */
            public unsupported_7?: (Ydb.Coordination.IUnsupported|null);

            /** SessionResponse acquireSemaphorePending. */
            public acquireSemaphorePending?: (Ydb.Coordination.SessionResponse.IAcquireSemaphorePending|null);

            /** SessionResponse acquireSemaphoreResult. */
            public acquireSemaphoreResult?: (Ydb.Coordination.SessionResponse.IAcquireSemaphoreResult|null);

            /** SessionResponse releaseSemaphoreResult. */
            public releaseSemaphoreResult?: (Ydb.Coordination.SessionResponse.IReleaseSemaphoreResult|null);

            /** SessionResponse describeSemaphoreResult. */
            public describeSemaphoreResult?: (Ydb.Coordination.SessionResponse.IDescribeSemaphoreResult|null);

            /** SessionResponse describeSemaphoreChanged. */
            public describeSemaphoreChanged?: (Ydb.Coordination.SessionResponse.IDescribeSemaphoreChanged|null);

            /** SessionResponse createSemaphoreResult. */
            public createSemaphoreResult?: (Ydb.Coordination.SessionResponse.ICreateSemaphoreResult|null);

            /** SessionResponse updateSemaphoreResult. */
            public updateSemaphoreResult?: (Ydb.Coordination.SessionResponse.IUpdateSemaphoreResult|null);

            /** SessionResponse deleteSemaphoreResult. */
            public deleteSemaphoreResult?: (Ydb.Coordination.SessionResponse.IDeleteSemaphoreResult|null);

            /** SessionResponse unsupported_16. */
            public unsupported_16?: (Ydb.Coordination.IUnsupported|null);

            /** SessionResponse unsupported_17. */
            public unsupported_17?: (Ydb.Coordination.IUnsupported|null);

            /** SessionResponse unsupported_18. */
            public unsupported_18?: (Ydb.Coordination.IUnsupported|null);

            /** SessionResponse response. */
            public response?: ("ping"|"pong"|"failure"|"sessionStarted"|"sessionStopped"|"unsupported_6"|"unsupported_7"|"acquireSemaphorePending"|"acquireSemaphoreResult"|"releaseSemaphoreResult"|"describeSemaphoreResult"|"describeSemaphoreChanged"|"createSemaphoreResult"|"updateSemaphoreResult"|"deleteSemaphoreResult"|"unsupported_16"|"unsupported_17"|"unsupported_18");

            /**
             * Creates a new SessionResponse instance using the specified properties.
             * @param [properties] Properties to set
             * @returns SessionResponse instance
             */
            public static create(properties?: Ydb.Coordination.ISessionResponse): Ydb.Coordination.SessionResponse;

            /**
             * Encodes the specified SessionResponse message. Does not implicitly {@link Ydb.Coordination.SessionResponse.verify|verify} messages.
             * @param message SessionResponse message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Coordination.ISessionResponse, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

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

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

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

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

        namespace SessionResponse {

            /** Properties of a PingPong. */
            interface IPingPong {

                /** PingPong opaque */
                opaque?: (number|Long|null);
            }

            /** Used for checking liveness of the connection */
            class PingPong implements IPingPong {

                /**
                 * Constructs a new PingPong.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: Ydb.Coordination.SessionResponse.IPingPong);

                /** PingPong opaque. */
                public opaque: (number|Long);

                /**
                 * Creates a new PingPong instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns PingPong instance
                 */
                public static create(properties?: Ydb.Coordination.SessionResponse.IPingPong): Ydb.Coordination.SessionResponse.PingPong;

                /**
                 * Encodes the specified PingPong message. Does not implicitly {@link Ydb.Coordination.SessionResponse.PingPong.verify|verify} messages.
                 * @param message PingPong message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: Ydb.Coordination.SessionResponse.IPingPong, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified PingPong message, length delimited. Does not implicitly {@link Ydb.Coordination.SessionResponse.PingPong.verify|verify} messages.
                 * @param message PingPong message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: Ydb.Coordination.SessionResponse.IPingPong, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

                /**
                 * Creates a PingPong message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns PingPong
                 */
                public static fromObject(object: { [k: string]: any }): Ydb.Coordination.SessionResponse.PingPong;

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

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

            /** Properties of a Failure. */
            interface IFailure {

                /** Failure status */
                status?: (Ydb.StatusIds.StatusCode|null);

                /** Failure issues */
                issues?: (Ydb.Issue.IIssueMessage[]|null);
            }

            /** Used to report connection and session level failures */
            class Failure implements IFailure {

                /**
                 * Constructs a new Failure.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: Ydb.Coordination.SessionResponse.IFailure);

                /** Failure status. */
                public status: Ydb.StatusIds.StatusCode;

                /** Failure issues. */
                public issues: Ydb.Issue.IIssueMessage[];

                /**
                 * Creates a new Failure instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns Failure instance
                 */
                public static create(properties?: Ydb.Coordination.SessionResponse.IFailure): Ydb.Coordination.SessionResponse.Failure;

                /**
                 * Encodes the specified Failure message. Does not implicitly {@link Ydb.Coordination.SessionResponse.Failure.verify|verify} messages.
                 * @param message Failure message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: Ydb.Coordination.SessionResponse.IFailure, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified Failure message, length delimited. Does not implicitly {@link Ydb.Coordination.SessionResponse.Failure.verify|verify} messages.
                 * @param message Failure message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: Ydb.Coordination.SessionResponse.IFailure, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

                /**
                 * Creates a Failure message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns Failure
                 */
                public static fromObject(object: { [k: string]: any }): Ydb.Coordination.SessionResponse.Failure;

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

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

            /** Properties of a SessionStarted. */
            interface ISessionStarted {

                /** SessionStarted sessionId */
                sessionId?: (number|Long|null);

                /** SessionStarted timeoutMillis */
                timeoutMillis?: (number|Long|null);
            }

            /** Used to report a successful session create/restore operation */
            class SessionStarted implements ISessionStarted {

                /**
                 * Constructs a new SessionStarted.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: Ydb.Coordination.SessionResponse.ISessionStarted);

                /** SessionStarted sessionId. */
                public sessionId: (number|Long);

                /** SessionStarted timeoutMillis. */
                public timeoutMillis: (number|Long);

                /**
                 * Creates a new SessionStarted instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns SessionStarted instance
                 */
                public static create(properties?: Ydb.Coordination.SessionResponse.ISessionStarted): Ydb.Coordination.SessionResponse.SessionStarted;

                /**
                 * Encodes the specified SessionStarted message. Does not implicitly {@link Ydb.Coordination.SessionResponse.SessionStarted.verify|verify} messages.
                 * @param message SessionStarted message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: Ydb.Coordination.SessionResponse.ISessionStarted, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified SessionStarted message, length delimited. Does not implicitly {@link Ydb.Coordination.SessionResponse.SessionStarted.verify|verify} messages.
                 * @param message SessionStarted message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: Ydb.Coordination.SessionResponse.ISessionStarted, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

                /**
                 * Creates a SessionStarted message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns SessionStarted
                 */
                public static fromObject(object: { [k: string]: any }): Ydb.Coordination.SessionResponse.SessionStarted;

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

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

            /** Properties of a SessionStopped. */
            interface ISessionStopped {

                /** SessionStopped sessionId */
                sessionId?: (number|Long|null);
            }

            /** Used to report a successful graceful termination of the session */
            class SessionStopped implements ISessionStopped {

                /**
                 * Constructs a new SessionStopped.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: Ydb.Coordination.SessionResponse.ISessionStopped);

                /** SessionStopped sessionId. */
                public sessionId: (number|Long);

                /**
                 * Creates a new SessionStopped instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns SessionStopped instance
                 */
                public static create(properties?: Ydb.Coordination.SessionResponse.ISessionStopped): Ydb.Coordination.SessionResponse.SessionStopped;

                /**
                 * Encodes the specified SessionStopped message. Does not implicitly {@link Ydb.Coordination.SessionResponse.SessionStopped.verify|verify} messages.
                 * @param message SessionStopped message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: Ydb.Coordination.SessionResponse.ISessionStopped, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified SessionStopped message, length delimited. Does not implicitly {@link Ydb.Coordination.SessionResponse.SessionStopped.verify|verify} messages.
                 * @param message SessionStopped message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: Ydb.Coordination.SessionResponse.ISessionStopped, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

                /**
                 * Creates a SessionStopped message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns SessionStopped
                 */
                public static fromObject(object: { [k: string]: any }): Ydb.Coordination.SessionResponse.SessionStopped;

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

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

            /** Properties of an AcquireSemaphorePending. */
            interface IAcquireSemaphorePending {

                /** AcquireSemaphorePending reqId */
                reqId?: (number|Long|null);
            }

            /** Used by the server to report when an acquire operation is added to the waiters queue */
            class AcquireSemaphorePending implements IAcquireSemaphorePending {

                /**
                 * Constructs a new AcquireSemaphorePending.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: Ydb.Coordination.SessionResponse.IAcquireSemaphorePending);

                /** AcquireSemaphorePending reqId. */
                public reqId: (number|Long);

                /**
                 * Creates a new AcquireSemaphorePending instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns AcquireSemaphorePending instance
                 */
                public static create(properties?: Ydb.Coordination.SessionResponse.IAcquireSemaphorePending): Ydb.Coordination.SessionResponse.AcquireSemaphorePending;

                /**
                 * Encodes the specified AcquireSemaphorePending message. Does not implicitly {@link Ydb.Coordination.SessionResponse.AcquireSemaphorePending.verify|verify} messages.
                 * @param message AcquireSemaphorePending message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: Ydb.Coordination.SessionResponse.IAcquireSemaphorePending, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified AcquireSemaphorePending message, length delimited. Does not implicitly {@link Ydb.Coordination.SessionResponse.AcquireSemaphorePending.verify|verify} messages.
                 * @param message AcquireSemaphorePending message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: Ydb.Coordination.SessionResponse.IAcquireSemaphorePending, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

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

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

            /** Properties of an AcquireSemaphoreResult. */
            interface IAcquireSemaphoreResult {

                /** AcquireSemaphoreResult reqId */
                reqId?: (number|Long|null);

                /** AcquireSemaphoreResult status */
                status?: (Ydb.StatusIds.StatusCode|null);

                /** AcquireSemaphoreResult issues */
                issues?: (Ydb.Issue.IIssueMessage[]|null);

                /** AcquireSemaphoreResult acquired */
                acquired?: (boolean|null);
            }

            /** Used by the server to report the result of an acquire operation */
            class AcquireSemaphoreResult implements IAcquireSemaphoreResult {

                /**
                 * Constructs a new AcquireSemaphoreResult.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: Ydb.Coordination.SessionResponse.IAcquireSemaphoreResult);

                /** AcquireSemaphoreResult reqId. */
                public reqId: (number|Long);

                /** AcquireSemaphoreResult status. */
                public status: Ydb.StatusIds.StatusCode;

                /** AcquireSemaphoreResult issues. */
                public issues: Ydb.Issue.IIssueMessage[];

                /** AcquireSemaphoreResult acquired. */
                public acquired: boolean;

                /**
                 * Creates a new AcquireSemaphoreResult instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns AcquireSemaphoreResult instance
                 */
                public static create(properties?: Ydb.Coordination.SessionResponse.IAcquireSemaphoreResult): Ydb.Coordination.SessionResponse.AcquireSemaphoreResult;

                /**
                 * Encodes the specified AcquireSemaphoreResult message. Does not implicitly {@link Ydb.Coordination.SessionResponse.AcquireSemaphoreResult.verify|verify} messages.
                 * @param message AcquireSemaphoreResult message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: Ydb.Coordination.SessionResponse.IAcquireSemaphoreResult, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified AcquireSemaphoreResult message, length delimited. Does not implicitly {@link Ydb.Coordination.SessionResponse.AcquireSemaphoreResult.verify|verify} messages.
                 * @param message AcquireSemaphoreResult message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: Ydb.Coordination.SessionResponse.IAcquireSemaphoreResult, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

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

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

            /** Properties of a ReleaseSemaphoreResult. */
            interface IReleaseSemaphoreResult {

                /** ReleaseSemaphoreResult reqId */
                reqId?: (number|Long|null);

                /** ReleaseSemaphoreResult status */
                status?: (Ydb.StatusIds.StatusCode|null);

                /** ReleaseSemaphoreResult issues */
                issues?: (Ydb.Issue.IIssueMessage[]|null);

                /** ReleaseSemaphoreResult released */
                released?: (boolean|null);
            }

            /** Used by the server to report the result of a release operation */
            class ReleaseSemaphoreResult implements IReleaseSemaphoreResult {

                /**
                 * Constructs a new ReleaseSemaphoreResult.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: Ydb.Coordination.SessionResponse.IReleaseSemaphoreResult);

                /** ReleaseSemaphoreResult reqId. */
                public reqId: (number|Long);

                /** ReleaseSemaphoreResult status. */
                public status: Ydb.StatusIds.StatusCode;

                /** ReleaseSemaphoreResult issues. */
                public issues: Ydb.Issue.IIssueMessage[];

                /** ReleaseSemaphoreResult released. */
                public released: boolean;

                /**
                 * Creates a new ReleaseSemaphoreResult instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns ReleaseSemaphoreResult instance
                 */
                public static create(properties?: Ydb.Coordination.SessionResponse.IReleaseSemaphoreResult): Ydb.Coordination.SessionResponse.ReleaseSemaphoreResult;

                /**
                 * Encodes the specified ReleaseSemaphoreResult message. Does not implicitly {@link Ydb.Coordination.SessionResponse.ReleaseSemaphoreResult.verify|verify} messages.
                 * @param message ReleaseSemaphoreResult message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: Ydb.Coordination.SessionResponse.IReleaseSemaphoreResult, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified ReleaseSemaphoreResult message, length delimited. Does not implicitly {@link Ydb.Coordination.SessionResponse.ReleaseSemaphoreResult.verify|verify} messages.
                 * @param message ReleaseSemaphoreResult message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: Ydb.Coordination.SessionResponse.IReleaseSemaphoreResult, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

                /**
                 * Creates a ReleaseSemaphoreResult message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns ReleaseSemaphoreResult
                 */
                public static fromObject(object: { [k: string]: any }): Ydb.Coordination.SessionResponse.ReleaseSemaphoreResult;

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

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

            /** Properties of a DescribeSemaphoreResult. */
            interface IDescribeSemaphoreResult {

                /** DescribeSemaphoreResult reqId */
                reqId?: (number|Long|null);

                /** DescribeSemaphoreResult status */
                status?: (Ydb.StatusIds.StatusCode|null);

                /** DescribeSemaphoreResult issues */
                issues?: (Ydb.Issue.IIssueMessage[]|null);

                /** DescribeSemaphoreResult semaphoreDescription */
                semaphoreDescription?: (Ydb.Coordination.ISemaphoreDescription|null);

                /** DescribeSemaphoreResult watchAdded */
                watchAdded?: (boolean|null);
            }

            /** The result of the describe operation */
            class DescribeSemaphoreResult implements IDescribeSemaphoreResult {

                /**
                 * Constructs a new DescribeSemaphoreResult.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: Ydb.Coordination.SessionResponse.IDescribeSemaphoreResult);

                /** DescribeSemaphoreResult reqId. */
                public reqId: (number|Long);

                /** DescribeSemaphoreResult status. */
                public status: Ydb.StatusIds.StatusCode;

                /** DescribeSemaphoreResult issues. */
                public issues: Ydb.Issue.IIssueMessage[];

                /** DescribeSemaphoreResult semaphoreDescription. */
                public semaphoreDescription?: (Ydb.Coordination.ISemaphoreDescription|null);

                /** DescribeSemaphoreResult watchAdded. */
                public watchAdded: boolean;

                /**
                 * Creates a new DescribeSemaphoreResult instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns DescribeSemaphoreResult instance
                 */
                public static create(properties?: Ydb.Coordination.SessionResponse.IDescribeSemaphoreResult): Ydb.Coordination.SessionResponse.DescribeSemaphoreResult;

                /**
                 * Encodes the specified DescribeSemaphoreResult message. Does not implicitly {@link Ydb.Coordination.SessionResponse.DescribeSemaphoreResult.verify|verify} messages.
                 * @param message DescribeSemaphoreResult message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: Ydb.Coordination.SessionResponse.IDescribeSemaphoreResult, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified DescribeSemaphoreResult message, length delimited. Does not implicitly {@link Ydb.Coordination.SessionResponse.DescribeSemaphoreResult.verify|verify} messages.
                 * @param message DescribeSemaphoreResult message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: Ydb.Coordination.SessionResponse.IDescribeSemaphoreResult, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

                /**
                 * Creates a DescribeSemaphoreResult message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns DescribeSemaphoreResult
                 */
                public static fromObject(object: { [k: string]: any }): Ydb.Coordination.SessionResponse.DescribeSemaphoreResult;

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

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

            /** Properties of a DescribeSemaphoreChanged. */
            interface IDescribeSemaphoreChanged {

                /** DescribeSemaphoreChanged reqId */
                reqId?: (number|Long|null);

                /** DescribeSemaphoreChanged dataChanged */
                dataChanged?: (boolean|null);

                /** DescribeSemaphoreChanged ownersChanged */
                ownersChanged?: (boolean|null);
            }

            /** Used to report a change in the watched semaphore */
            class DescribeSemaphoreChanged implements IDescribeSemaphoreChanged {

                /**
                 * Constructs a new DescribeSemaphoreChanged.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: Ydb.Coordination.SessionResponse.IDescribeSemaphoreChanged);

                /** DescribeSemaphoreChanged reqId. */
                public reqId: (number|Long);

                /** DescribeSemaphoreChanged dataChanged. */
                public dataChanged: boolean;

                /** DescribeSemaphoreChanged ownersChanged. */
                public ownersChanged: boolean;

                /**
                 * Creates a new DescribeSemaphoreChanged instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns DescribeSemaphoreChanged instance
                 */
                public static create(properties?: Ydb.Coordination.SessionResponse.IDescribeSemaphoreChanged): Ydb.Coordination.SessionResponse.DescribeSemaphoreChanged;

                /**
                 * Encodes the specified DescribeSemaphoreChanged message. Does not implicitly {@link Ydb.Coordination.SessionResponse.DescribeSemaphoreChanged.verify|verify} messages.
                 * @param message DescribeSemaphoreChanged message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: Ydb.Coordination.SessionResponse.IDescribeSemaphoreChanged, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified DescribeSemaphoreChanged message, length delimited. Does not implicitly {@link Ydb.Coordination.SessionResponse.DescribeSemaphoreChanged.verify|verify} messages.
                 * @param message DescribeSemaphoreChanged message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: Ydb.Coordination.SessionResponse.IDescribeSemaphoreChanged, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

                /**
                 * Creates a DescribeSemaphoreChanged message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns DescribeSemaphoreChanged
                 */
                public static fromObject(object: { [k: string]: any }): Ydb.Coordination.SessionResponse.DescribeSemaphoreChanged;

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

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

            /** Properties of a CreateSemaphoreResult. */
            interface ICreateSemaphoreResult {

                /** CreateSemaphoreResult reqId */
                reqId?: (number|Long|null);

                /** CreateSemaphoreResult status */
                status?: (Ydb.StatusIds.StatusCode|null);

                /** CreateSemaphoreResult issues */
                issues?: (Ydb.Issue.IIssueMessage[]|null);
            }

            /** The result of semaphore creation */
            class CreateSemaphoreResult implements ICreateSemaphoreResult {

                /**
                 * Constructs a new CreateSemaphoreResult.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: Ydb.Coordination.SessionResponse.ICreateSemaphoreResult);

                /** CreateSemaphoreResult reqId. */
                public reqId: (number|Long);

                /** CreateSemaphoreResult status. */
                public status: Ydb.StatusIds.StatusCode;

                /** CreateSemaphoreResult issues. */
                public issues: Ydb.Issue.IIssueMessage[];

                /**
                 * Creates a new CreateSemaphoreResult instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns CreateSemaphoreResult instance
                 */
                public static create(properties?: Ydb.Coordination.SessionResponse.ICreateSemaphoreResult): Ydb.Coordination.SessionResponse.CreateSemaphoreResult;

                /**
                 * Encodes the specified CreateSemaphoreResult message. Does not implicitly {@link Ydb.Coordination.SessionResponse.CreateSemaphoreResult.verify|verify} messages.
                 * @param message CreateSemaphoreResult message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: Ydb.Coordination.SessionResponse.ICreateSemaphoreResult, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified CreateSemaphoreResult message, length delimited. Does not implicitly {@link Ydb.Coordination.SessionResponse.CreateSemaphoreResult.verify|verify} messages.
                 * @param message CreateSemaphoreResult message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: Ydb.Coordination.SessionResponse.ICreateSemaphoreResult, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

                /**
                 * Creates a CreateSemaphoreResult message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns CreateSemaphoreResult
                 */
                public static fromObject(object: { [k: string]: any }): Ydb.Coordination.SessionResponse.CreateSemaphoreResult;

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

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

            /** Properties of an UpdateSemaphoreResult. */
            interface IUpdateSemaphoreResult {

                /** UpdateSemaphoreResult reqId */
                reqId?: (number|Long|null);

                /** UpdateSemaphoreResult status */
                status?: (Ydb.StatusIds.StatusCode|null);

                /** UpdateSemaphoreResult issues */
                issues?: (Ydb.Issue.IIssueMessage[]|null);
            }

            /** The result of semaphore update */
            class UpdateSemaphoreResult implements IUpdateSemaphoreResult {

                /**
                 * Constructs a new UpdateSemaphoreResult.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: Ydb.Coordination.SessionResponse.IUpdateSemaphoreResult);

                /** UpdateSemaphoreResult reqId. */
                public reqId: (number|Long);

                /** UpdateSemaphoreResult status. */
                public status: Ydb.StatusIds.StatusCode;

                /** UpdateSemaphoreResult issues. */
                public issues: Ydb.Issue.IIssueMessage[];

                /**
                 * Creates a new UpdateSemaphoreResult instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns UpdateSemaphoreResult instance
                 */
                public static create(properties?: Ydb.Coordination.SessionResponse.IUpdateSemaphoreResult): Ydb.Coordination.SessionResponse.UpdateSemaphoreResult;

                /**
                 * Encodes the specified UpdateSemaphoreResult message. Does not implicitly {@link Ydb.Coordination.SessionResponse.UpdateSemaphoreResult.verify|verify} messages.
                 * @param message UpdateSemaphoreResult message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: Ydb.Coordination.SessionResponse.IUpdateSemaphoreResult, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified UpdateSemaphoreResult message, length delimited. Does not implicitly {@link Ydb.Coordination.SessionResponse.UpdateSemaphoreResult.verify|verify} messages.
                 * @param message UpdateSemaphoreResult message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: Ydb.Coordination.SessionResponse.IUpdateSemaphoreResult, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

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

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

            /** Properties of a DeleteSemaphoreResult. */
            interface IDeleteSemaphoreResult {

                /** DeleteSemaphoreResult reqId */
                reqId?: (number|Long|null);

                /** DeleteSemaphoreResult status */
                status?: (Ydb.StatusIds.StatusCode|null);

                /** DeleteSemaphoreResult issues */
                issues?: (Ydb.Issue.IIssueMessage[]|null);
            }

            /** The result of semaphore deletion */
            class DeleteSemaphoreResult implements IDeleteSemaphoreResult {

                /**
                 * Constructs a new DeleteSemaphoreResult.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: Ydb.Coordination.SessionResponse.IDeleteSemaphoreResult);

                /** DeleteSemaphoreResult reqId. */
                public reqId: (number|Long);

                /** DeleteSemaphoreResult status. */
                public status: Ydb.StatusIds.StatusCode;

                /** DeleteSemaphoreResult issues. */
                public issues: Ydb.Issue.IIssueMessage[];

                /**
                 * Creates a new DeleteSemaphoreResult instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns DeleteSemaphoreResult instance
                 */
                public static create(properties?: Ydb.Coordination.SessionResponse.IDeleteSemaphoreResult): Ydb.Coordination.SessionResponse.DeleteSemaphoreResult;

                /**
                 * Encodes the specified DeleteSemaphoreResult message. Does not implicitly {@link Ydb.Coordination.SessionResponse.DeleteSemaphoreResult.verify|verify} messages.
                 * @param message DeleteSemaphoreResult message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: Ydb.Coordination.SessionResponse.IDeleteSemaphoreResult, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified DeleteSemaphoreResult message, length delimited. Does not implicitly {@link Ydb.Coordination.SessionResponse.DeleteSemaphoreResult.verify|verify} messages.
                 * @param message DeleteSemaphoreResult message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: Ydb.Coordination.SessionResponse.IDeleteSemaphoreResult, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

                /**
                 * Creates a DeleteSemaphoreResult message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns DeleteSemaphoreResult
                 */
                public static fromObject(object: { [k: string]: any }): Ydb.Coordination.SessionResponse.DeleteSemaphoreResult;

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

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

        /** Properties of a CreateNodeRequest. */
        interface ICreateNodeRequest {

            /** CreateNodeRequest path */
            path?: (string|null);

            /** CreateNodeRequest config */
            config?: (Ydb.Coordination.IConfig|null);

            /** CreateNodeRequest operationParams */
            operationParams?: (Ydb.Operations.IOperationParams|null);
        }

        /** Represents a CreateNodeRequest. */
        class CreateNodeRequest implements ICreateNodeRequest {

            /**
             * Constructs a new CreateNodeRequest.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Coordination.ICreateNodeRequest);

            /** CreateNodeRequest path. */
            public path: string;

            /** CreateNodeRequest config. */
            public config?: (Ydb.Coordination.IConfig|null);

            /** CreateNodeRequest operationParams. */
            public operationParams?: (Ydb.Operations.IOperationParams|null);

            /**
             * Creates a new CreateNodeRequest instance using the specified properties.
             * @param [properties] Properties to set
             * @returns CreateNodeRequest instance
             */
            public static create(properties?: Ydb.Coordination.ICreateNodeRequest): Ydb.Coordination.CreateNodeRequest;

            /**
             * Encodes the specified CreateNodeRequest message. Does not implicitly {@link Ydb.Coordination.CreateNodeRequest.verify|verify} messages.
             * @param message CreateNodeRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Coordination.ICreateNodeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

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

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

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

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

        /** Properties of a CreateNodeResponse. */
        interface ICreateNodeResponse {

            /** CreateNodeResponse operation */
            operation?: (Ydb.Operations.IOperation|null);
        }

        /** Represents a CreateNodeResponse. */
        class CreateNodeResponse implements ICreateNodeResponse {

            /**
             * Constructs a new CreateNodeResponse.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Coordination.ICreateNodeResponse);

            /** CreateNodeResponse operation. */
            public operation?: (Ydb.Operations.IOperation|null);

            /**
             * Creates a new CreateNodeResponse instance using the specified properties.
             * @param [properties] Properties to set
             * @returns CreateNodeResponse instance
             */
            public static create(properties?: Ydb.Coordination.ICreateNodeResponse): Ydb.Coordination.CreateNodeResponse;

            /**
             * Encodes the specified CreateNodeResponse message. Does not implicitly {@link Ydb.Coordination.CreateNodeResponse.verify|verify} messages.
             * @param message CreateNodeResponse message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Coordination.ICreateNodeResponse, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

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

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

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

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

        /** Properties of an AlterNodeRequest. */
        interface IAlterNodeRequest {

            /** AlterNodeRequest path */
            path?: (string|null);

            /** AlterNodeRequest config */
            config?: (Ydb.Coordination.IConfig|null);

            /** AlterNodeRequest operationParams */
            operationParams?: (Ydb.Operations.IOperationParams|null);
        }

        /** Represents an AlterNodeRequest. */
        class AlterNodeRequest implements IAlterNodeRequest {

            /**
             * Constructs a new AlterNodeRequest.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Coordination.IAlterNodeRequest);

            /** AlterNodeRequest path. */
            public path: string;

            /** AlterNodeRequest config. */
            public config?: (Ydb.Coordination.IConfig|null);

            /** AlterNodeRequest operationParams. */
            public operationParams?: (Ydb.Operations.IOperationParams|null);

            /**
             * Creates a new AlterNodeRequest instance using the specified properties.
             * @param [properties] Properties to set
             * @returns AlterNodeRequest instance
             */
            public static create(properties?: Ydb.Coordination.IAlterNodeRequest): Ydb.Coordination.AlterNodeRequest;

            /**
             * Encodes the specified AlterNodeRequest message. Does not implicitly {@link Ydb.Coordination.AlterNodeRequest.verify|verify} messages.
             * @param message AlterNodeRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Coordination.IAlterNodeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

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

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

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

        /** Properties of an AlterNodeResponse. */
        interface IAlterNodeResponse {

            /** AlterNodeResponse operation */
            operation?: (Ydb.Operations.IOperation|null);
        }

        /** Represents an AlterNodeResponse. */
        class AlterNodeResponse implements IAlterNodeResponse {

            /**
             * Constructs a new AlterNodeResponse.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Coordination.IAlterNodeResponse);

            /** AlterNodeResponse operation. */
            public operation?: (Ydb.Operations.IOperation|null);

            /**
             * Creates a new AlterNodeResponse instance using the specified properties.
             * @param [properties] Properties to set
             * @returns AlterNodeResponse instance
             */
            public static create(properties?: Ydb.Coordination.IAlterNodeResponse): Ydb.Coordination.AlterNodeResponse;

            /**
             * Encodes the specified AlterNodeResponse message. Does not implicitly {@link Ydb.Coordination.AlterNodeResponse.verify|verify} messages.
             * @param message AlterNodeResponse message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Coordination.IAlterNodeResponse, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

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

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

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

        /** Properties of a DropNodeRequest. */
        interface IDropNodeRequest {

            /** DropNodeRequest path */
            path?: (string|null);

            /** DropNodeRequest operationParams */
            operationParams?: (Ydb.Operations.IOperationParams|null);
        }

        /** Represents a DropNodeRequest. */
        class DropNodeRequest implements IDropNodeRequest {

            /**
             * Constructs a new DropNodeRequest.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Coordination.IDropNodeRequest);

            /** DropNodeRequest path. */
            public path: string;

            /** DropNodeRequest operationParams. */
            public operationParams?: (Ydb.Operations.IOperationParams|null);

            /**
             * Creates a new DropNodeRequest instance using the specified properties.
             * @param [properties] Properties to set
             * @returns DropNodeRequest instance
             */
            public static create(properties?: Ydb.Coordination.IDropNodeRequest): Ydb.Coordination.DropNodeRequest;

            /**
             * Encodes the specified DropNodeRequest message. Does not implicitly {@link Ydb.Coordination.DropNodeRequest.verify|verify} messages.
             * @param message DropNodeRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Coordination.IDropNodeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

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

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

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

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

        /** Properties of a DropNodeResponse. */
        interface IDropNodeResponse {

            /** DropNodeResponse operation */
            operation?: (Ydb.Operations.IOperation|null);
        }

        /** Represents a DropNodeResponse. */
        class DropNodeResponse implements IDropNodeResponse {

            /**
             * Constructs a new DropNodeResponse.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Coordination.IDropNodeResponse);

            /** DropNodeResponse operation. */
            public operation?: (Ydb.Operations.IOperation|null);

            /**
             * Creates a new DropNodeResponse instance using the specified properties.
             * @param [properties] Properties to set
             * @returns DropNodeResponse instance
             */
            public static create(properties?: Ydb.Coordination.IDropNodeResponse): Ydb.Coordination.DropNodeResponse;

            /**
             * Encodes the specified DropNodeResponse message. Does not implicitly {@link Ydb.Coordination.DropNodeResponse.verify|verify} messages.
             * @param message DropNodeResponse message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Coordination.IDropNodeResponse, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

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

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

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

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

        /** Properties of a DescribeNodeRequest. */
        interface IDescribeNodeRequest {

            /** DescribeNodeRequest path */
            path?: (string|null);

            /** DescribeNodeRequest operationParams */
            operationParams?: (Ydb.Operations.IOperationParams|null);
        }

        /** Represents a DescribeNodeRequest. */
        class DescribeNodeRequest implements IDescribeNodeRequest {

            /**
             * Constructs a new DescribeNodeRequest.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Coordination.IDescribeNodeRequest);

            /** DescribeNodeRequest path. */
            public path: string;

            /** DescribeNodeRequest operationParams. */
            public operationParams?: (Ydb.Operations.IOperationParams|null);

            /**
             * Creates a new DescribeNodeRequest instance using the specified properties.
             * @param [properties] Properties to set
             * @returns DescribeNodeRequest instance
             */
            public static create(properties?: Ydb.Coordination.IDescribeNodeRequest): Ydb.Coordination.DescribeNodeRequest;

            /**
             * Encodes the specified DescribeNodeRequest message. Does not implicitly {@link Ydb.Coordination.DescribeNodeRequest.verify|verify} messages.
             * @param message DescribeNodeRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Coordination.IDescribeNodeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

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

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

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

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

        /** Properties of a DescribeNodeResponse. */
        interface IDescribeNodeResponse {

            /** DescribeNodeResponse operation */
            operation?: (Ydb.Operations.IOperation|null);
        }

        /** Represents a DescribeNodeResponse. */
        class DescribeNodeResponse implements IDescribeNodeResponse {

            /**
             * Constructs a new DescribeNodeResponse.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Coordination.IDescribeNodeResponse);

            /** DescribeNodeResponse operation. */
            public operation?: (Ydb.Operations.IOperation|null);

            /**
             * Creates a new DescribeNodeResponse instance using the specified properties.
             * @param [properties] Properties to set
             * @returns DescribeNodeResponse instance
             */
            public static create(properties?: Ydb.Coordination.IDescribeNodeResponse): Ydb.Coordination.DescribeNodeResponse;

            /**
             * Encodes the specified DescribeNodeResponse message. Does not implicitly {@link Ydb.Coordination.DescribeNodeResponse.verify|verify} messages.
             * @param message DescribeNodeResponse message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Coordination.IDescribeNodeResponse, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

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

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

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

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

        /** Properties of a DescribeNodeResult. */
        interface IDescribeNodeResult {

            /** DescribeNodeResult self */
            self?: (Ydb.Scheme.IEntry|null);

            /** DescribeNodeResult config */
            config?: (Ydb.Coordination.IConfig|null);
        }

        /** Represents a DescribeNodeResult. */
        class DescribeNodeResult implements IDescribeNodeResult {

            /**
             * Constructs a new DescribeNodeResult.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Coordination.IDescribeNodeResult);

            /** DescribeNodeResult self. */
            public self?: (Ydb.Scheme.IEntry|null);

            /** DescribeNodeResult config. */
            public config?: (Ydb.Coordination.IConfig|null);

            /**
             * Creates a new DescribeNodeResult instance using the specified properties.
             * @param [properties] Properties to set
             * @returns DescribeNodeResult instance
             */
            public static create(properties?: Ydb.Coordination.IDescribeNodeResult): Ydb.Coordination.DescribeNodeResult;

            /**
             * Encodes the specified DescribeNodeResult message. Does not implicitly {@link Ydb.Coordination.DescribeNodeResult.verify|verify} messages.
             * @param message DescribeNodeResult message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Coordination.IDescribeNodeResult, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

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

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

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

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

    /** Namespace Scheme. */
    namespace Scheme {

        /** Properties of a MakeDirectoryRequest. */
        interface IMakeDirectoryRequest {

            /** MakeDirectoryRequest operationParams */
            operationParams?: (Ydb.Operations.IOperationParams|null);

            /** MakeDirectoryRequest path */
            path?: (string|null);
        }

        /** Represents a MakeDirectoryRequest. */
        class MakeDirectoryRequest implements IMakeDirectoryRequest {

            /**
             * Constructs a new MakeDirectoryRequest.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Scheme.IMakeDirectoryRequest);

            /** MakeDirectoryRequest operationParams. */
            public operationParams?: (Ydb.Operations.IOperationParams|null);

            /** MakeDirectoryRequest path. */
            public path: string;

            /**
             * Creates a new MakeDirectoryRequest instance using the specified properties.
             * @param [properties] Properties to set
             * @returns MakeDirectoryRequest instance
             */
            public static create(properties?: Ydb.Scheme.IMakeDirectoryRequest): Ydb.Scheme.MakeDirectoryRequest;

            /**
             * Encodes the specified MakeDirectoryRequest message. Does not implicitly {@link Ydb.Scheme.MakeDirectoryRequest.verify|verify} messages.
             * @param message MakeDirectoryRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Scheme.IMakeDirectoryRequest, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

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

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

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

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

        /** Properties of a MakeDirectoryResponse. */
        interface IMakeDirectoryResponse {

            /** MakeDirectoryResponse operation */
            operation?: (Ydb.Operations.IOperation|null);
        }

        /** Represents a MakeDirectoryResponse. */
        class MakeDirectoryResponse implements IMakeDirectoryResponse {

            /**
             * Constructs a new MakeDirectoryResponse.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Scheme.IMakeDirectoryResponse);

            /** MakeDirectoryResponse operation. */
            public operation?: (Ydb.Operations.IOperation|null);

            /**
             * Creates a new MakeDirectoryResponse instance using the specified properties.
             * @param [properties] Properties to set
             * @returns MakeDirectoryResponse instance
             */
            public static create(properties?: Ydb.Scheme.IMakeDirectoryResponse): Ydb.Scheme.MakeDirectoryResponse;

            /**
             * Encodes the specified MakeDirectoryResponse message. Does not implicitly {@link Ydb.Scheme.MakeDirectoryResponse.verify|verify} messages.
             * @param message MakeDirectoryResponse message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Scheme.IMakeDirectoryResponse, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

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

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

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

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

        /** Properties of a RemoveDirectoryRequest. */
        interface IRemoveDirectoryRequest {

            /** RemoveDirectoryRequest operationParams */
            operationParams?: (Ydb.Operations.IOperationParams|null);

            /** RemoveDirectoryRequest path */
            path?: (string|null);
        }

        /** Represents a RemoveDirectoryRequest. */
        class RemoveDirectoryRequest implements IRemoveDirectoryRequest {

            /**
             * Constructs a new RemoveDirectoryRequest.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Scheme.IRemoveDirectoryRequest);

            /** RemoveDirectoryRequest operationParams. */
            public operationParams?: (Ydb.Operations.IOperationParams|null);

            /** RemoveDirectoryRequest path. */
            public path: string;

            /**
             * Creates a new RemoveDirectoryRequest instance using the specified properties.
             * @param [properties] Properties to set
             * @returns RemoveDirectoryRequest instance
             */
            public static create(properties?: Ydb.Scheme.IRemoveDirectoryRequest): Ydb.Scheme.RemoveDirectoryRequest;

            /**
             * Encodes the specified RemoveDirectoryRequest message. Does not implicitly {@link Ydb.Scheme.RemoveDirectoryRequest.verify|verify} messages.
             * @param message RemoveDirectoryRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Scheme.IRemoveDirectoryRequest, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

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

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

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

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

        /** Properties of a RemoveDirectoryResponse. */
        interface IRemoveDirectoryResponse {

            /** RemoveDirectoryResponse operation */
            operation?: (Ydb.Operations.IOperation|null);
        }

        /** Represents a RemoveDirectoryResponse. */
        class RemoveDirectoryResponse implements IRemoveDirectoryResponse {

            /**
             * Constructs a new RemoveDirectoryResponse.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Scheme.IRemoveDirectoryResponse);

            /** RemoveDirectoryResponse operation. */
            public operation?: (Ydb.Operations.IOperation|null);

            /**
             * Creates a new RemoveDirectoryResponse instance using the specified properties.
             * @param [properties] Properties to set
             * @returns RemoveDirectoryResponse instance
             */
            public static create(properties?: Ydb.Scheme.IRemoveDirectoryResponse): Ydb.Scheme.RemoveDirectoryResponse;

            /**
             * Encodes the specified RemoveDirectoryResponse message. Does not implicitly {@link Ydb.Scheme.RemoveDirectoryResponse.verify|verify} messages.
             * @param message RemoveDirectoryResponse message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Scheme.IRemoveDirectoryResponse, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

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

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

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

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

        /** Properties of a ListDirectoryRequest. */
        interface IListDirectoryRequest {

            /** ListDirectoryRequest operationParams */
            operationParams?: (Ydb.Operations.IOperationParams|null);

            /** ListDirectoryRequest path */
            path?: (string|null);
        }

        /** Represents a ListDirectoryRequest. */
        class ListDirectoryRequest implements IListDirectoryRequest {

            /**
             * Constructs a new ListDirectoryRequest.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Scheme.IListDirectoryRequest);

            /** ListDirectoryRequest operationParams. */
            public operationParams?: (Ydb.Operations.IOperationParams|null);

            /** ListDirectoryRequest path. */
            public path: string;

            /**
             * Creates a new ListDirectoryRequest instance using the specified properties.
             * @param [properties] Properties to set
             * @returns ListDirectoryRequest instance
             */
            public static create(properties?: Ydb.Scheme.IListDirectoryRequest): Ydb.Scheme.ListDirectoryRequest;

            /**
             * Encodes the specified ListDirectoryRequest message. Does not implicitly {@link Ydb.Scheme.ListDirectoryRequest.verify|verify} messages.
             * @param message ListDirectoryRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Scheme.IListDirectoryRequest, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

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

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

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

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

        /** Properties of a ListDirectoryResponse. */
        interface IListDirectoryResponse {

            /** ListDirectoryResponse operation */
            operation?: (Ydb.Operations.IOperation|null);
        }

        /** Represents a ListDirectoryResponse. */
        class ListDirectoryResponse implements IListDirectoryResponse {

            /**
             * Constructs a new ListDirectoryResponse.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Scheme.IListDirectoryResponse);

            /** ListDirectoryResponse operation. */
            public operation?: (Ydb.Operations.IOperation|null);

            /**
             * Creates a new ListDirectoryResponse instance using the specified properties.
             * @param [properties] Properties to set
             * @returns ListDirectoryResponse instance
             */
            public static create(properties?: Ydb.Scheme.IListDirectoryResponse): Ydb.Scheme.ListDirectoryResponse;

            /**
             * Encodes the specified ListDirectoryResponse message. Does not implicitly {@link Ydb.Scheme.ListDirectoryResponse.verify|verify} messages.
             * @param message ListDirectoryResponse message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Scheme.IListDirectoryResponse, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

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

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

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

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

        /** Properties of a Permissions. */
        interface IPermissions {

            /** Permissions subject */
            subject?: (string|null);

            /** Permissions permissionNames */
            permissionNames?: (string[]|null);
        }

        /** Represents a Permissions. */
        class Permissions implements IPermissions {

            /**
             * Constructs a new Permissions.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Scheme.IPermissions);

            /** Permissions subject. */
            public subject: string;

            /** Permissions permissionNames. */
            public permissionNames: string[];

            /**
             * Creates a new Permissions instance using the specified properties.
             * @param [properties] Properties to set
             * @returns Permissions instance
             */
            public static create(properties?: Ydb.Scheme.IPermissions): Ydb.Scheme.Permissions;

            /**
             * Encodes the specified Permissions message. Does not implicitly {@link Ydb.Scheme.Permissions.verify|verify} messages.
             * @param message Permissions message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Scheme.IPermissions, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

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

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

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

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

        /** Properties of an Entry. */
        interface IEntry {

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

            /** Entry owner */
            owner?: (string|null);

            /** Entry type */
            type?: (Ydb.Scheme.Entry.Type|null);

            /** Entry effectivePermissions */
            effectivePermissions?: (Ydb.Scheme.IPermissions[]|null);

            /** Entry permissions */
            permissions?: (Ydb.Scheme.IPermissions[]|null);

            /** Entry sizeBytes */
            sizeBytes?: (number|Long|null);

            /** Entry createdAt */
            createdAt?: (Ydb.IVirtualTimestamp|null);
        }

        /** Represents an Entry. */
        class Entry implements IEntry {

            /**
             * Constructs a new Entry.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Scheme.IEntry);

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

            /** Entry owner. */
            public owner: string;

            /** Entry type. */
            public type: Ydb.Scheme.Entry.Type;

            /** Entry effectivePermissions. */
            public effectivePermissions: Ydb.Scheme.IPermissions[];

            /** Entry permissions. */
            public permissions: Ydb.Scheme.IPermissions[];

            /** Entry sizeBytes. */
            public sizeBytes: (number|Long);

            /** Entry createdAt. */
            public createdAt?: (Ydb.IVirtualTimestamp|null);

            /**
             * Creates a new Entry instance using the specified properties.
             * @param [properties] Properties to set
             * @returns Entry instance
             */
            public static create(properties?: Ydb.Scheme.IEntry): Ydb.Scheme.Entry;

            /**
             * Encodes the specified Entry message. Does not implicitly {@link Ydb.Scheme.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: Ydb.Scheme.IEntry, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified Entry message, length delimited. Does not implicitly {@link Ydb.Scheme.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: Ydb.Scheme.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): Ydb.Scheme.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)): Ydb.Scheme.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 }): Ydb.Scheme.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: Ydb.Scheme.Entry, options?: $protobuf.IConversionOptions): { [k: string]: any };

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

        namespace Entry {

            /** Type enum. */
            enum Type {
                TYPE_UNSPECIFIED = 0,
                DIRECTORY = 1,
                TABLE = 2,
                PERS_QUEUE_GROUP = 3,
                DATABASE = 4,
                RTMR_VOLUME = 5,
                BLOCK_STORE_VOLUME = 6,
                COORDINATION_NODE = 7,
                COLUMN_STORE = 12,
                COLUMN_TABLE = 13,
                SEQUENCE = 15,
                REPLICATION = 16,
                TOPIC = 17,
                EXTERNAL_TABLE = 18,
                EXTERNAL_DATA_SOURCE = 19,
                VIEW = 20
            }
        }

        /** Properties of a ListDirectoryResult. */
        interface IListDirectoryResult {

            /** ListDirectoryResult self */
            self?: (Ydb.Scheme.IEntry|null);

            /** ListDirectoryResult children */
            children?: (Ydb.Scheme.IEntry[]|null);
        }

        /** Represents a ListDirectoryResult. */
        class ListDirectoryResult implements IListDirectoryResult {

            /**
             * Constructs a new ListDirectoryResult.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Scheme.IListDirectoryResult);

            /** ListDirectoryResult self. */
            public self?: (Ydb.Scheme.IEntry|null);

            /** ListDirectoryResult children. */
            public children: Ydb.Scheme.IEntry[];

            /**
             * Creates a new ListDirectoryResult instance using the specified properties.
             * @param [properties] Properties to set
             * @returns ListDirectoryResult instance
             */
            public static create(properties?: Ydb.Scheme.IListDirectoryResult): Ydb.Scheme.ListDirectoryResult;

            /**
             * Encodes the specified ListDirectoryResult message. Does not implicitly {@link Ydb.Scheme.ListDirectoryResult.verify|verify} messages.
             * @param message ListDirectoryResult message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Scheme.IListDirectoryResult, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

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

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

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

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

        /** Properties of a DescribePathRequest. */
        interface IDescribePathRequest {

            /** DescribePathRequest operationParams */
            operationParams?: (Ydb.Operations.IOperationParams|null);

            /** DescribePathRequest path */
            path?: (string|null);
        }

        /** Represents a DescribePathRequest. */
        class DescribePathRequest implements IDescribePathRequest {

            /**
             * Constructs a new DescribePathRequest.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Scheme.IDescribePathRequest);

            /** DescribePathRequest operationParams. */
            public operationParams?: (Ydb.Operations.IOperationParams|null);

            /** DescribePathRequest path. */
            public path: string;

            /**
             * Creates a new DescribePathRequest instance using the specified properties.
             * @param [properties] Properties to set
             * @returns DescribePathRequest instance
             */
            public static create(properties?: Ydb.Scheme.IDescribePathRequest): Ydb.Scheme.DescribePathRequest;

            /**
             * Encodes the specified DescribePathRequest message. Does not implicitly {@link Ydb.Scheme.DescribePathRequest.verify|verify} messages.
             * @param message DescribePathRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Scheme.IDescribePathRequest, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

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

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

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

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

        /** Properties of a DescribePathResponse. */
        interface IDescribePathResponse {

            /** DescribePathResponse operation */
            operation?: (Ydb.Operations.IOperation|null);
        }

        /** Represents a DescribePathResponse. */
        class DescribePathResponse implements IDescribePathResponse {

            /**
             * Constructs a new DescribePathResponse.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Scheme.IDescribePathResponse);

            /** DescribePathResponse operation. */
            public operation?: (Ydb.Operations.IOperation|null);

            /**
             * Creates a new DescribePathResponse instance using the specified properties.
             * @param [properties] Properties to set
             * @returns DescribePathResponse instance
             */
            public static create(properties?: Ydb.Scheme.IDescribePathResponse): Ydb.Scheme.DescribePathResponse;

            /**
             * Encodes the specified DescribePathResponse message. Does not implicitly {@link Ydb.Scheme.DescribePathResponse.verify|verify} messages.
             * @param message DescribePathResponse message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Scheme.IDescribePathResponse, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

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

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

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

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

        /** Properties of a DescribePathResult. */
        interface IDescribePathResult {

            /** DescribePathResult self */
            self?: (Ydb.Scheme.IEntry|null);
        }

        /** Represents a DescribePathResult. */
        class DescribePathResult implements IDescribePathResult {

            /**
             * Constructs a new DescribePathResult.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Scheme.IDescribePathResult);

            /** DescribePathResult self. */
            public self?: (Ydb.Scheme.IEntry|null);

            /**
             * Creates a new DescribePathResult instance using the specified properties.
             * @param [properties] Properties to set
             * @returns DescribePathResult instance
             */
            public static create(properties?: Ydb.Scheme.IDescribePathResult): Ydb.Scheme.DescribePathResult;

            /**
             * Encodes the specified DescribePathResult message. Does not implicitly {@link Ydb.Scheme.DescribePathResult.verify|verify} messages.
             * @param message DescribePathResult message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Scheme.IDescribePathResult, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

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

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

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

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

        /** Properties of a PermissionsAction. */
        interface IPermissionsAction {

            /** PermissionsAction grant */
            grant?: (Ydb.Scheme.IPermissions|null);

            /** PermissionsAction revoke */
            revoke?: (Ydb.Scheme.IPermissions|null);

            /** PermissionsAction set */
            set?: (Ydb.Scheme.IPermissions|null);

            /** PermissionsAction changeOwner */
            changeOwner?: (string|null);
        }

        /** Represents a PermissionsAction. */
        class PermissionsAction implements IPermissionsAction {

            /**
             * Constructs a new PermissionsAction.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Scheme.IPermissionsAction);

            /** PermissionsAction grant. */
            public grant?: (Ydb.Scheme.IPermissions|null);

            /** PermissionsAction revoke. */
            public revoke?: (Ydb.Scheme.IPermissions|null);

            /** PermissionsAction set. */
            public set?: (Ydb.Scheme.IPermissions|null);

            /** PermissionsAction changeOwner. */
            public changeOwner?: (string|null);

            /** PermissionsAction action. */
            public action?: ("grant"|"revoke"|"set"|"changeOwner");

            /**
             * Creates a new PermissionsAction instance using the specified properties.
             * @param [properties] Properties to set
             * @returns PermissionsAction instance
             */
            public static create(properties?: Ydb.Scheme.IPermissionsAction): Ydb.Scheme.PermissionsAction;

            /**
             * Encodes the specified PermissionsAction message. Does not implicitly {@link Ydb.Scheme.PermissionsAction.verify|verify} messages.
             * @param message PermissionsAction message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Scheme.IPermissionsAction, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

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

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

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

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

        /** Properties of a ModifyPermissionsRequest. */
        interface IModifyPermissionsRequest {

            /** ModifyPermissionsRequest operationParams */
            operationParams?: (Ydb.Operations.IOperationParams|null);

            /** ModifyPermissionsRequest path */
            path?: (string|null);

            /** ModifyPermissionsRequest actions */
            actions?: (Ydb.Scheme.IPermissionsAction[]|null);

            /** ModifyPermissionsRequest clearPermissions */
            clearPermissions?: (boolean|null);

            /** ModifyPermissionsRequest interruptInheritance */
            interruptInheritance?: (boolean|null);
        }

        /** Represents a ModifyPermissionsRequest. */
        class ModifyPermissionsRequest implements IModifyPermissionsRequest {

            /**
             * Constructs a new ModifyPermissionsRequest.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Scheme.IModifyPermissionsRequest);

            /** ModifyPermissionsRequest operationParams. */
            public operationParams?: (Ydb.Operations.IOperationParams|null);

            /** ModifyPermissionsRequest path. */
            public path: string;

            /** ModifyPermissionsRequest actions. */
            public actions: Ydb.Scheme.IPermissionsAction[];

            /** ModifyPermissionsRequest clearPermissions. */
            public clearPermissions: boolean;

            /** ModifyPermissionsRequest interruptInheritance. */
            public interruptInheritance?: (boolean|null);

            /** ModifyPermissionsRequest inheritance. */
            public inheritance?: "interruptInheritance";

            /**
             * Creates a new ModifyPermissionsRequest instance using the specified properties.
             * @param [properties] Properties to set
             * @returns ModifyPermissionsRequest instance
             */
            public static create(properties?: Ydb.Scheme.IModifyPermissionsRequest): Ydb.Scheme.ModifyPermissionsRequest;

            /**
             * Encodes the specified ModifyPermissionsRequest message. Does not implicitly {@link Ydb.Scheme.ModifyPermissionsRequest.verify|verify} messages.
             * @param message ModifyPermissionsRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Scheme.IModifyPermissionsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

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

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

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

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

        /** Properties of a ModifyPermissionsResponse. */
        interface IModifyPermissionsResponse {

            /** ModifyPermissionsResponse operation */
            operation?: (Ydb.Operations.IOperation|null);
        }

        /** Represents a ModifyPermissionsResponse. */
        class ModifyPermissionsResponse implements IModifyPermissionsResponse {

            /**
             * Constructs a new ModifyPermissionsResponse.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Scheme.IModifyPermissionsResponse);

            /** ModifyPermissionsResponse operation. */
            public operation?: (Ydb.Operations.IOperation|null);

            /**
             * Creates a new ModifyPermissionsResponse instance using the specified properties.
             * @param [properties] Properties to set
             * @returns ModifyPermissionsResponse instance
             */
            public static create(properties?: Ydb.Scheme.IModifyPermissionsResponse): Ydb.Scheme.ModifyPermissionsResponse;

            /**
             * Encodes the specified ModifyPermissionsResponse message. Does not implicitly {@link Ydb.Scheme.ModifyPermissionsResponse.verify|verify} messages.
             * @param message ModifyPermissionsResponse message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Scheme.IModifyPermissionsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

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

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

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

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

        /** Namespace V1. */
        namespace V1 {

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

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

                /**
                 * Calls MakeDirectory.
                 * @param request MakeDirectoryRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and MakeDirectoryResponse
                 */
                public makeDirectory(request: Ydb.Scheme.IMakeDirectoryRequest, callback: Ydb.Scheme.V1.SchemeService.MakeDirectoryCallback): void;

                /**
                 * Calls MakeDirectory.
                 * @param request MakeDirectoryRequest message or plain object
                 * @returns Promise
                 */
                public makeDirectory(request: Ydb.Scheme.IMakeDirectoryRequest): Promise<Ydb.Scheme.MakeDirectoryResponse>;

                /**
                 * Calls RemoveDirectory.
                 * @param request RemoveDirectoryRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and RemoveDirectoryResponse
                 */
                public removeDirectory(request: Ydb.Scheme.IRemoveDirectoryRequest, callback: Ydb.Scheme.V1.SchemeService.RemoveDirectoryCallback): void;

                /**
                 * Calls RemoveDirectory.
                 * @param request RemoveDirectoryRequest message or plain object
                 * @returns Promise
                 */
                public removeDirectory(request: Ydb.Scheme.IRemoveDirectoryRequest): Promise<Ydb.Scheme.RemoveDirectoryResponse>;

                /**
                 * Calls ListDirectory.
                 * @param request ListDirectoryRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and ListDirectoryResponse
                 */
                public listDirectory(request: Ydb.Scheme.IListDirectoryRequest, callback: Ydb.Scheme.V1.SchemeService.ListDirectoryCallback): void;

                /**
                 * Calls ListDirectory.
                 * @param request ListDirectoryRequest message or plain object
                 * @returns Promise
                 */
                public listDirectory(request: Ydb.Scheme.IListDirectoryRequest): Promise<Ydb.Scheme.ListDirectoryResponse>;

                /**
                 * Calls DescribePath.
                 * @param request DescribePathRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and DescribePathResponse
                 */
                public describePath(request: Ydb.Scheme.IDescribePathRequest, callback: Ydb.Scheme.V1.SchemeService.DescribePathCallback): void;

                /**
                 * Calls DescribePath.
                 * @param request DescribePathRequest message or plain object
                 * @returns Promise
                 */
                public describePath(request: Ydb.Scheme.IDescribePathRequest): Promise<Ydb.Scheme.DescribePathResponse>;

                /**
                 * Calls ModifyPermissions.
                 * @param request ModifyPermissionsRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and ModifyPermissionsResponse
                 */
                public modifyPermissions(request: Ydb.Scheme.IModifyPermissionsRequest, callback: Ydb.Scheme.V1.SchemeService.ModifyPermissionsCallback): void;

                /**
                 * Calls ModifyPermissions.
                 * @param request ModifyPermissionsRequest message or plain object
                 * @returns Promise
                 */
                public modifyPermissions(request: Ydb.Scheme.IModifyPermissionsRequest): Promise<Ydb.Scheme.ModifyPermissionsResponse>;
            }

            namespace SchemeService {

                /**
                 * Callback as used by {@link Ydb.Scheme.V1.SchemeService#makeDirectory}.
                 * @param error Error, if any
                 * @param [response] MakeDirectoryResponse
                 */
                type MakeDirectoryCallback = (error: (Error|null), response?: Ydb.Scheme.MakeDirectoryResponse) => void;

                /**
                 * Callback as used by {@link Ydb.Scheme.V1.SchemeService#removeDirectory}.
                 * @param error Error, if any
                 * @param [response] RemoveDirectoryResponse
                 */
                type RemoveDirectoryCallback = (error: (Error|null), response?: Ydb.Scheme.RemoveDirectoryResponse) => void;

                /**
                 * Callback as used by {@link Ydb.Scheme.V1.SchemeService#listDirectory}.
                 * @param error Error, if any
                 * @param [response] ListDirectoryResponse
                 */
                type ListDirectoryCallback = (error: (Error|null), response?: Ydb.Scheme.ListDirectoryResponse) => void;

                /**
                 * Callback as used by {@link Ydb.Scheme.V1.SchemeService#describePath}.
                 * @param error Error, if any
                 * @param [response] DescribePathResponse
                 */
                type DescribePathCallback = (error: (Error|null), response?: Ydb.Scheme.DescribePathResponse) => void;

                /**
                 * Callback as used by {@link Ydb.Scheme.V1.SchemeService#modifyPermissions}.
                 * @param error Error, if any
                 * @param [response] ModifyPermissionsResponse
                 */
                type ModifyPermissionsCallback = (error: (Error|null), response?: Ydb.Scheme.ModifyPermissionsResponse) => void;
            }
        }
    }

    /** Namespace Discovery. */
    namespace Discovery {

        /** Namespace V1. */
        namespace V1 {

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

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

                /**
                 * Calls ListEndpoints.
                 * @param request ListEndpointsRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and ListEndpointsResponse
                 */
                public listEndpoints(request: Ydb.Discovery.IListEndpointsRequest, callback: Ydb.Discovery.V1.DiscoveryService.ListEndpointsCallback): void;

                /**
                 * Calls ListEndpoints.
                 * @param request ListEndpointsRequest message or plain object
                 * @returns Promise
                 */
                public listEndpoints(request: Ydb.Discovery.IListEndpointsRequest): Promise<Ydb.Discovery.ListEndpointsResponse>;

                /**
                 * Calls WhoAmI.
                 * @param request WhoAmIRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and WhoAmIResponse
                 */
                public whoAmI(request: Ydb.Discovery.IWhoAmIRequest, callback: Ydb.Discovery.V1.DiscoveryService.WhoAmICallback): void;

                /**
                 * Calls WhoAmI.
                 * @param request WhoAmIRequest message or plain object
                 * @returns Promise
                 */
                public whoAmI(request: Ydb.Discovery.IWhoAmIRequest): Promise<Ydb.Discovery.WhoAmIResponse>;
            }

            namespace DiscoveryService {

                /**
                 * Callback as used by {@link Ydb.Discovery.V1.DiscoveryService#listEndpoints}.
                 * @param error Error, if any
                 * @param [response] ListEndpointsResponse
                 */
                type ListEndpointsCallback = (error: (Error|null), response?: Ydb.Discovery.ListEndpointsResponse) => void;

                /**
                 * Callback as used by {@link Ydb.Discovery.V1.DiscoveryService#whoAmI}.
                 * @param error Error, if any
                 * @param [response] WhoAmIResponse
                 */
                type WhoAmICallback = (error: (Error|null), response?: Ydb.Discovery.WhoAmIResponse) => void;
            }
        }

        /** Properties of a ListEndpointsRequest. */
        interface IListEndpointsRequest {

            /** ListEndpointsRequest database */
            database?: (string|null);

            /** ListEndpointsRequest service */
            service?: (string[]|null);
        }

        /** Represents a ListEndpointsRequest. */
        class ListEndpointsRequest implements IListEndpointsRequest {

            /**
             * Constructs a new ListEndpointsRequest.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Discovery.IListEndpointsRequest);

            /** ListEndpointsRequest database. */
            public database: string;

            /** ListEndpointsRequest service. */
            public service: string[];

            /**
             * Creates a new ListEndpointsRequest instance using the specified properties.
             * @param [properties] Properties to set
             * @returns ListEndpointsRequest instance
             */
            public static create(properties?: Ydb.Discovery.IListEndpointsRequest): Ydb.Discovery.ListEndpointsRequest;

            /**
             * Encodes the specified ListEndpointsRequest message. Does not implicitly {@link Ydb.Discovery.ListEndpointsRequest.verify|verify} messages.
             * @param message ListEndpointsRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Discovery.IListEndpointsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

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

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

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

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

        /** Properties of an EndpointInfo. */
        interface IEndpointInfo {

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

            /** EndpointInfo port */
            port?: (number|null);

            /** EndpointInfo loadFactor */
            loadFactor?: (number|null);

            /** EndpointInfo ssl */
            ssl?: (boolean|null);

            /** EndpointInfo service */
            service?: (string[]|null);

            /** EndpointInfo location */
            location?: (string|null);

            /** EndpointInfo nodeId */
            nodeId?: (number|null);

            /** EndpointInfo ipV4 */
            ipV4?: (string[]|null);

            /** EndpointInfo ipV6 */
            ipV6?: (string[]|null);

            /** EndpointInfo sslTargetNameOverride */
            sslTargetNameOverride?: (string|null);
        }

        /** Represents an EndpointInfo. */
        class EndpointInfo implements IEndpointInfo {

            /**
             * Constructs a new EndpointInfo.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Discovery.IEndpointInfo);

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

            /** EndpointInfo port. */
            public port: number;

            /** EndpointInfo loadFactor. */
            public loadFactor: number;

            /** EndpointInfo ssl. */
            public ssl: boolean;

            /** EndpointInfo service. */
            public service: string[];

            /** EndpointInfo location. */
            public location: string;

            /** EndpointInfo nodeId. */
            public nodeId: number;

            /** EndpointInfo ipV4. */
            public ipV4: string[];

            /** EndpointInfo ipV6. */
            public ipV6: string[];

            /** EndpointInfo sslTargetNameOverride. */
            public sslTargetNameOverride: string;

            /**
             * Creates a new EndpointInfo instance using the specified properties.
             * @param [properties] Properties to set
             * @returns EndpointInfo instance
             */
            public static create(properties?: Ydb.Discovery.IEndpointInfo): Ydb.Discovery.EndpointInfo;

            /**
             * Encodes the specified EndpointInfo message. Does not implicitly {@link Ydb.Discovery.EndpointInfo.verify|verify} messages.
             * @param message EndpointInfo message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Discovery.IEndpointInfo, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

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

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

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

        /** Properties of a ListEndpointsResult. */
        interface IListEndpointsResult {

            /** ListEndpointsResult endpoints */
            endpoints?: (Ydb.Discovery.IEndpointInfo[]|null);

            /** ListEndpointsResult selfLocation */
            selfLocation?: (string|null);
        }

        /** Represents a ListEndpointsResult. */
        class ListEndpointsResult implements IListEndpointsResult {

            /**
             * Constructs a new ListEndpointsResult.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Discovery.IListEndpointsResult);

            /** ListEndpointsResult endpoints. */
            public endpoints: Ydb.Discovery.IEndpointInfo[];

            /** ListEndpointsResult selfLocation. */
            public selfLocation: string;

            /**
             * Creates a new ListEndpointsResult instance using the specified properties.
             * @param [properties] Properties to set
             * @returns ListEndpointsResult instance
             */
            public static create(properties?: Ydb.Discovery.IListEndpointsResult): Ydb.Discovery.ListEndpointsResult;

            /**
             * Encodes the specified ListEndpointsResult message. Does not implicitly {@link Ydb.Discovery.ListEndpointsResult.verify|verify} messages.
             * @param message ListEndpointsResult message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Discovery.IListEndpointsResult, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

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

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

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

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

        /** Properties of a ListEndpointsResponse. */
        interface IListEndpointsResponse {

            /** ListEndpointsResponse operation */
            operation?: (Ydb.Operations.IOperation|null);
        }

        /** Represents a ListEndpointsResponse. */
        class ListEndpointsResponse implements IListEndpointsResponse {

            /**
             * Constructs a new ListEndpointsResponse.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Discovery.IListEndpointsResponse);

            /** ListEndpointsResponse operation. */
            public operation?: (Ydb.Operations.IOperation|null);

            /**
             * Creates a new ListEndpointsResponse instance using the specified properties.
             * @param [properties] Properties to set
             * @returns ListEndpointsResponse instance
             */
            public static create(properties?: Ydb.Discovery.IListEndpointsResponse): Ydb.Discovery.ListEndpointsResponse;

            /**
             * Encodes the specified ListEndpointsResponse message. Does not implicitly {@link Ydb.Discovery.ListEndpointsResponse.verify|verify} messages.
             * @param message ListEndpointsResponse message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Discovery.IListEndpointsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

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

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

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

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

        /** Properties of a WhoAmIRequest. */
        interface IWhoAmIRequest {

            /** WhoAmIRequest includeGroups */
            includeGroups?: (boolean|null);
        }

        /** Represents a WhoAmIRequest. */
        class WhoAmIRequest implements IWhoAmIRequest {

            /**
             * Constructs a new WhoAmIRequest.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Discovery.IWhoAmIRequest);

            /** WhoAmIRequest includeGroups. */
            public includeGroups: boolean;

            /**
             * Creates a new WhoAmIRequest instance using the specified properties.
             * @param [properties] Properties to set
             * @returns WhoAmIRequest instance
             */
            public static create(properties?: Ydb.Discovery.IWhoAmIRequest): Ydb.Discovery.WhoAmIRequest;

            /**
             * Encodes the specified WhoAmIRequest message. Does not implicitly {@link Ydb.Discovery.WhoAmIRequest.verify|verify} messages.
             * @param message WhoAmIRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Discovery.IWhoAmIRequest, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

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

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

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

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

        /** Properties of a WhoAmIResult. */
        interface IWhoAmIResult {

            /** WhoAmIResult user */
            user?: (string|null);

            /** WhoAmIResult groups */
            groups?: (string[]|null);
        }

        /** Represents a WhoAmIResult. */
        class WhoAmIResult implements IWhoAmIResult {

            /**
             * Constructs a new WhoAmIResult.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Discovery.IWhoAmIResult);

            /** WhoAmIResult user. */
            public user: string;

            /** WhoAmIResult groups. */
            public groups: string[];

            /**
             * Creates a new WhoAmIResult instance using the specified properties.
             * @param [properties] Properties to set
             * @returns WhoAmIResult instance
             */
            public static create(properties?: Ydb.Discovery.IWhoAmIResult): Ydb.Discovery.WhoAmIResult;

            /**
             * Encodes the specified WhoAmIResult message. Does not implicitly {@link Ydb.Discovery.WhoAmIResult.verify|verify} messages.
             * @param message WhoAmIResult message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Discovery.IWhoAmIResult, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

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

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

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

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

        /** Properties of a WhoAmIResponse. */
        interface IWhoAmIResponse {

            /** WhoAmIResponse operation */
            operation?: (Ydb.Operations.IOperation|null);
        }

        /** Represents a WhoAmIResponse. */
        class WhoAmIResponse implements IWhoAmIResponse {

            /**
             * Constructs a new WhoAmIResponse.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Discovery.IWhoAmIResponse);

            /** WhoAmIResponse operation. */
            public operation?: (Ydb.Operations.IOperation|null);

            /**
             * Creates a new WhoAmIResponse instance using the specified properties.
             * @param [properties] Properties to set
             * @returns WhoAmIResponse instance
             */
            public static create(properties?: Ydb.Discovery.IWhoAmIResponse): Ydb.Discovery.WhoAmIResponse;

            /**
             * Encodes the specified WhoAmIResponse message. Does not implicitly {@link Ydb.Discovery.WhoAmIResponse.verify|verify} messages.
             * @param message WhoAmIResponse message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Discovery.IWhoAmIResponse, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

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

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

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

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

        /** Properties of a NodeLocation. */
        interface INodeLocation {

            /** NodeLocation dataCenterNum */
            dataCenterNum?: (number|null);

            /** NodeLocation roomNum */
            roomNum?: (number|null);

            /** NodeLocation rackNum */
            rackNum?: (number|null);

            /** NodeLocation bodyNum */
            bodyNum?: (number|null);

            /** NodeLocation body */
            body?: (number|null);

            /** NodeLocation dataCenter */
            dataCenter?: (string|null);

            /** NodeLocation module */
            module?: (string|null);

            /** NodeLocation rack */
            rack?: (string|null);

            /** NodeLocation unit */
            unit?: (string|null);
        }

        /** Represents a NodeLocation. */
        class NodeLocation implements INodeLocation {

            /**
             * Constructs a new NodeLocation.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Discovery.INodeLocation);

            /** NodeLocation dataCenterNum. */
            public dataCenterNum?: (number|null);

            /** NodeLocation roomNum. */
            public roomNum?: (number|null);

            /** NodeLocation rackNum. */
            public rackNum?: (number|null);

            /** NodeLocation bodyNum. */
            public bodyNum?: (number|null);

            /** NodeLocation body. */
            public body?: (number|null);

            /** NodeLocation dataCenter. */
            public dataCenter?: (string|null);

            /** NodeLocation module. */
            public module?: (string|null);

            /** NodeLocation rack. */
            public rack?: (string|null);

            /** NodeLocation unit. */
            public unit?: (string|null);

            /** NodeLocation _dataCenterNum. */
            public _dataCenterNum?: "dataCenterNum";

            /** NodeLocation _roomNum. */
            public _roomNum?: "roomNum";

            /** NodeLocation _rackNum. */
            public _rackNum?: "rackNum";

            /** NodeLocation _bodyNum. */
            public _bodyNum?: "bodyNum";

            /** NodeLocation _body. */
            public _body?: "body";

            /** NodeLocation _dataCenter. */
            public _dataCenter?: "dataCenter";

            /** NodeLocation _module. */
            public _module?: "module";

            /** NodeLocation _rack. */
            public _rack?: "rack";

            /** NodeLocation _unit. */
            public _unit?: "unit";

            /**
             * Creates a new NodeLocation instance using the specified properties.
             * @param [properties] Properties to set
             * @returns NodeLocation instance
             */
            public static create(properties?: Ydb.Discovery.INodeLocation): Ydb.Discovery.NodeLocation;

            /**
             * Encodes the specified NodeLocation message. Does not implicitly {@link Ydb.Discovery.NodeLocation.verify|verify} messages.
             * @param message NodeLocation message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Discovery.INodeLocation, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

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

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

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

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

    /** Namespace Export. */
    namespace Export {

        /** Namespace V1. */
        namespace V1 {

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

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

                /**
                 * Calls ExportToYt.
                 * @param request ExportToYtRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and ExportToYtResponse
                 */
                public exportToYt(request: Ydb.Export.IExportToYtRequest, callback: Ydb.Export.V1.ExportService.ExportToYtCallback): void;

                /**
                 * Calls ExportToYt.
                 * @param request ExportToYtRequest message or plain object
                 * @returns Promise
                 */
                public exportToYt(request: Ydb.Export.IExportToYtRequest): Promise<Ydb.Export.ExportToYtResponse>;

                /**
                 * Calls ExportToS3.
                 * @param request ExportToS3Request message or plain object
                 * @param callback Node-style callback called with the error, if any, and ExportToS3Response
                 */
                public exportToS3(request: Ydb.Export.IExportToS3Request, callback: Ydb.Export.V1.ExportService.ExportToS3Callback): void;

                /**
                 * Calls ExportToS3.
                 * @param request ExportToS3Request message or plain object
                 * @returns Promise
                 */
                public exportToS3(request: Ydb.Export.IExportToS3Request): Promise<Ydb.Export.ExportToS3Response>;
            }

            namespace ExportService {

                /**
                 * Callback as used by {@link Ydb.Export.V1.ExportService#exportToYt}.
                 * @param error Error, if any
                 * @param [response] ExportToYtResponse
                 */
                type ExportToYtCallback = (error: (Error|null), response?: Ydb.Export.ExportToYtResponse) => void;

                /**
                 * Callback as used by {@link Ydb.Export.V1.ExportService#exportToS3}.
                 * @param error Error, if any
                 * @param [response] ExportToS3Response
                 */
                type ExportToS3Callback = (error: (Error|null), response?: Ydb.Export.ExportToS3Response) => void;
            }
        }

        /** Properties of an ExportProgress. */
        interface IExportProgress {
        }

        /** Common */
        class ExportProgress implements IExportProgress {

            /**
             * Constructs a new ExportProgress.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Export.IExportProgress);

            /**
             * Creates a new ExportProgress instance using the specified properties.
             * @param [properties] Properties to set
             * @returns ExportProgress instance
             */
            public static create(properties?: Ydb.Export.IExportProgress): Ydb.Export.ExportProgress;

            /**
             * Encodes the specified ExportProgress message. Does not implicitly {@link Ydb.Export.ExportProgress.verify|verify} messages.
             * @param message ExportProgress message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Export.IExportProgress, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

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

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

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

        namespace ExportProgress {

            /** Progress enum. */
            enum Progress {
                PROGRESS_UNSPECIFIED = 0,
                PROGRESS_PREPARING = 1,
                PROGRESS_TRANSFER_DATA = 2,
                PROGRESS_DONE = 3,
                PROGRESS_CANCELLATION = 4,
                PROGRESS_CANCELLED = 5
            }
        }

        /** Properties of an ExportItemProgress. */
        interface IExportItemProgress {

            /** ExportItemProgress partsTotal */
            partsTotal?: (number|null);

            /** ExportItemProgress partsCompleted */
            partsCompleted?: (number|null);

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

            /** ExportItemProgress endTime */
            endTime?: (google.protobuf.ITimestamp|null);
        }

        /** Represents an ExportItemProgress. */
        class ExportItemProgress implements IExportItemProgress {

            /**
             * Constructs a new ExportItemProgress.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Export.IExportItemProgress);

            /** ExportItemProgress partsTotal. */
            public partsTotal: number;

            /** ExportItemProgress partsCompleted. */
            public partsCompleted: number;

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

            /** ExportItemProgress endTime. */
            public endTime?: (google.protobuf.ITimestamp|null);

            /**
             * Creates a new ExportItemProgress instance using the specified properties.
             * @param [properties] Properties to set
             * @returns ExportItemProgress instance
             */
            public static create(properties?: Ydb.Export.IExportItemProgress): Ydb.Export.ExportItemProgress;

            /**
             * Encodes the specified ExportItemProgress message. Does not implicitly {@link Ydb.Export.ExportItemProgress.verify|verify} messages.
             * @param message ExportItemProgress message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Export.IExportItemProgress, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

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

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

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

        /** Properties of an ExportToYtSettings. */
        interface IExportToYtSettings {

            /** ExportToYtSettings host */
            host?: (string|null);

            /** ExportToYtSettings port */
            port?: (number|null);

            /** ExportToYtSettings token */
            token?: (string|null);

            /** ExportToYtSettings items */
            items?: (Ydb.Export.ExportToYtSettings.IItem[]|null);

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

            /** ExportToYtSettings numberOfRetries */
            numberOfRetries?: (number|null);

            /** ExportToYtSettings useTypeV3 */
            useTypeV3?: (boolean|null);
        }

        /** YT */
        class ExportToYtSettings implements IExportToYtSettings {

            /**
             * Constructs a new ExportToYtSettings.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Export.IExportToYtSettings);

            /** ExportToYtSettings host. */
            public host: string;

            /** ExportToYtSettings port. */
            public port: number;

            /** ExportToYtSettings token. */
            public token: string;

            /** ExportToYtSettings items. */
            public items: Ydb.Export.ExportToYtSettings.IItem[];

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

            /** ExportToYtSettings numberOfRetries. */
            public numberOfRetries: number;

            /** ExportToYtSettings useTypeV3. */
            public useTypeV3: boolean;

            /**
             * Creates a new ExportToYtSettings instance using the specified properties.
             * @param [properties] Properties to set
             * @returns ExportToYtSettings instance
             */
            public static create(properties?: Ydb.Export.IExportToYtSettings): Ydb.Export.ExportToYtSettings;

            /**
             * Encodes the specified ExportToYtSettings message. Does not implicitly {@link Ydb.Export.ExportToYtSettings.verify|verify} messages.
             * @param message ExportToYtSettings message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Export.IExportToYtSettings, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

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

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

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

        namespace ExportToYtSettings {

            /** Properties of an Item. */
            interface IItem {

                /** Item sourcePath */
                sourcePath?: (string|null);

                /** Item destinationPath */
                destinationPath?: (string|null);
            }

            /** Represents an Item. */
            class Item implements IItem {

                /**
                 * Constructs a new Item.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: Ydb.Export.ExportToYtSettings.IItem);

                /** Item sourcePath. */
                public sourcePath: string;

                /** Item destinationPath. */
                public destinationPath: string;

                /**
                 * Creates a new Item instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns Item instance
                 */
                public static create(properties?: Ydb.Export.ExportToYtSettings.IItem): Ydb.Export.ExportToYtSettings.Item;

                /**
                 * Encodes the specified Item message. Does not implicitly {@link Ydb.Export.ExportToYtSettings.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: Ydb.Export.ExportToYtSettings.IItem, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified Item message, length delimited. Does not implicitly {@link Ydb.Export.ExportToYtSettings.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: Ydb.Export.ExportToYtSettings.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): Ydb.Export.ExportToYtSettings.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)): Ydb.Export.ExportToYtSettings.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 }): Ydb.Export.ExportToYtSettings.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: Ydb.Export.ExportToYtSettings.Item, options?: $protobuf.IConversionOptions): { [k: string]: any };

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

        /** Properties of an ExportToYtResult. */
        interface IExportToYtResult {
        }

        /** Represents an ExportToYtResult. */
        class ExportToYtResult implements IExportToYtResult {

            /**
             * Constructs a new ExportToYtResult.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Export.IExportToYtResult);

            /**
             * Creates a new ExportToYtResult instance using the specified properties.
             * @param [properties] Properties to set
             * @returns ExportToYtResult instance
             */
            public static create(properties?: Ydb.Export.IExportToYtResult): Ydb.Export.ExportToYtResult;

            /**
             * Encodes the specified ExportToYtResult message. Does not implicitly {@link Ydb.Export.ExportToYtResult.verify|verify} messages.
             * @param message ExportToYtResult message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Export.IExportToYtResult, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

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

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

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

        /** Properties of an ExportToYtMetadata. */
        interface IExportToYtMetadata {

            /** ExportToYtMetadata settings */
            settings?: (Ydb.Export.IExportToYtSettings|null);

            /** ExportToYtMetadata progress */
            progress?: (Ydb.Export.ExportProgress.Progress|null);

            /** ExportToYtMetadata itemsProgress */
            itemsProgress?: (Ydb.Export.IExportItemProgress[]|null);
        }

        /** Represents an ExportToYtMetadata. */
        class ExportToYtMetadata implements IExportToYtMetadata {

            /**
             * Constructs a new ExportToYtMetadata.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Export.IExportToYtMetadata);

            /** ExportToYtMetadata settings. */
            public settings?: (Ydb.Export.IExportToYtSettings|null);

            /** ExportToYtMetadata progress. */
            public progress: Ydb.Export.ExportProgress.Progress;

            /** ExportToYtMetadata itemsProgress. */
            public itemsProgress: Ydb.Export.IExportItemProgress[];

            /**
             * Creates a new ExportToYtMetadata instance using the specified properties.
             * @param [properties] Properties to set
             * @returns ExportToYtMetadata instance
             */
            public static create(properties?: Ydb.Export.IExportToYtMetadata): Ydb.Export.ExportToYtMetadata;

            /**
             * Encodes the specified ExportToYtMetadata message. Does not implicitly {@link Ydb.Export.ExportToYtMetadata.verify|verify} messages.
             * @param message ExportToYtMetadata message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Export.IExportToYtMetadata, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

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

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

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

        /** Properties of an ExportToYtRequest. */
        interface IExportToYtRequest {

            /** ExportToYtRequest operationParams */
            operationParams?: (Ydb.Operations.IOperationParams|null);

            /** ExportToYtRequest settings */
            settings?: (Ydb.Export.IExportToYtSettings|null);
        }

        /** Represents an ExportToYtRequest. */
        class ExportToYtRequest implements IExportToYtRequest {

            /**
             * Constructs a new ExportToYtRequest.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Export.IExportToYtRequest);

            /** ExportToYtRequest operationParams. */
            public operationParams?: (Ydb.Operations.IOperationParams|null);

            /** ExportToYtRequest settings. */
            public settings?: (Ydb.Export.IExportToYtSettings|null);

            /**
             * Creates a new ExportToYtRequest instance using the specified properties.
             * @param [properties] Properties to set
             * @returns ExportToYtRequest instance
             */
            public static create(properties?: Ydb.Export.IExportToYtRequest): Ydb.Export.ExportToYtRequest;

            /**
             * Encodes the specified ExportToYtRequest message. Does not implicitly {@link Ydb.Export.ExportToYtRequest.verify|verify} messages.
             * @param message ExportToYtRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Export.IExportToYtRequest, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

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

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

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

        /** Properties of an ExportToYtResponse. */
        interface IExportToYtResponse {

            /** ExportToYtResponse operation */
            operation?: (Ydb.Operations.IOperation|null);
        }

        /** Represents an ExportToYtResponse. */
        class ExportToYtResponse implements IExportToYtResponse {

            /**
             * Constructs a new ExportToYtResponse.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Export.IExportToYtResponse);

            /** ExportToYtResponse operation. */
            public operation?: (Ydb.Operations.IOperation|null);

            /**
             * Creates a new ExportToYtResponse instance using the specified properties.
             * @param [properties] Properties to set
             * @returns ExportToYtResponse instance
             */
            public static create(properties?: Ydb.Export.IExportToYtResponse): Ydb.Export.ExportToYtResponse;

            /**
             * Encodes the specified ExportToYtResponse message. Does not implicitly {@link Ydb.Export.ExportToYtResponse.verify|verify} messages.
             * @param message ExportToYtResponse message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Export.IExportToYtResponse, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

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

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

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

        /** Properties of an ExportToS3Settings. */
        interface IExportToS3Settings {

            /** ExportToS3Settings endpoint */
            endpoint?: (string|null);

            /** ExportToS3Settings scheme */
            scheme?: (Ydb.Export.ExportToS3Settings.Scheme|null);

            /** ExportToS3Settings bucket */
            bucket?: (string|null);

            /** ExportToS3Settings accessKey */
            accessKey?: (string|null);

            /** ExportToS3Settings secretKey */
            secretKey?: (string|null);

            /** ExportToS3Settings items */
            items?: (Ydb.Export.ExportToS3Settings.IItem[]|null);

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

            /** ExportToS3Settings numberOfRetries */
            numberOfRetries?: (number|null);

            /** ExportToS3Settings storageClass */
            storageClass?: (Ydb.Export.ExportToS3Settings.StorageClass|null);

            /** ExportToS3Settings compression */
            compression?: (string|null);

            /** ExportToS3Settings region */
            region?: (string|null);

            /** ExportToS3Settings disableVirtualAddressing */
            disableVirtualAddressing?: (boolean|null);
        }

        /** S3 */
        class ExportToS3Settings implements IExportToS3Settings {

            /**
             * Constructs a new ExportToS3Settings.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Export.IExportToS3Settings);

            /** ExportToS3Settings endpoint. */
            public endpoint: string;

            /** ExportToS3Settings scheme. */
            public scheme: Ydb.Export.ExportToS3Settings.Scheme;

            /** ExportToS3Settings bucket. */
            public bucket: string;

            /** ExportToS3Settings accessKey. */
            public accessKey: string;

            /** ExportToS3Settings secretKey. */
            public secretKey: string;

            /** ExportToS3Settings items. */
            public items: Ydb.Export.ExportToS3Settings.IItem[];

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

            /** ExportToS3Settings numberOfRetries. */
            public numberOfRetries: number;

            /** ExportToS3Settings storageClass. */
            public storageClass: Ydb.Export.ExportToS3Settings.StorageClass;

            /** ExportToS3Settings compression. */
            public compression: string;

            /** ExportToS3Settings region. */
            public region: string;

            /** ExportToS3Settings disableVirtualAddressing. */
            public disableVirtualAddressing: boolean;

            /**
             * Creates a new ExportToS3Settings instance using the specified properties.
             * @param [properties] Properties to set
             * @returns ExportToS3Settings instance
             */
            public static create(properties?: Ydb.Export.IExportToS3Settings): Ydb.Export.ExportToS3Settings;

            /**
             * Encodes the specified ExportToS3Settings message. Does not implicitly {@link Ydb.Export.ExportToS3Settings.verify|verify} messages.
             * @param message ExportToS3Settings message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Export.IExportToS3Settings, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

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

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

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

        namespace ExportToS3Settings {

            /** Scheme enum. */
            enum Scheme {
                UNSPECIFIED = 0,
                HTTP = 1,
                HTTPS = 2
            }

            /** StorageClass enum. */
            enum StorageClass {
                STORAGE_CLASS_UNSPECIFIED = 0,
                STANDARD = 1,
                REDUCED_REDUNDANCY = 2,
                STANDARD_IA = 3,
                ONEZONE_IA = 4,
                INTELLIGENT_TIERING = 5,
                GLACIER = 6,
                DEEP_ARCHIVE = 7,
                OUTPOSTS = 8
            }

            /** Properties of an Item. */
            interface IItem {

                /** Item sourcePath */
                sourcePath?: (string|null);

                /** Item destinationPrefix */
                destinationPrefix?: (string|null);
            }

            /** Represents an Item. */
            class Item implements IItem {

                /**
                 * Constructs a new Item.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: Ydb.Export.ExportToS3Settings.IItem);

                /** Item sourcePath. */
                public sourcePath: string;

                /** Item destinationPrefix. */
                public destinationPrefix: string;

                /**
                 * Creates a new Item instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns Item instance
                 */
                public static create(properties?: Ydb.Export.ExportToS3Settings.IItem): Ydb.Export.ExportToS3Settings.Item;

                /**
                 * Encodes the specified Item message. Does not implicitly {@link Ydb.Export.ExportToS3Settings.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: Ydb.Export.ExportToS3Settings.IItem, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified Item message, length delimited. Does not implicitly {@link Ydb.Export.ExportToS3Settings.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: Ydb.Export.ExportToS3Settings.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): Ydb.Export.ExportToS3Settings.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)): Ydb.Export.ExportToS3Settings.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 }): Ydb.Export.ExportToS3Settings.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: Ydb.Export.ExportToS3Settings.Item, options?: $protobuf.IConversionOptions): { [k: string]: any };

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

        /** Properties of an ExportToS3Result. */
        interface IExportToS3Result {
        }

        /** Represents an ExportToS3Result. */
        class ExportToS3Result implements IExportToS3Result {

            /**
             * Constructs a new ExportToS3Result.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Export.IExportToS3Result);

            /**
             * Creates a new ExportToS3Result instance using the specified properties.
             * @param [properties] Properties to set
             * @returns ExportToS3Result instance
             */
            public static create(properties?: Ydb.Export.IExportToS3Result): Ydb.Export.ExportToS3Result;

            /**
             * Encodes the specified ExportToS3Result message. Does not implicitly {@link Ydb.Export.ExportToS3Result.verify|verify} messages.
             * @param message ExportToS3Result message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Export.IExportToS3Result, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

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

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

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

        /** Properties of an ExportToS3Metadata. */
        interface IExportToS3Metadata {

            /** ExportToS3Metadata settings */
            settings?: (Ydb.Export.IExportToS3Settings|null);

            /** ExportToS3Metadata progress */
            progress?: (Ydb.Export.ExportProgress.Progress|null);

            /** ExportToS3Metadata itemsProgress */
            itemsProgress?: (Ydb.Export.IExportItemProgress[]|null);
        }

        /** Represents an ExportToS3Metadata. */
        class ExportToS3Metadata implements IExportToS3Metadata {

            /**
             * Constructs a new ExportToS3Metadata.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Export.IExportToS3Metadata);

            /** ExportToS3Metadata settings. */
            public settings?: (Ydb.Export.IExportToS3Settings|null);

            /** ExportToS3Metadata progress. */
            public progress: Ydb.Export.ExportProgress.Progress;

            /** ExportToS3Metadata itemsProgress. */
            public itemsProgress: Ydb.Export.IExportItemProgress[];

            /**
             * Creates a new ExportToS3Metadata instance using the specified properties.
             * @param [properties] Properties to set
             * @returns ExportToS3Metadata instance
             */
            public static create(properties?: Ydb.Export.IExportToS3Metadata): Ydb.Export.ExportToS3Metadata;

            /**
             * Encodes the specified ExportToS3Metadata message. Does not implicitly {@link Ydb.Export.ExportToS3Metadata.verify|verify} messages.
             * @param message ExportToS3Metadata message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Export.IExportToS3Metadata, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

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

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

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

        /** Properties of an ExportToS3Request. */
        interface IExportToS3Request {

            /** ExportToS3Request operationParams */
            operationParams?: (Ydb.Operations.IOperationParams|null);

            /** ExportToS3Request settings */
            settings?: (Ydb.Export.IExportToS3Settings|null);
        }

        /** Represents an ExportToS3Request. */
        class ExportToS3Request implements IExportToS3Request {

            /**
             * Constructs a new ExportToS3Request.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Export.IExportToS3Request);

            /** ExportToS3Request operationParams. */
            public operationParams?: (Ydb.Operations.IOperationParams|null);

            /** ExportToS3Request settings. */
            public settings?: (Ydb.Export.IExportToS3Settings|null);

            /**
             * Creates a new ExportToS3Request instance using the specified properties.
             * @param [properties] Properties to set
             * @returns ExportToS3Request instance
             */
            public static create(properties?: Ydb.Export.IExportToS3Request): Ydb.Export.ExportToS3Request;

            /**
             * Encodes the specified ExportToS3Request message. Does not implicitly {@link Ydb.Export.ExportToS3Request.verify|verify} messages.
             * @param message ExportToS3Request message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Export.IExportToS3Request, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

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

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

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

        /** Properties of an ExportToS3Response. */
        interface IExportToS3Response {

            /** ExportToS3Response operation */
            operation?: (Ydb.Operations.IOperation|null);
        }

        /** Represents an ExportToS3Response. */
        class ExportToS3Response implements IExportToS3Response {

            /**
             * Constructs a new ExportToS3Response.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Export.IExportToS3Response);

            /** ExportToS3Response operation. */
            public operation?: (Ydb.Operations.IOperation|null);

            /**
             * Creates a new ExportToS3Response instance using the specified properties.
             * @param [properties] Properties to set
             * @returns ExportToS3Response instance
             */
            public static create(properties?: Ydb.Export.IExportToS3Response): Ydb.Export.ExportToS3Response;

            /**
             * Encodes the specified ExportToS3Response message. Does not implicitly {@link Ydb.Export.ExportToS3Response.verify|verify} messages.
             * @param message ExportToS3Response message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Export.IExportToS3Response, writer?: $protobuf.Writer): $protobuf.Writer;

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

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

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

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

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

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

    /** Namespace FederationDiscovery. */
    namespace FederationDiscovery {

        /** Namespace V1. */
        namespace V1 {

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

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

                /**
                 * Calls ListFederationDatabases.
                 * @param request ListFederationDatabasesRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and ListFederationDatabasesResponse
                 */
                public listFederationDatabases(request: Ydb.FederationDiscovery.IListFederationDatabasesRequest, callback: Ydb.FederationDiscovery.V1.FederationDiscoveryService.ListFederationDatabasesCallback): void;

                /**
                 * Calls ListFederationDatabases.
                 * @param request ListFederationDatabasesRequest message or plain object
                 * @returns Promise
                 */
                public listFederationDatabases(request: Ydb.FederationDiscovery.IListFederationDatabasesRequest): Promise<Ydb.FederationDiscovery.ListFederationDatabasesResponse>;
            }

            namespace FederationDiscoveryService {

                /**
                 * Callback as used by {@link Ydb.FederationDiscovery.V1.FederationDiscoveryService#listFederationDatabases}.
                 * @param error Error, if any
                 * @param [response] ListFederationDatabasesResponse
                 */
                type ListFederationDatabasesCallback = (error: (Error|null), response?: Ydb.FederationDiscovery.ListFederationDatabasesResponse) => void;
            }
        }

        /** Properties of a DatabaseInfo. */
        interface IDatabaseInfo {

            /** DatabaseInfo name */
            name?: (string|null);

            /** DatabaseInfo path */
            path?: (string|null);

            /** DatabaseInfo id */
            id?: (string|null);

            /** DatabaseInfo endpoint */
            endpoint?: (string|null);

            /** DatabaseInfo location */
            location?: (string|null);

            /** DatabaseInfo status */
            status?: (Ydb.FederationDiscovery.DatabaseInfo.Status|null);

            /** DatabaseInfo weight */
            weight?: (number|Long|null);
        }

        /** Represents a DatabaseInfo. */
        class DatabaseInfo implements IDatabaseInfo {

            /**
             * Constructs a new DatabaseInfo.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.FederationDiscovery.IDatabaseInfo);

            /** DatabaseInfo name. */
            public name: string;

            /** DatabaseInfo path. */
            public path: string;

            /** DatabaseInfo id. */
            public id: string;

            /** DatabaseInfo endpoint. */
            public endpoint: string;

            /** DatabaseInfo location. */
            public location: string;

            /** DatabaseInfo status. */
            public status: Ydb.FederationDiscovery.DatabaseInfo.Status;

            /** DatabaseInfo weight. */
            public weight: (number|Long);

            /**
             * Creates a new DatabaseInfo instance using the specified properties.
             * @param [properties] Properties to set
             * @returns DatabaseInfo instance
             */
            public static create(properties?: Ydb.FederationDiscovery.IDatabaseInfo): Ydb.FederationDiscovery.DatabaseInfo;

            /**
             * Encodes the specified DatabaseInfo message. Does not implicitly {@link Ydb.FederationDiscovery.DatabaseInfo.verify|verify} messages.
             * @param message DatabaseInfo message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.FederationDiscovery.IDatabaseInfo, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified DatabaseInfo message, length delimited. Does not implicitly {@link Ydb.FederationDiscovery.DatabaseInfo.verify|verify} messages.
             * @param message DatabaseInfo message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.FederationDiscovery.IDatabaseInfo, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a DatabaseInfo message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns DatabaseInfo
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.FederationDiscovery.DatabaseInfo;

            /**
             * Decodes a DatabaseInfo message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns DatabaseInfo
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.FederationDiscovery.DatabaseInfo;

            /**
             * Verifies a DatabaseInfo message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a DatabaseInfo message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns DatabaseInfo
             */
            public static fromObject(object: { [k: string]: any }): Ydb.FederationDiscovery.DatabaseInfo;

            /**
             * Creates a plain object from a DatabaseInfo message. Also converts values to other types if specified.
             * @param message DatabaseInfo
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.FederationDiscovery.DatabaseInfo, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this DatabaseInfo to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        namespace DatabaseInfo {

            /** Status enum. */
            enum Status {
                STATUS_UNSPECIFIED = 0,
                AVAILABLE = 1,
                READ_ONLY = 2,
                UNAVAILABLE = 3
            }
        }

        /** Properties of a ListFederationDatabasesRequest. */
        interface IListFederationDatabasesRequest {
        }

        /** Represents a ListFederationDatabasesRequest. */
        class ListFederationDatabasesRequest implements IListFederationDatabasesRequest {

            /**
             * Constructs a new ListFederationDatabasesRequest.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.FederationDiscovery.IListFederationDatabasesRequest);

            /**
             * Creates a new ListFederationDatabasesRequest instance using the specified properties.
             * @param [properties] Properties to set
             * @returns ListFederationDatabasesRequest instance
             */
            public static create(properties?: Ydb.FederationDiscovery.IListFederationDatabasesRequest): Ydb.FederationDiscovery.ListFederationDatabasesRequest;

            /**
             * Encodes the specified ListFederationDatabasesRequest message. Does not implicitly {@link Ydb.FederationDiscovery.ListFederationDatabasesRequest.verify|verify} messages.
             * @param message ListFederationDatabasesRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.FederationDiscovery.IListFederationDatabasesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified ListFederationDatabasesRequest message, length delimited. Does not implicitly {@link Ydb.FederationDiscovery.ListFederationDatabasesRequest.verify|verify} messages.
             * @param message ListFederationDatabasesRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.FederationDiscovery.IListFederationDatabasesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a ListFederationDatabasesRequest message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns ListFederationDatabasesRequest
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.FederationDiscovery.ListFederationDatabasesRequest;

            /**
             * Decodes a ListFederationDatabasesRequest message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns ListFederationDatabasesRequest
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.FederationDiscovery.ListFederationDatabasesRequest;

            /**
             * Verifies a ListFederationDatabasesRequest message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a ListFederationDatabasesRequest message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns ListFederationDatabasesRequest
             */
            public static fromObject(object: { [k: string]: any }): Ydb.FederationDiscovery.ListFederationDatabasesRequest;

            /**
             * Creates a plain object from a ListFederationDatabasesRequest message. Also converts values to other types if specified.
             * @param message ListFederationDatabasesRequest
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.FederationDiscovery.ListFederationDatabasesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this ListFederationDatabasesRequest to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a ListFederationDatabasesResponse. */
        interface IListFederationDatabasesResponse {

            /** ListFederationDatabasesResponse operation */
            operation?: (Ydb.Operations.IOperation|null);
        }

        /** Represents a ListFederationDatabasesResponse. */
        class ListFederationDatabasesResponse implements IListFederationDatabasesResponse {

            /**
             * Constructs a new ListFederationDatabasesResponse.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.FederationDiscovery.IListFederationDatabasesResponse);

            /** ListFederationDatabasesResponse operation. */
            public operation?: (Ydb.Operations.IOperation|null);

            /**
             * Creates a new ListFederationDatabasesResponse instance using the specified properties.
             * @param [properties] Properties to set
             * @returns ListFederationDatabasesResponse instance
             */
            public static create(properties?: Ydb.FederationDiscovery.IListFederationDatabasesResponse): Ydb.FederationDiscovery.ListFederationDatabasesResponse;

            /**
             * Encodes the specified ListFederationDatabasesResponse message. Does not implicitly {@link Ydb.FederationDiscovery.ListFederationDatabasesResponse.verify|verify} messages.
             * @param message ListFederationDatabasesResponse message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.FederationDiscovery.IListFederationDatabasesResponse, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified ListFederationDatabasesResponse message, length delimited. Does not implicitly {@link Ydb.FederationDiscovery.ListFederationDatabasesResponse.verify|verify} messages.
             * @param message ListFederationDatabasesResponse message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.FederationDiscovery.IListFederationDatabasesResponse, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a ListFederationDatabasesResponse message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns ListFederationDatabasesResponse
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.FederationDiscovery.ListFederationDatabasesResponse;

            /**
             * Decodes a ListFederationDatabasesResponse message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns ListFederationDatabasesResponse
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.FederationDiscovery.ListFederationDatabasesResponse;

            /**
             * Verifies a ListFederationDatabasesResponse message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a ListFederationDatabasesResponse message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns ListFederationDatabasesResponse
             */
            public static fromObject(object: { [k: string]: any }): Ydb.FederationDiscovery.ListFederationDatabasesResponse;

            /**
             * Creates a plain object from a ListFederationDatabasesResponse message. Also converts values to other types if specified.
             * @param message ListFederationDatabasesResponse
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.FederationDiscovery.ListFederationDatabasesResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this ListFederationDatabasesResponse to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a ListFederationDatabasesResult. */
        interface IListFederationDatabasesResult {

            /** ListFederationDatabasesResult controlPlaneEndpoint */
            controlPlaneEndpoint?: (string|null);

            /** ListFederationDatabasesResult federationDatabases */
            federationDatabases?: (Ydb.FederationDiscovery.IDatabaseInfo[]|null);

            /** ListFederationDatabasesResult selfLocation */
            selfLocation?: (string|null);
        }

        /** Represents a ListFederationDatabasesResult. */
        class ListFederationDatabasesResult implements IListFederationDatabasesResult {

            /**
             * Constructs a new ListFederationDatabasesResult.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.FederationDiscovery.IListFederationDatabasesResult);

            /** ListFederationDatabasesResult controlPlaneEndpoint. */
            public controlPlaneEndpoint: string;

            /** ListFederationDatabasesResult federationDatabases. */
            public federationDatabases: Ydb.FederationDiscovery.IDatabaseInfo[];

            /** ListFederationDatabasesResult selfLocation. */
            public selfLocation: string;

            /**
             * Creates a new ListFederationDatabasesResult instance using the specified properties.
             * @param [properties] Properties to set
             * @returns ListFederationDatabasesResult instance
             */
            public static create(properties?: Ydb.FederationDiscovery.IListFederationDatabasesResult): Ydb.FederationDiscovery.ListFederationDatabasesResult;

            /**
             * Encodes the specified ListFederationDatabasesResult message. Does not implicitly {@link Ydb.FederationDiscovery.ListFederationDatabasesResult.verify|verify} messages.
             * @param message ListFederationDatabasesResult message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.FederationDiscovery.IListFederationDatabasesResult, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified ListFederationDatabasesResult message, length delimited. Does not implicitly {@link Ydb.FederationDiscovery.ListFederationDatabasesResult.verify|verify} messages.
             * @param message ListFederationDatabasesResult message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.FederationDiscovery.IListFederationDatabasesResult, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a ListFederationDatabasesResult message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns ListFederationDatabasesResult
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.FederationDiscovery.ListFederationDatabasesResult;

            /**
             * Decodes a ListFederationDatabasesResult message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns ListFederationDatabasesResult
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.FederationDiscovery.ListFederationDatabasesResult;

            /**
             * Verifies a ListFederationDatabasesResult message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a ListFederationDatabasesResult message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns ListFederationDatabasesResult
             */
            public static fromObject(object: { [k: string]: any }): Ydb.FederationDiscovery.ListFederationDatabasesResult;

            /**
             * Creates a plain object from a ListFederationDatabasesResult message. Also converts values to other types if specified.
             * @param message ListFederationDatabasesResult
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.FederationDiscovery.ListFederationDatabasesResult, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this ListFederationDatabasesResult to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }
    }

    /** Namespace Import. */
    namespace Import {

        /** Namespace V1. */
        namespace V1 {

            /** Represents an ImportService */
            class ImportService extends $protobuf.rpc.Service {

                /**
                 * Constructs a new ImportService 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 ImportService 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): ImportService;

                /**
                 * Calls ImportFromS3.
                 * @param request ImportFromS3Request message or plain object
                 * @param callback Node-style callback called with the error, if any, and ImportFromS3Response
                 */
                public importFromS3(request: Ydb.Import.IImportFromS3Request, callback: Ydb.Import.V1.ImportService.ImportFromS3Callback): void;

                /**
                 * Calls ImportFromS3.
                 * @param request ImportFromS3Request message or plain object
                 * @returns Promise
                 */
                public importFromS3(request: Ydb.Import.IImportFromS3Request): Promise<Ydb.Import.ImportFromS3Response>;

                /**
                 * Calls ImportData.
                 * @param request ImportDataRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and ImportDataResponse
                 */
                public importData(request: Ydb.Import.IImportDataRequest, callback: Ydb.Import.V1.ImportService.ImportDataCallback): void;

                /**
                 * Calls ImportData.
                 * @param request ImportDataRequest message or plain object
                 * @returns Promise
                 */
                public importData(request: Ydb.Import.IImportDataRequest): Promise<Ydb.Import.ImportDataResponse>;
            }

            namespace ImportService {

                /**
                 * Callback as used by {@link Ydb.Import.V1.ImportService#importFromS3}.
                 * @param error Error, if any
                 * @param [response] ImportFromS3Response
                 */
                type ImportFromS3Callback = (error: (Error|null), response?: Ydb.Import.ImportFromS3Response) => void;

                /**
                 * Callback as used by {@link Ydb.Import.V1.ImportService#importData}.
                 * @param error Error, if any
                 * @param [response] ImportDataResponse
                 */
                type ImportDataCallback = (error: (Error|null), response?: Ydb.Import.ImportDataResponse) => void;
            }
        }

        /** Properties of an ImportProgress. */
        interface IImportProgress {
        }

        /** Common */
        class ImportProgress implements IImportProgress {

            /**
             * Constructs a new ImportProgress.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Import.IImportProgress);

            /**
             * Creates a new ImportProgress instance using the specified properties.
             * @param [properties] Properties to set
             * @returns ImportProgress instance
             */
            public static create(properties?: Ydb.Import.IImportProgress): Ydb.Import.ImportProgress;

            /**
             * Encodes the specified ImportProgress message. Does not implicitly {@link Ydb.Import.ImportProgress.verify|verify} messages.
             * @param message ImportProgress message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Import.IImportProgress, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified ImportProgress message, length delimited. Does not implicitly {@link Ydb.Import.ImportProgress.verify|verify} messages.
             * @param message ImportProgress message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Import.IImportProgress, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes an ImportProgress message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns ImportProgress
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Import.ImportProgress;

            /**
             * Decodes an ImportProgress message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns ImportProgress
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Import.ImportProgress;

            /**
             * Verifies an ImportProgress message.
             * @param message Plain 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 ImportProgress message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns ImportProgress
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Import.ImportProgress;

            /**
             * Creates a plain object from an ImportProgress message. Also converts values to other types if specified.
             * @param message ImportProgress
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Import.ImportProgress, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this ImportProgress to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        namespace ImportProgress {

            /** Progress enum. */
            enum Progress {
                PROGRESS_UNSPECIFIED = 0,
                PROGRESS_PREPARING = 1,
                PROGRESS_TRANSFER_DATA = 2,
                PROGRESS_BUILD_INDEXES = 3,
                PROGRESS_DONE = 4,
                PROGRESS_CANCELLATION = 5,
                PROGRESS_CANCELLED = 6
            }
        }

        /** Properties of an ImportItemProgress. */
        interface IImportItemProgress {

            /** ImportItemProgress partsTotal */
            partsTotal?: (number|null);

            /** ImportItemProgress partsCompleted */
            partsCompleted?: (number|null);

            /** ImportItemProgress startTime */
            startTime?: (google.protobuf.ITimestamp|null);

            /** ImportItemProgress endTime */
            endTime?: (google.protobuf.ITimestamp|null);
        }

        /** Represents an ImportItemProgress. */
        class ImportItemProgress implements IImportItemProgress {

            /**
             * Constructs a new ImportItemProgress.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Import.IImportItemProgress);

            /** ImportItemProgress partsTotal. */
            public partsTotal: number;

            /** ImportItemProgress partsCompleted. */
            public partsCompleted: number;

            /** ImportItemProgress startTime. */
            public startTime?: (google.protobuf.ITimestamp|null);

            /** ImportItemProgress endTime. */
            public endTime?: (google.protobuf.ITimestamp|null);

            /**
             * Creates a new ImportItemProgress instance using the specified properties.
             * @param [properties] Properties to set
             * @returns ImportItemProgress instance
             */
            public static create(properties?: Ydb.Import.IImportItemProgress): Ydb.Import.ImportItemProgress;

            /**
             * Encodes the specified ImportItemProgress message. Does not implicitly {@link Ydb.Import.ImportItemProgress.verify|verify} messages.
             * @param message ImportItemProgress message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Import.IImportItemProgress, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified ImportItemProgress message, length delimited. Does not implicitly {@link Ydb.Import.ImportItemProgress.verify|verify} messages.
             * @param message ImportItemProgress message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Import.IImportItemProgress, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes an ImportItemProgress message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns ImportItemProgress
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Import.ImportItemProgress;

            /**
             * Decodes an ImportItemProgress message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns ImportItemProgress
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Import.ImportItemProgress;

            /**
             * Verifies an ImportItemProgress message.
             * @param message Plain 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 ImportItemProgress message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns ImportItemProgress
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Import.ImportItemProgress;

            /**
             * Creates a plain object from an ImportItemProgress message. Also converts values to other types if specified.
             * @param message ImportItemProgress
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Import.ImportItemProgress, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this ImportItemProgress to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of an ImportFromS3Settings. */
        interface IImportFromS3Settings {

            /** ImportFromS3Settings endpoint */
            endpoint?: (string|null);

            /** ImportFromS3Settings scheme */
            scheme?: (Ydb.Import.ImportFromS3Settings.Scheme|null);

            /** ImportFromS3Settings bucket */
            bucket?: (string|null);

            /** ImportFromS3Settings accessKey */
            accessKey?: (string|null);

            /** ImportFromS3Settings secretKey */
            secretKey?: (string|null);

            /** ImportFromS3Settings items */
            items?: (Ydb.Import.ImportFromS3Settings.IItem[]|null);

            /** ImportFromS3Settings description */
            description?: (string|null);

            /** ImportFromS3Settings numberOfRetries */
            numberOfRetries?: (number|null);

            /** ImportFromS3Settings region */
            region?: (string|null);

            /** ImportFromS3Settings disableVirtualAddressing */
            disableVirtualAddressing?: (boolean|null);
        }

        /** S3 */
        class ImportFromS3Settings implements IImportFromS3Settings {

            /**
             * Constructs a new ImportFromS3Settings.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Import.IImportFromS3Settings);

            /** ImportFromS3Settings endpoint. */
            public endpoint: string;

            /** ImportFromS3Settings scheme. */
            public scheme: Ydb.Import.ImportFromS3Settings.Scheme;

            /** ImportFromS3Settings bucket. */
            public bucket: string;

            /** ImportFromS3Settings accessKey. */
            public accessKey: string;

            /** ImportFromS3Settings secretKey. */
            public secretKey: string;

            /** ImportFromS3Settings items. */
            public items: Ydb.Import.ImportFromS3Settings.IItem[];

            /** ImportFromS3Settings description. */
            public description: string;

            /** ImportFromS3Settings numberOfRetries. */
            public numberOfRetries: number;

            /** ImportFromS3Settings region. */
            public region: string;

            /** ImportFromS3Settings disableVirtualAddressing. */
            public disableVirtualAddressing: boolean;

            /**
             * Creates a new ImportFromS3Settings instance using the specified properties.
             * @param [properties] Properties to set
             * @returns ImportFromS3Settings instance
             */
            public static create(properties?: Ydb.Import.IImportFromS3Settings): Ydb.Import.ImportFromS3Settings;

            /**
             * Encodes the specified ImportFromS3Settings message. Does not implicitly {@link Ydb.Import.ImportFromS3Settings.verify|verify} messages.
             * @param message ImportFromS3Settings message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Import.IImportFromS3Settings, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified ImportFromS3Settings message, length delimited. Does not implicitly {@link Ydb.Import.ImportFromS3Settings.verify|verify} messages.
             * @param message ImportFromS3Settings message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Import.IImportFromS3Settings, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes an ImportFromS3Settings message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns ImportFromS3Settings
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Import.ImportFromS3Settings;

            /**
             * Decodes an ImportFromS3Settings message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns ImportFromS3Settings
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Import.ImportFromS3Settings;

            /**
             * Verifies an ImportFromS3Settings message.
             * @param message Plain 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 ImportFromS3Settings message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns ImportFromS3Settings
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Import.ImportFromS3Settings;

            /**
             * Creates a plain object from an ImportFromS3Settings message. Also converts values to other types if specified.
             * @param message ImportFromS3Settings
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Import.ImportFromS3Settings, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this ImportFromS3Settings to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        namespace ImportFromS3Settings {

            /** Scheme enum. */
            enum Scheme {
                UNSPECIFIED = 0,
                HTTP = 1,
                HTTPS = 2
            }

            /** Properties of an Item. */
            interface IItem {

                /** Item sourcePrefix */
                sourcePrefix?: (string|null);

                /** Item destinationPath */
                destinationPath?: (string|null);
            }

            /** Represents an Item. */
            class Item implements IItem {

                /**
                 * Constructs a new Item.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: Ydb.Import.ImportFromS3Settings.IItem);

                /** Item sourcePrefix. */
                public sourcePrefix: string;

                /** Item destinationPath. */
                public destinationPath: string;

                /**
                 * Creates a new Item instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns Item instance
                 */
                public static create(properties?: Ydb.Import.ImportFromS3Settings.IItem): Ydb.Import.ImportFromS3Settings.Item;

                /**
                 * Encodes the specified Item message. Does not implicitly {@link Ydb.Import.ImportFromS3Settings.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: Ydb.Import.ImportFromS3Settings.IItem, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified Item message, length delimited. Does not implicitly {@link Ydb.Import.ImportFromS3Settings.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: Ydb.Import.ImportFromS3Settings.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): Ydb.Import.ImportFromS3Settings.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)): Ydb.Import.ImportFromS3Settings.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 }): Ydb.Import.ImportFromS3Settings.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: Ydb.Import.ImportFromS3Settings.Item, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this Item to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };
            }
        }

        /** Properties of an ImportFromS3Result. */
        interface IImportFromS3Result {
        }

        /** Represents an ImportFromS3Result. */
        class ImportFromS3Result implements IImportFromS3Result {

            /**
             * Constructs a new ImportFromS3Result.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Import.IImportFromS3Result);

            /**
             * Creates a new ImportFromS3Result instance using the specified properties.
             * @param [properties] Properties to set
             * @returns ImportFromS3Result instance
             */
            public static create(properties?: Ydb.Import.IImportFromS3Result): Ydb.Import.ImportFromS3Result;

            /**
             * Encodes the specified ImportFromS3Result message. Does not implicitly {@link Ydb.Import.ImportFromS3Result.verify|verify} messages.
             * @param message ImportFromS3Result message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Import.IImportFromS3Result, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified ImportFromS3Result message, length delimited. Does not implicitly {@link Ydb.Import.ImportFromS3Result.verify|verify} messages.
             * @param message ImportFromS3Result message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Import.IImportFromS3Result, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes an ImportFromS3Result message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns ImportFromS3Result
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Import.ImportFromS3Result;

            /**
             * Decodes an ImportFromS3Result message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns ImportFromS3Result
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Import.ImportFromS3Result;

            /**
             * Verifies an ImportFromS3Result message.
             * @param message Plain 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 ImportFromS3Result message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns ImportFromS3Result
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Import.ImportFromS3Result;

            /**
             * Creates a plain object from an ImportFromS3Result message. Also converts values to other types if specified.
             * @param message ImportFromS3Result
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Import.ImportFromS3Result, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this ImportFromS3Result to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of an ImportFromS3Metadata. */
        interface IImportFromS3Metadata {

            /** ImportFromS3Metadata settings */
            settings?: (Ydb.Import.IImportFromS3Settings|null);

            /** ImportFromS3Metadata progress */
            progress?: (Ydb.Import.ImportProgress.Progress|null);

            /** ImportFromS3Metadata itemsProgress */
            itemsProgress?: (Ydb.Import.IImportItemProgress[]|null);
        }

        /** Represents an ImportFromS3Metadata. */
        class ImportFromS3Metadata implements IImportFromS3Metadata {

            /**
             * Constructs a new ImportFromS3Metadata.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Import.IImportFromS3Metadata);

            /** ImportFromS3Metadata settings. */
            public settings?: (Ydb.Import.IImportFromS3Settings|null);

            /** ImportFromS3Metadata progress. */
            public progress: Ydb.Import.ImportProgress.Progress;

            /** ImportFromS3Metadata itemsProgress. */
            public itemsProgress: Ydb.Import.IImportItemProgress[];

            /**
             * Creates a new ImportFromS3Metadata instance using the specified properties.
             * @param [properties] Properties to set
             * @returns ImportFromS3Metadata instance
             */
            public static create(properties?: Ydb.Import.IImportFromS3Metadata): Ydb.Import.ImportFromS3Metadata;

            /**
             * Encodes the specified ImportFromS3Metadata message. Does not implicitly {@link Ydb.Import.ImportFromS3Metadata.verify|verify} messages.
             * @param message ImportFromS3Metadata message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Import.IImportFromS3Metadata, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified ImportFromS3Metadata message, length delimited. Does not implicitly {@link Ydb.Import.ImportFromS3Metadata.verify|verify} messages.
             * @param message ImportFromS3Metadata message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Import.IImportFromS3Metadata, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes an ImportFromS3Metadata message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns ImportFromS3Metadata
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Import.ImportFromS3Metadata;

            /**
             * Decodes an ImportFromS3Metadata message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns ImportFromS3Metadata
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Import.ImportFromS3Metadata;

            /**
             * Verifies an ImportFromS3Metadata message.
             * @param message Plain 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 ImportFromS3Metadata message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns ImportFromS3Metadata
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Import.ImportFromS3Metadata;

            /**
             * Creates a plain object from an ImportFromS3Metadata message. Also converts values to other types if specified.
             * @param message ImportFromS3Metadata
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Import.ImportFromS3Metadata, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this ImportFromS3Metadata to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of an ImportFromS3Request. */
        interface IImportFromS3Request {

            /** ImportFromS3Request operationParams */
            operationParams?: (Ydb.Operations.IOperationParams|null);

            /** ImportFromS3Request settings */
            settings?: (Ydb.Import.IImportFromS3Settings|null);
        }

        /** Represents an ImportFromS3Request. */
        class ImportFromS3Request implements IImportFromS3Request {

            /**
             * Constructs a new ImportFromS3Request.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Import.IImportFromS3Request);

            /** ImportFromS3Request operationParams. */
            public operationParams?: (Ydb.Operations.IOperationParams|null);

            /** ImportFromS3Request settings. */
            public settings?: (Ydb.Import.IImportFromS3Settings|null);

            /**
             * Creates a new ImportFromS3Request instance using the specified properties.
             * @param [properties] Properties to set
             * @returns ImportFromS3Request instance
             */
            public static create(properties?: Ydb.Import.IImportFromS3Request): Ydb.Import.ImportFromS3Request;

            /**
             * Encodes the specified ImportFromS3Request message. Does not implicitly {@link Ydb.Import.ImportFromS3Request.verify|verify} messages.
             * @param message ImportFromS3Request message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Import.IImportFromS3Request, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified ImportFromS3Request message, length delimited. Does not implicitly {@link Ydb.Import.ImportFromS3Request.verify|verify} messages.
             * @param message ImportFromS3Request message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Import.IImportFromS3Request, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes an ImportFromS3Request message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns ImportFromS3Request
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Import.ImportFromS3Request;

            /**
             * Decodes an ImportFromS3Request message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns ImportFromS3Request
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Import.ImportFromS3Request;

            /**
             * Verifies an ImportFromS3Request message.
             * @param message Plain 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 ImportFromS3Request message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns ImportFromS3Request
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Import.ImportFromS3Request;

            /**
             * Creates a plain object from an ImportFromS3Request message. Also converts values to other types if specified.
             * @param message ImportFromS3Request
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Import.ImportFromS3Request, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this ImportFromS3Request to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of an ImportFromS3Response. */
        interface IImportFromS3Response {

            /** ImportFromS3Response operation */
            operation?: (Ydb.Operations.IOperation|null);
        }

        /** Represents an ImportFromS3Response. */
        class ImportFromS3Response implements IImportFromS3Response {

            /**
             * Constructs a new ImportFromS3Response.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Import.IImportFromS3Response);

            /** ImportFromS3Response operation. */
            public operation?: (Ydb.Operations.IOperation|null);

            /**
             * Creates a new ImportFromS3Response instance using the specified properties.
             * @param [properties] Properties to set
             * @returns ImportFromS3Response instance
             */
            public static create(properties?: Ydb.Import.IImportFromS3Response): Ydb.Import.ImportFromS3Response;

            /**
             * Encodes the specified ImportFromS3Response message. Does not implicitly {@link Ydb.Import.ImportFromS3Response.verify|verify} messages.
             * @param message ImportFromS3Response message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Import.IImportFromS3Response, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified ImportFromS3Response message, length delimited. Does not implicitly {@link Ydb.Import.ImportFromS3Response.verify|verify} messages.
             * @param message ImportFromS3Response message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Import.IImportFromS3Response, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes an ImportFromS3Response message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns ImportFromS3Response
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Import.ImportFromS3Response;

            /**
             * Decodes an ImportFromS3Response message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns ImportFromS3Response
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Import.ImportFromS3Response;

            /**
             * Verifies an ImportFromS3Response message.
             * @param message Plain 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 ImportFromS3Response message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns ImportFromS3Response
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Import.ImportFromS3Response;

            /**
             * Creates a plain object from an ImportFromS3Response message. Also converts values to other types if specified.
             * @param message ImportFromS3Response
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Import.ImportFromS3Response, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this ImportFromS3Response to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a YdbDumpFormat. */
        interface IYdbDumpFormat {

            /** YdbDumpFormat columns */
            columns?: (string[]|null);
        }

        /** Data */
        class YdbDumpFormat implements IYdbDumpFormat {

            /**
             * Constructs a new YdbDumpFormat.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Import.IYdbDumpFormat);

            /** YdbDumpFormat columns. */
            public columns: string[];

            /**
             * Creates a new YdbDumpFormat instance using the specified properties.
             * @param [properties] Properties to set
             * @returns YdbDumpFormat instance
             */
            public static create(properties?: Ydb.Import.IYdbDumpFormat): Ydb.Import.YdbDumpFormat;

            /**
             * Encodes the specified YdbDumpFormat message. Does not implicitly {@link Ydb.Import.YdbDumpFormat.verify|verify} messages.
             * @param message YdbDumpFormat message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Import.IYdbDumpFormat, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified YdbDumpFormat message, length delimited. Does not implicitly {@link Ydb.Import.YdbDumpFormat.verify|verify} messages.
             * @param message YdbDumpFormat message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Import.IYdbDumpFormat, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a YdbDumpFormat message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns YdbDumpFormat
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Import.YdbDumpFormat;

            /**
             * Decodes a YdbDumpFormat message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns YdbDumpFormat
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Import.YdbDumpFormat;

            /**
             * Verifies a YdbDumpFormat message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a YdbDumpFormat message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns YdbDumpFormat
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Import.YdbDumpFormat;

            /**
             * Creates a plain object from a YdbDumpFormat message. Also converts values to other types if specified.
             * @param message YdbDumpFormat
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Import.YdbDumpFormat, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this YdbDumpFormat to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of an ImportDataResult. */
        interface IImportDataResult {
        }

        /** Represents an ImportDataResult. */
        class ImportDataResult implements IImportDataResult {

            /**
             * Constructs a new ImportDataResult.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Import.IImportDataResult);

            /**
             * Creates a new ImportDataResult instance using the specified properties.
             * @param [properties] Properties to set
             * @returns ImportDataResult instance
             */
            public static create(properties?: Ydb.Import.IImportDataResult): Ydb.Import.ImportDataResult;

            /**
             * Encodes the specified ImportDataResult message. Does not implicitly {@link Ydb.Import.ImportDataResult.verify|verify} messages.
             * @param message ImportDataResult message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Import.IImportDataResult, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified ImportDataResult message, length delimited. Does not implicitly {@link Ydb.Import.ImportDataResult.verify|verify} messages.
             * @param message ImportDataResult message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Import.IImportDataResult, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes an ImportDataResult message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns ImportDataResult
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Import.ImportDataResult;

            /**
             * Decodes an ImportDataResult message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns ImportDataResult
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Import.ImportDataResult;

            /**
             * Verifies an ImportDataResult message.
             * @param message Plain 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 ImportDataResult message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns ImportDataResult
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Import.ImportDataResult;

            /**
             * Creates a plain object from an ImportDataResult message. Also converts values to other types if specified.
             * @param message ImportDataResult
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Import.ImportDataResult, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this ImportDataResult to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of an ImportDataRequest. */
        interface IImportDataRequest {

            /** ImportDataRequest operationParams */
            operationParams?: (Ydb.Operations.IOperationParams|null);

            /** ImportDataRequest path */
            path?: (string|null);

            /** ImportDataRequest data */
            data?: (Uint8Array|null);

            /** ImportDataRequest ydbDump */
            ydbDump?: (Ydb.Import.IYdbDumpFormat|null);
        }

        /** Represents an ImportDataRequest. */
        class ImportDataRequest implements IImportDataRequest {

            /**
             * Constructs a new ImportDataRequest.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Import.IImportDataRequest);

            /** ImportDataRequest operationParams. */
            public operationParams?: (Ydb.Operations.IOperationParams|null);

            /** ImportDataRequest path. */
            public path: string;

            /** ImportDataRequest data. */
            public data: Uint8Array;

            /** ImportDataRequest ydbDump. */
            public ydbDump?: (Ydb.Import.IYdbDumpFormat|null);

            /** ImportDataRequest format. */
            public format?: "ydbDump";

            /**
             * Creates a new ImportDataRequest instance using the specified properties.
             * @param [properties] Properties to set
             * @returns ImportDataRequest instance
             */
            public static create(properties?: Ydb.Import.IImportDataRequest): Ydb.Import.ImportDataRequest;

            /**
             * Encodes the specified ImportDataRequest message. Does not implicitly {@link Ydb.Import.ImportDataRequest.verify|verify} messages.
             * @param message ImportDataRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Import.IImportDataRequest, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified ImportDataRequest message, length delimited. Does not implicitly {@link Ydb.Import.ImportDataRequest.verify|verify} messages.
             * @param message ImportDataRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Import.IImportDataRequest, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes an ImportDataRequest message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns ImportDataRequest
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Import.ImportDataRequest;

            /**
             * Decodes an ImportDataRequest message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns ImportDataRequest
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Import.ImportDataRequest;

            /**
             * Verifies an ImportDataRequest message.
             * @param message Plain 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 ImportDataRequest message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns ImportDataRequest
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Import.ImportDataRequest;

            /**
             * Creates a plain object from an ImportDataRequest message. Also converts values to other types if specified.
             * @param message ImportDataRequest
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Import.ImportDataRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this ImportDataRequest to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of an ImportDataResponse. */
        interface IImportDataResponse {

            /** ImportDataResponse operation */
            operation?: (Ydb.Operations.IOperation|null);
        }

        /** Represents an ImportDataResponse. */
        class ImportDataResponse implements IImportDataResponse {

            /**
             * Constructs a new ImportDataResponse.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Import.IImportDataResponse);

            /** ImportDataResponse operation. */
            public operation?: (Ydb.Operations.IOperation|null);

            /**
             * Creates a new ImportDataResponse instance using the specified properties.
             * @param [properties] Properties to set
             * @returns ImportDataResponse instance
             */
            public static create(properties?: Ydb.Import.IImportDataResponse): Ydb.Import.ImportDataResponse;

            /**
             * Encodes the specified ImportDataResponse message. Does not implicitly {@link Ydb.Import.ImportDataResponse.verify|verify} messages.
             * @param message ImportDataResponse message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Import.IImportDataResponse, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified ImportDataResponse message, length delimited. Does not implicitly {@link Ydb.Import.ImportDataResponse.verify|verify} messages.
             * @param message ImportDataResponse message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Import.IImportDataResponse, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes an ImportDataResponse message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns ImportDataResponse
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Import.ImportDataResponse;

            /**
             * Decodes an ImportDataResponse message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns ImportDataResponse
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Import.ImportDataResponse;

            /**
             * Verifies an ImportDataResponse message.
             * @param message Plain 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 ImportDataResponse message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns ImportDataResponse
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Import.ImportDataResponse;

            /**
             * Creates a plain object from an ImportDataResponse message. Also converts values to other types if specified.
             * @param message ImportDataResponse
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Import.ImportDataResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this ImportDataResponse to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }
    }

    /** Namespace Monitoring. */
    namespace Monitoring {

        /** Namespace V1. */
        namespace V1 {

            /** Represents a MonitoringService */
            class MonitoringService extends $protobuf.rpc.Service {

                /**
                 * Constructs a new MonitoringService 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 MonitoringService 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): MonitoringService;

                /**
                 * Calls SelfCheck.
                 * @param request SelfCheckRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and SelfCheckResponse
                 */
                public selfCheck(request: Ydb.Monitoring.ISelfCheckRequest, callback: Ydb.Monitoring.V1.MonitoringService.SelfCheckCallback): void;

                /**
                 * Calls SelfCheck.
                 * @param request SelfCheckRequest message or plain object
                 * @returns Promise
                 */
                public selfCheck(request: Ydb.Monitoring.ISelfCheckRequest): Promise<Ydb.Monitoring.SelfCheckResponse>;

                /**
                 * Calls NodeCheck.
                 * @param request NodeCheckRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and NodeCheckResponse
                 */
                public nodeCheck(request: Ydb.Monitoring.INodeCheckRequest, callback: Ydb.Monitoring.V1.MonitoringService.NodeCheckCallback): void;

                /**
                 * Calls NodeCheck.
                 * @param request NodeCheckRequest message or plain object
                 * @returns Promise
                 */
                public nodeCheck(request: Ydb.Monitoring.INodeCheckRequest): Promise<Ydb.Monitoring.NodeCheckResponse>;
            }

            namespace MonitoringService {

                /**
                 * Callback as used by {@link Ydb.Monitoring.V1.MonitoringService#selfCheck}.
                 * @param error Error, if any
                 * @param [response] SelfCheckResponse
                 */
                type SelfCheckCallback = (error: (Error|null), response?: Ydb.Monitoring.SelfCheckResponse) => void;

                /**
                 * Callback as used by {@link Ydb.Monitoring.V1.MonitoringService#nodeCheck}.
                 * @param error Error, if any
                 * @param [response] NodeCheckResponse
                 */
                type NodeCheckCallback = (error: (Error|null), response?: Ydb.Monitoring.NodeCheckResponse) => void;
            }
        }

        /** Properties of a StatusFlag. */
        interface IStatusFlag {
        }

        /** Represents a StatusFlag. */
        class StatusFlag implements IStatusFlag {

            /**
             * Constructs a new StatusFlag.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Monitoring.IStatusFlag);

            /**
             * Creates a new StatusFlag instance using the specified properties.
             * @param [properties] Properties to set
             * @returns StatusFlag instance
             */
            public static create(properties?: Ydb.Monitoring.IStatusFlag): Ydb.Monitoring.StatusFlag;

            /**
             * Encodes the specified StatusFlag message. Does not implicitly {@link Ydb.Monitoring.StatusFlag.verify|verify} messages.
             * @param message StatusFlag message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Monitoring.IStatusFlag, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified StatusFlag message, length delimited. Does not implicitly {@link Ydb.Monitoring.StatusFlag.verify|verify} messages.
             * @param message StatusFlag message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Monitoring.IStatusFlag, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a StatusFlag message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns StatusFlag
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Monitoring.StatusFlag;

            /**
             * Decodes a StatusFlag message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns StatusFlag
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Monitoring.StatusFlag;

            /**
             * Verifies a StatusFlag message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a StatusFlag message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns StatusFlag
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Monitoring.StatusFlag;

            /**
             * Creates a plain object from a StatusFlag message. Also converts values to other types if specified.
             * @param message StatusFlag
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Monitoring.StatusFlag, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this StatusFlag to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        namespace StatusFlag {

            /** Status enum. */
            enum Status {
                UNSPECIFIED = 0,
                GREY = 1,
                GREEN = 2,
                BLUE = 3,
                YELLOW = 4,
                ORANGE = 5,
                RED = 6
            }
        }

        /** Properties of a SelfCheckRequest. */
        interface ISelfCheckRequest {

            /** SelfCheckRequest operationParams */
            operationParams?: (Ydb.Operations.IOperationParams|null);

            /** SelfCheckRequest returnVerboseStatus */
            returnVerboseStatus?: (boolean|null);

            /** SelfCheckRequest minimumStatus */
            minimumStatus?: (Ydb.Monitoring.StatusFlag.Status|null);

            /** SelfCheckRequest maximumLevel */
            maximumLevel?: (number|null);
        }

        /** Represents a SelfCheckRequest. */
        class SelfCheckRequest implements ISelfCheckRequest {

            /**
             * Constructs a new SelfCheckRequest.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Monitoring.ISelfCheckRequest);

            /** SelfCheckRequest operationParams. */
            public operationParams?: (Ydb.Operations.IOperationParams|null);

            /** SelfCheckRequest returnVerboseStatus. */
            public returnVerboseStatus: boolean;

            /** SelfCheckRequest minimumStatus. */
            public minimumStatus: Ydb.Monitoring.StatusFlag.Status;

            /** SelfCheckRequest maximumLevel. */
            public maximumLevel: number;

            /**
             * Creates a new SelfCheckRequest instance using the specified properties.
             * @param [properties] Properties to set
             * @returns SelfCheckRequest instance
             */
            public static create(properties?: Ydb.Monitoring.ISelfCheckRequest): Ydb.Monitoring.SelfCheckRequest;

            /**
             * Encodes the specified SelfCheckRequest message. Does not implicitly {@link Ydb.Monitoring.SelfCheckRequest.verify|verify} messages.
             * @param message SelfCheckRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Monitoring.ISelfCheckRequest, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified SelfCheckRequest message, length delimited. Does not implicitly {@link Ydb.Monitoring.SelfCheckRequest.verify|verify} messages.
             * @param message SelfCheckRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Monitoring.ISelfCheckRequest, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a SelfCheckRequest message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns SelfCheckRequest
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Monitoring.SelfCheckRequest;

            /**
             * Decodes a SelfCheckRequest message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns SelfCheckRequest
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Monitoring.SelfCheckRequest;

            /**
             * Verifies a SelfCheckRequest message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a SelfCheckRequest message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns SelfCheckRequest
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Monitoring.SelfCheckRequest;

            /**
             * Creates a plain object from a SelfCheckRequest message. Also converts values to other types if specified.
             * @param message SelfCheckRequest
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Monitoring.SelfCheckRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this SelfCheckRequest to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a SelfCheckResponse. */
        interface ISelfCheckResponse {

            /** SelfCheckResponse operation */
            operation?: (Ydb.Operations.IOperation|null);
        }

        /** Represents a SelfCheckResponse. */
        class SelfCheckResponse implements ISelfCheckResponse {

            /**
             * Constructs a new SelfCheckResponse.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Monitoring.ISelfCheckResponse);

            /** SelfCheckResponse operation. */
            public operation?: (Ydb.Operations.IOperation|null);

            /**
             * Creates a new SelfCheckResponse instance using the specified properties.
             * @param [properties] Properties to set
             * @returns SelfCheckResponse instance
             */
            public static create(properties?: Ydb.Monitoring.ISelfCheckResponse): Ydb.Monitoring.SelfCheckResponse;

            /**
             * Encodes the specified SelfCheckResponse message. Does not implicitly {@link Ydb.Monitoring.SelfCheckResponse.verify|verify} messages.
             * @param message SelfCheckResponse message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Monitoring.ISelfCheckResponse, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified SelfCheckResponse message, length delimited. Does not implicitly {@link Ydb.Monitoring.SelfCheckResponse.verify|verify} messages.
             * @param message SelfCheckResponse message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Monitoring.ISelfCheckResponse, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a SelfCheckResponse message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns SelfCheckResponse
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Monitoring.SelfCheckResponse;

            /**
             * Decodes a SelfCheckResponse message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns SelfCheckResponse
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Monitoring.SelfCheckResponse;

            /**
             * Verifies a SelfCheckResponse message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a SelfCheckResponse message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns SelfCheckResponse
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Monitoring.SelfCheckResponse;

            /**
             * Creates a plain object from a SelfCheckResponse message. Also converts values to other types if specified.
             * @param message SelfCheckResponse
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Monitoring.SelfCheckResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this SelfCheckResponse to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a NodeCheckRequest. */
        interface INodeCheckRequest {

            /** NodeCheckRequest operationParams */
            operationParams?: (Ydb.Operations.IOperationParams|null);
        }

        /** Represents a NodeCheckRequest. */
        class NodeCheckRequest implements INodeCheckRequest {

            /**
             * Constructs a new NodeCheckRequest.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Monitoring.INodeCheckRequest);

            /** NodeCheckRequest operationParams. */
            public operationParams?: (Ydb.Operations.IOperationParams|null);

            /**
             * Creates a new NodeCheckRequest instance using the specified properties.
             * @param [properties] Properties to set
             * @returns NodeCheckRequest instance
             */
            public static create(properties?: Ydb.Monitoring.INodeCheckRequest): Ydb.Monitoring.NodeCheckRequest;

            /**
             * Encodes the specified NodeCheckRequest message. Does not implicitly {@link Ydb.Monitoring.NodeCheckRequest.verify|verify} messages.
             * @param message NodeCheckRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Monitoring.INodeCheckRequest, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified NodeCheckRequest message, length delimited. Does not implicitly {@link Ydb.Monitoring.NodeCheckRequest.verify|verify} messages.
             * @param message NodeCheckRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Monitoring.INodeCheckRequest, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a NodeCheckRequest message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns NodeCheckRequest
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Monitoring.NodeCheckRequest;

            /**
             * Decodes a NodeCheckRequest message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns NodeCheckRequest
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Monitoring.NodeCheckRequest;

            /**
             * Verifies a NodeCheckRequest message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a NodeCheckRequest message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns NodeCheckRequest
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Monitoring.NodeCheckRequest;

            /**
             * Creates a plain object from a NodeCheckRequest message. Also converts values to other types if specified.
             * @param message NodeCheckRequest
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Monitoring.NodeCheckRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this NodeCheckRequest to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a NodeCheckResponse. */
        interface INodeCheckResponse {

            /** NodeCheckResponse operation */
            operation?: (Ydb.Operations.IOperation|null);
        }

        /** Represents a NodeCheckResponse. */
        class NodeCheckResponse implements INodeCheckResponse {

            /**
             * Constructs a new NodeCheckResponse.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Monitoring.INodeCheckResponse);

            /** NodeCheckResponse operation. */
            public operation?: (Ydb.Operations.IOperation|null);

            /**
             * Creates a new NodeCheckResponse instance using the specified properties.
             * @param [properties] Properties to set
             * @returns NodeCheckResponse instance
             */
            public static create(properties?: Ydb.Monitoring.INodeCheckResponse): Ydb.Monitoring.NodeCheckResponse;

            /**
             * Encodes the specified NodeCheckResponse message. Does not implicitly {@link Ydb.Monitoring.NodeCheckResponse.verify|verify} messages.
             * @param message NodeCheckResponse message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Monitoring.INodeCheckResponse, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified NodeCheckResponse message, length delimited. Does not implicitly {@link Ydb.Monitoring.NodeCheckResponse.verify|verify} messages.
             * @param message NodeCheckResponse message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Monitoring.INodeCheckResponse, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a NodeCheckResponse message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns NodeCheckResponse
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Monitoring.NodeCheckResponse;

            /**
             * Decodes a NodeCheckResponse message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns NodeCheckResponse
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Monitoring.NodeCheckResponse;

            /**
             * Verifies a NodeCheckResponse message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a NodeCheckResponse message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns NodeCheckResponse
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Monitoring.NodeCheckResponse;

            /**
             * Creates a plain object from a NodeCheckResponse message. Also converts values to other types if specified.
             * @param message NodeCheckResponse
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Monitoring.NodeCheckResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this NodeCheckResponse to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a SelfCheck. */
        interface ISelfCheck {
        }

        /** Represents a SelfCheck. */
        class SelfCheck implements ISelfCheck {

            /**
             * Constructs a new SelfCheck.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Monitoring.ISelfCheck);

            /**
             * Creates a new SelfCheck instance using the specified properties.
             * @param [properties] Properties to set
             * @returns SelfCheck instance
             */
            public static create(properties?: Ydb.Monitoring.ISelfCheck): Ydb.Monitoring.SelfCheck;

            /**
             * Encodes the specified SelfCheck message. Does not implicitly {@link Ydb.Monitoring.SelfCheck.verify|verify} messages.
             * @param message SelfCheck message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Monitoring.ISelfCheck, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified SelfCheck message, length delimited. Does not implicitly {@link Ydb.Monitoring.SelfCheck.verify|verify} messages.
             * @param message SelfCheck message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Monitoring.ISelfCheck, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a SelfCheck message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns SelfCheck
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Monitoring.SelfCheck;

            /**
             * Decodes a SelfCheck message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns SelfCheck
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Monitoring.SelfCheck;

            /**
             * Verifies a SelfCheck message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a SelfCheck message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns SelfCheck
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Monitoring.SelfCheck;

            /**
             * Creates a plain object from a SelfCheck message. Also converts values to other types if specified.
             * @param message SelfCheck
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Monitoring.SelfCheck, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this SelfCheck to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        namespace SelfCheck {

            /** Result enum. */
            enum Result {
                UNSPECIFIED = 0,
                GOOD = 1,
                DEGRADED = 2,
                MAINTENANCE_REQUIRED = 3,
                EMERGENCY = 4
            }
        }

        /** Properties of a StoragePDiskStatus. */
        interface IStoragePDiskStatus {

            /** StoragePDiskStatus id */
            id?: (string|null);

            /** StoragePDiskStatus overall */
            overall?: (Ydb.Monitoring.StatusFlag.Status|null);
        }

        /** Represents a StoragePDiskStatus. */
        class StoragePDiskStatus implements IStoragePDiskStatus {

            /**
             * Constructs a new StoragePDiskStatus.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Monitoring.IStoragePDiskStatus);

            /** StoragePDiskStatus id. */
            public id: string;

            /** StoragePDiskStatus overall. */
            public overall: Ydb.Monitoring.StatusFlag.Status;

            /**
             * Creates a new StoragePDiskStatus instance using the specified properties.
             * @param [properties] Properties to set
             * @returns StoragePDiskStatus instance
             */
            public static create(properties?: Ydb.Monitoring.IStoragePDiskStatus): Ydb.Monitoring.StoragePDiskStatus;

            /**
             * Encodes the specified StoragePDiskStatus message. Does not implicitly {@link Ydb.Monitoring.StoragePDiskStatus.verify|verify} messages.
             * @param message StoragePDiskStatus message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Monitoring.IStoragePDiskStatus, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified StoragePDiskStatus message, length delimited. Does not implicitly {@link Ydb.Monitoring.StoragePDiskStatus.verify|verify} messages.
             * @param message StoragePDiskStatus message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Monitoring.IStoragePDiskStatus, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a StoragePDiskStatus message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns StoragePDiskStatus
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Monitoring.StoragePDiskStatus;

            /**
             * Decodes a StoragePDiskStatus message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns StoragePDiskStatus
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Monitoring.StoragePDiskStatus;

            /**
             * Verifies a StoragePDiskStatus message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a StoragePDiskStatus message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns StoragePDiskStatus
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Monitoring.StoragePDiskStatus;

            /**
             * Creates a plain object from a StoragePDiskStatus message. Also converts values to other types if specified.
             * @param message StoragePDiskStatus
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Monitoring.StoragePDiskStatus, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this StoragePDiskStatus to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a StorageVDiskStatus. */
        interface IStorageVDiskStatus {

            /** StorageVDiskStatus id */
            id?: (string|null);

            /** StorageVDiskStatus overall */
            overall?: (Ydb.Monitoring.StatusFlag.Status|null);

            /** StorageVDiskStatus vdiskStatus */
            vdiskStatus?: (Ydb.Monitoring.StatusFlag.Status|null);

            /** StorageVDiskStatus pdisk */
            pdisk?: (Ydb.Monitoring.IStoragePDiskStatus|null);
        }

        /** Represents a StorageVDiskStatus. */
        class StorageVDiskStatus implements IStorageVDiskStatus {

            /**
             * Constructs a new StorageVDiskStatus.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Monitoring.IStorageVDiskStatus);

            /** StorageVDiskStatus id. */
            public id: string;

            /** StorageVDiskStatus overall. */
            public overall: Ydb.Monitoring.StatusFlag.Status;

            /** StorageVDiskStatus vdiskStatus. */
            public vdiskStatus: Ydb.Monitoring.StatusFlag.Status;

            /** StorageVDiskStatus pdisk. */
            public pdisk?: (Ydb.Monitoring.IStoragePDiskStatus|null);

            /**
             * Creates a new StorageVDiskStatus instance using the specified properties.
             * @param [properties] Properties to set
             * @returns StorageVDiskStatus instance
             */
            public static create(properties?: Ydb.Monitoring.IStorageVDiskStatus): Ydb.Monitoring.StorageVDiskStatus;

            /**
             * Encodes the specified StorageVDiskStatus message. Does not implicitly {@link Ydb.Monitoring.StorageVDiskStatus.verify|verify} messages.
             * @param message StorageVDiskStatus message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Monitoring.IStorageVDiskStatus, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified StorageVDiskStatus message, length delimited. Does not implicitly {@link Ydb.Monitoring.StorageVDiskStatus.verify|verify} messages.
             * @param message StorageVDiskStatus message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Monitoring.IStorageVDiskStatus, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a StorageVDiskStatus message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns StorageVDiskStatus
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Monitoring.StorageVDiskStatus;

            /**
             * Decodes a StorageVDiskStatus message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns StorageVDiskStatus
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Monitoring.StorageVDiskStatus;

            /**
             * Verifies a StorageVDiskStatus message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a StorageVDiskStatus message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns StorageVDiskStatus
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Monitoring.StorageVDiskStatus;

            /**
             * Creates a plain object from a StorageVDiskStatus message. Also converts values to other types if specified.
             * @param message StorageVDiskStatus
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Monitoring.StorageVDiskStatus, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this StorageVDiskStatus to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a StorageGroupStatus. */
        interface IStorageGroupStatus {

            /** StorageGroupStatus id */
            id?: (string|null);

            /** StorageGroupStatus overall */
            overall?: (Ydb.Monitoring.StatusFlag.Status|null);

            /** StorageGroupStatus vdisks */
            vdisks?: (Ydb.Monitoring.IStorageVDiskStatus[]|null);
        }

        /** Represents a StorageGroupStatus. */
        class StorageGroupStatus implements IStorageGroupStatus {

            /**
             * Constructs a new StorageGroupStatus.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Monitoring.IStorageGroupStatus);

            /** StorageGroupStatus id. */
            public id: string;

            /** StorageGroupStatus overall. */
            public overall: Ydb.Monitoring.StatusFlag.Status;

            /** StorageGroupStatus vdisks. */
            public vdisks: Ydb.Monitoring.IStorageVDiskStatus[];

            /**
             * Creates a new StorageGroupStatus instance using the specified properties.
             * @param [properties] Properties to set
             * @returns StorageGroupStatus instance
             */
            public static create(properties?: Ydb.Monitoring.IStorageGroupStatus): Ydb.Monitoring.StorageGroupStatus;

            /**
             * Encodes the specified StorageGroupStatus message. Does not implicitly {@link Ydb.Monitoring.StorageGroupStatus.verify|verify} messages.
             * @param message StorageGroupStatus message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Monitoring.IStorageGroupStatus, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified StorageGroupStatus message, length delimited. Does not implicitly {@link Ydb.Monitoring.StorageGroupStatus.verify|verify} messages.
             * @param message StorageGroupStatus message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Monitoring.IStorageGroupStatus, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a StorageGroupStatus message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns StorageGroupStatus
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Monitoring.StorageGroupStatus;

            /**
             * Decodes a StorageGroupStatus message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns StorageGroupStatus
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Monitoring.StorageGroupStatus;

            /**
             * Verifies a StorageGroupStatus message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a StorageGroupStatus message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns StorageGroupStatus
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Monitoring.StorageGroupStatus;

            /**
             * Creates a plain object from a StorageGroupStatus message. Also converts values to other types if specified.
             * @param message StorageGroupStatus
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Monitoring.StorageGroupStatus, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this StorageGroupStatus to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a StoragePoolStatus. */
        interface IStoragePoolStatus {

            /** StoragePoolStatus id */
            id?: (string|null);

            /** StoragePoolStatus overall */
            overall?: (Ydb.Monitoring.StatusFlag.Status|null);

            /** StoragePoolStatus groups */
            groups?: (Ydb.Monitoring.IStorageGroupStatus[]|null);
        }

        /** Represents a StoragePoolStatus. */
        class StoragePoolStatus implements IStoragePoolStatus {

            /**
             * Constructs a new StoragePoolStatus.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Monitoring.IStoragePoolStatus);

            /** StoragePoolStatus id. */
            public id: string;

            /** StoragePoolStatus overall. */
            public overall: Ydb.Monitoring.StatusFlag.Status;

            /** StoragePoolStatus groups. */
            public groups: Ydb.Monitoring.IStorageGroupStatus[];

            /**
             * Creates a new StoragePoolStatus instance using the specified properties.
             * @param [properties] Properties to set
             * @returns StoragePoolStatus instance
             */
            public static create(properties?: Ydb.Monitoring.IStoragePoolStatus): Ydb.Monitoring.StoragePoolStatus;

            /**
             * Encodes the specified StoragePoolStatus message. Does not implicitly {@link Ydb.Monitoring.StoragePoolStatus.verify|verify} messages.
             * @param message StoragePoolStatus message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Monitoring.IStoragePoolStatus, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified StoragePoolStatus message, length delimited. Does not implicitly {@link Ydb.Monitoring.StoragePoolStatus.verify|verify} messages.
             * @param message StoragePoolStatus message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Monitoring.IStoragePoolStatus, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a StoragePoolStatus message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns StoragePoolStatus
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Monitoring.StoragePoolStatus;

            /**
             * Decodes a StoragePoolStatus message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns StoragePoolStatus
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Monitoring.StoragePoolStatus;

            /**
             * Verifies a StoragePoolStatus message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a StoragePoolStatus message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns StoragePoolStatus
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Monitoring.StoragePoolStatus;

            /**
             * Creates a plain object from a StoragePoolStatus message. Also converts values to other types if specified.
             * @param message StoragePoolStatus
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Monitoring.StoragePoolStatus, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this StoragePoolStatus to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a StorageStatus. */
        interface IStorageStatus {

            /** StorageStatus overall */
            overall?: (Ydb.Monitoring.StatusFlag.Status|null);

            /** StorageStatus pools */
            pools?: (Ydb.Monitoring.IStoragePoolStatus[]|null);
        }

        /** Represents a StorageStatus. */
        class StorageStatus implements IStorageStatus {

            /**
             * Constructs a new StorageStatus.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Monitoring.IStorageStatus);

            /** StorageStatus overall. */
            public overall: Ydb.Monitoring.StatusFlag.Status;

            /** StorageStatus pools. */
            public pools: Ydb.Monitoring.IStoragePoolStatus[];

            /**
             * Creates a new StorageStatus instance using the specified properties.
             * @param [properties] Properties to set
             * @returns StorageStatus instance
             */
            public static create(properties?: Ydb.Monitoring.IStorageStatus): Ydb.Monitoring.StorageStatus;

            /**
             * Encodes the specified StorageStatus message. Does not implicitly {@link Ydb.Monitoring.StorageStatus.verify|verify} messages.
             * @param message StorageStatus message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Monitoring.IStorageStatus, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified StorageStatus message, length delimited. Does not implicitly {@link Ydb.Monitoring.StorageStatus.verify|verify} messages.
             * @param message StorageStatus message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Monitoring.IStorageStatus, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a StorageStatus message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns StorageStatus
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Monitoring.StorageStatus;

            /**
             * Decodes a StorageStatus message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns StorageStatus
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Monitoring.StorageStatus;

            /**
             * Verifies a StorageStatus message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a StorageStatus message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns StorageStatus
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Monitoring.StorageStatus;

            /**
             * Creates a plain object from a StorageStatus message. Also converts values to other types if specified.
             * @param message StorageStatus
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Monitoring.StorageStatus, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this StorageStatus to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a ComputeTabletStatus. */
        interface IComputeTabletStatus {

            /** ComputeTabletStatus overall */
            overall?: (Ydb.Monitoring.StatusFlag.Status|null);

            /** ComputeTabletStatus type */
            type?: (string|null);

            /** ComputeTabletStatus state */
            state?: (string|null);

            /** ComputeTabletStatus count */
            count?: (number|null);

            /** ComputeTabletStatus id */
            id?: (string[]|null);
        }

        /** Represents a ComputeTabletStatus. */
        class ComputeTabletStatus implements IComputeTabletStatus {

            /**
             * Constructs a new ComputeTabletStatus.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Monitoring.IComputeTabletStatus);

            /** ComputeTabletStatus overall. */
            public overall: Ydb.Monitoring.StatusFlag.Status;

            /** ComputeTabletStatus type. */
            public type: string;

            /** ComputeTabletStatus state. */
            public state: string;

            /** ComputeTabletStatus count. */
            public count: number;

            /** ComputeTabletStatus id. */
            public id: string[];

            /**
             * Creates a new ComputeTabletStatus instance using the specified properties.
             * @param [properties] Properties to set
             * @returns ComputeTabletStatus instance
             */
            public static create(properties?: Ydb.Monitoring.IComputeTabletStatus): Ydb.Monitoring.ComputeTabletStatus;

            /**
             * Encodes the specified ComputeTabletStatus message. Does not implicitly {@link Ydb.Monitoring.ComputeTabletStatus.verify|verify} messages.
             * @param message ComputeTabletStatus message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Monitoring.IComputeTabletStatus, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified ComputeTabletStatus message, length delimited. Does not implicitly {@link Ydb.Monitoring.ComputeTabletStatus.verify|verify} messages.
             * @param message ComputeTabletStatus message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Monitoring.IComputeTabletStatus, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a ComputeTabletStatus message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns ComputeTabletStatus
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Monitoring.ComputeTabletStatus;

            /**
             * Decodes a ComputeTabletStatus message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns ComputeTabletStatus
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Monitoring.ComputeTabletStatus;

            /**
             * Verifies a ComputeTabletStatus message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a ComputeTabletStatus message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns ComputeTabletStatus
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Monitoring.ComputeTabletStatus;

            /**
             * Creates a plain object from a ComputeTabletStatus message. Also converts values to other types if specified.
             * @param message ComputeTabletStatus
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Monitoring.ComputeTabletStatus, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this ComputeTabletStatus to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a ThreadPoolStatus. */
        interface IThreadPoolStatus {

            /** ThreadPoolStatus overall */
            overall?: (Ydb.Monitoring.StatusFlag.Status|null);

            /** ThreadPoolStatus name */
            name?: (string|null);

            /** ThreadPoolStatus usage */
            usage?: (number|null);
        }

        /** Represents a ThreadPoolStatus. */
        class ThreadPoolStatus implements IThreadPoolStatus {

            /**
             * Constructs a new ThreadPoolStatus.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Monitoring.IThreadPoolStatus);

            /** ThreadPoolStatus overall. */
            public overall: Ydb.Monitoring.StatusFlag.Status;

            /** ThreadPoolStatus name. */
            public name: string;

            /** ThreadPoolStatus usage. */
            public usage: number;

            /**
             * Creates a new ThreadPoolStatus instance using the specified properties.
             * @param [properties] Properties to set
             * @returns ThreadPoolStatus instance
             */
            public static create(properties?: Ydb.Monitoring.IThreadPoolStatus): Ydb.Monitoring.ThreadPoolStatus;

            /**
             * Encodes the specified ThreadPoolStatus message. Does not implicitly {@link Ydb.Monitoring.ThreadPoolStatus.verify|verify} messages.
             * @param message ThreadPoolStatus message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Monitoring.IThreadPoolStatus, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified ThreadPoolStatus message, length delimited. Does not implicitly {@link Ydb.Monitoring.ThreadPoolStatus.verify|verify} messages.
             * @param message ThreadPoolStatus message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Monitoring.IThreadPoolStatus, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a ThreadPoolStatus message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns ThreadPoolStatus
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Monitoring.ThreadPoolStatus;

            /**
             * Decodes a ThreadPoolStatus message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns ThreadPoolStatus
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Monitoring.ThreadPoolStatus;

            /**
             * Verifies a ThreadPoolStatus message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a ThreadPoolStatus message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns ThreadPoolStatus
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Monitoring.ThreadPoolStatus;

            /**
             * Creates a plain object from a ThreadPoolStatus message. Also converts values to other types if specified.
             * @param message ThreadPoolStatus
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Monitoring.ThreadPoolStatus, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this ThreadPoolStatus to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a LoadAverageStatus. */
        interface ILoadAverageStatus {

            /** LoadAverageStatus overall */
            overall?: (Ydb.Monitoring.StatusFlag.Status|null);

            /** LoadAverageStatus load */
            load?: (number|null);

            /** LoadAverageStatus cores */
            cores?: (number|null);
        }

        /** Represents a LoadAverageStatus. */
        class LoadAverageStatus implements ILoadAverageStatus {

            /**
             * Constructs a new LoadAverageStatus.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Monitoring.ILoadAverageStatus);

            /** LoadAverageStatus overall. */
            public overall: Ydb.Monitoring.StatusFlag.Status;

            /** LoadAverageStatus load. */
            public load: number;

            /** LoadAverageStatus cores. */
            public cores: number;

            /**
             * Creates a new LoadAverageStatus instance using the specified properties.
             * @param [properties] Properties to set
             * @returns LoadAverageStatus instance
             */
            public static create(properties?: Ydb.Monitoring.ILoadAverageStatus): Ydb.Monitoring.LoadAverageStatus;

            /**
             * Encodes the specified LoadAverageStatus message. Does not implicitly {@link Ydb.Monitoring.LoadAverageStatus.verify|verify} messages.
             * @param message LoadAverageStatus message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Monitoring.ILoadAverageStatus, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified LoadAverageStatus message, length delimited. Does not implicitly {@link Ydb.Monitoring.LoadAverageStatus.verify|verify} messages.
             * @param message LoadAverageStatus message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Monitoring.ILoadAverageStatus, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a LoadAverageStatus message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns LoadAverageStatus
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Monitoring.LoadAverageStatus;

            /**
             * Decodes a LoadAverageStatus message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns LoadAverageStatus
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Monitoring.LoadAverageStatus;

            /**
             * Verifies a LoadAverageStatus message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a LoadAverageStatus message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns LoadAverageStatus
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Monitoring.LoadAverageStatus;

            /**
             * Creates a plain object from a LoadAverageStatus message. Also converts values to other types if specified.
             * @param message LoadAverageStatus
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Monitoring.LoadAverageStatus, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this LoadAverageStatus to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a ComputeNodeStatus. */
        interface IComputeNodeStatus {

            /** ComputeNodeStatus id */
            id?: (string|null);

            /** ComputeNodeStatus overall */
            overall?: (Ydb.Monitoring.StatusFlag.Status|null);

            /** ComputeNodeStatus tablets */
            tablets?: (Ydb.Monitoring.IComputeTabletStatus[]|null);

            /** ComputeNodeStatus pools */
            pools?: (Ydb.Monitoring.IThreadPoolStatus[]|null);

            /** ComputeNodeStatus load */
            load?: (Ydb.Monitoring.ILoadAverageStatus|null);
        }

        /** Represents a ComputeNodeStatus. */
        class ComputeNodeStatus implements IComputeNodeStatus {

            /**
             * Constructs a new ComputeNodeStatus.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Monitoring.IComputeNodeStatus);

            /** ComputeNodeStatus id. */
            public id: string;

            /** ComputeNodeStatus overall. */
            public overall: Ydb.Monitoring.StatusFlag.Status;

            /** ComputeNodeStatus tablets. */
            public tablets: Ydb.Monitoring.IComputeTabletStatus[];

            /** ComputeNodeStatus pools. */
            public pools: Ydb.Monitoring.IThreadPoolStatus[];

            /** ComputeNodeStatus load. */
            public load?: (Ydb.Monitoring.ILoadAverageStatus|null);

            /**
             * Creates a new ComputeNodeStatus instance using the specified properties.
             * @param [properties] Properties to set
             * @returns ComputeNodeStatus instance
             */
            public static create(properties?: Ydb.Monitoring.IComputeNodeStatus): Ydb.Monitoring.ComputeNodeStatus;

            /**
             * Encodes the specified ComputeNodeStatus message. Does not implicitly {@link Ydb.Monitoring.ComputeNodeStatus.verify|verify} messages.
             * @param message ComputeNodeStatus message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Monitoring.IComputeNodeStatus, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified ComputeNodeStatus message, length delimited. Does not implicitly {@link Ydb.Monitoring.ComputeNodeStatus.verify|verify} messages.
             * @param message ComputeNodeStatus message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Monitoring.IComputeNodeStatus, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a ComputeNodeStatus message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns ComputeNodeStatus
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Monitoring.ComputeNodeStatus;

            /**
             * Decodes a ComputeNodeStatus message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns ComputeNodeStatus
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Monitoring.ComputeNodeStatus;

            /**
             * Verifies a ComputeNodeStatus message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a ComputeNodeStatus message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns ComputeNodeStatus
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Monitoring.ComputeNodeStatus;

            /**
             * Creates a plain object from a ComputeNodeStatus message. Also converts values to other types if specified.
             * @param message ComputeNodeStatus
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Monitoring.ComputeNodeStatus, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this ComputeNodeStatus to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a ComputeStatus. */
        interface IComputeStatus {

            /** ComputeStatus overall */
            overall?: (Ydb.Monitoring.StatusFlag.Status|null);

            /** ComputeStatus nodes */
            nodes?: (Ydb.Monitoring.IComputeNodeStatus[]|null);

            /** ComputeStatus tablets */
            tablets?: (Ydb.Monitoring.IComputeTabletStatus[]|null);
        }

        /** Represents a ComputeStatus. */
        class ComputeStatus implements IComputeStatus {

            /**
             * Constructs a new ComputeStatus.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Monitoring.IComputeStatus);

            /** ComputeStatus overall. */
            public overall: Ydb.Monitoring.StatusFlag.Status;

            /** ComputeStatus nodes. */
            public nodes: Ydb.Monitoring.IComputeNodeStatus[];

            /** ComputeStatus tablets. */
            public tablets: Ydb.Monitoring.IComputeTabletStatus[];

            /**
             * Creates a new ComputeStatus instance using the specified properties.
             * @param [properties] Properties to set
             * @returns ComputeStatus instance
             */
            public static create(properties?: Ydb.Monitoring.IComputeStatus): Ydb.Monitoring.ComputeStatus;

            /**
             * Encodes the specified ComputeStatus message. Does not implicitly {@link Ydb.Monitoring.ComputeStatus.verify|verify} messages.
             * @param message ComputeStatus message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Monitoring.IComputeStatus, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified ComputeStatus message, length delimited. Does not implicitly {@link Ydb.Monitoring.ComputeStatus.verify|verify} messages.
             * @param message ComputeStatus message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Monitoring.IComputeStatus, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a ComputeStatus message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns ComputeStatus
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Monitoring.ComputeStatus;

            /**
             * Decodes a ComputeStatus message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns ComputeStatus
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Monitoring.ComputeStatus;

            /**
             * Verifies a ComputeStatus message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a ComputeStatus message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns ComputeStatus
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Monitoring.ComputeStatus;

            /**
             * Creates a plain object from a ComputeStatus message. Also converts values to other types if specified.
             * @param message ComputeStatus
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Monitoring.ComputeStatus, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this ComputeStatus to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a LocationNode. */
        interface ILocationNode {

            /** LocationNode id */
            id?: (number|null);

            /** LocationNode host */
            host?: (string|null);

            /** LocationNode port */
            port?: (number|null);
        }

        /** Represents a LocationNode. */
        class LocationNode implements ILocationNode {

            /**
             * Constructs a new LocationNode.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Monitoring.ILocationNode);

            /** LocationNode id. */
            public id: number;

            /** LocationNode host. */
            public host: string;

            /** LocationNode port. */
            public port: number;

            /**
             * Creates a new LocationNode instance using the specified properties.
             * @param [properties] Properties to set
             * @returns LocationNode instance
             */
            public static create(properties?: Ydb.Monitoring.ILocationNode): Ydb.Monitoring.LocationNode;

            /**
             * Encodes the specified LocationNode message. Does not implicitly {@link Ydb.Monitoring.LocationNode.verify|verify} messages.
             * @param message LocationNode message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Monitoring.ILocationNode, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified LocationNode message, length delimited. Does not implicitly {@link Ydb.Monitoring.LocationNode.verify|verify} messages.
             * @param message LocationNode message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Monitoring.ILocationNode, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a LocationNode message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns LocationNode
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Monitoring.LocationNode;

            /**
             * Decodes a LocationNode message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns LocationNode
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Monitoring.LocationNode;

            /**
             * Verifies a LocationNode message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a LocationNode message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns LocationNode
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Monitoring.LocationNode;

            /**
             * Creates a plain object from a LocationNode message. Also converts values to other types if specified.
             * @param message LocationNode
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Monitoring.LocationNode, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this LocationNode to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a LocationStoragePDisk. */
        interface ILocationStoragePDisk {

            /** LocationStoragePDisk id */
            id?: (string|null);

            /** LocationStoragePDisk path */
            path?: (string|null);
        }

        /** Represents a LocationStoragePDisk. */
        class LocationStoragePDisk implements ILocationStoragePDisk {

            /**
             * Constructs a new LocationStoragePDisk.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Monitoring.ILocationStoragePDisk);

            /** LocationStoragePDisk id. */
            public id: string;

            /** LocationStoragePDisk path. */
            public path: string;

            /**
             * Creates a new LocationStoragePDisk instance using the specified properties.
             * @param [properties] Properties to set
             * @returns LocationStoragePDisk instance
             */
            public static create(properties?: Ydb.Monitoring.ILocationStoragePDisk): Ydb.Monitoring.LocationStoragePDisk;

            /**
             * Encodes the specified LocationStoragePDisk message. Does not implicitly {@link Ydb.Monitoring.LocationStoragePDisk.verify|verify} messages.
             * @param message LocationStoragePDisk message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Monitoring.ILocationStoragePDisk, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified LocationStoragePDisk message, length delimited. Does not implicitly {@link Ydb.Monitoring.LocationStoragePDisk.verify|verify} messages.
             * @param message LocationStoragePDisk message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Monitoring.ILocationStoragePDisk, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a LocationStoragePDisk message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns LocationStoragePDisk
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Monitoring.LocationStoragePDisk;

            /**
             * Decodes a LocationStoragePDisk message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns LocationStoragePDisk
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Monitoring.LocationStoragePDisk;

            /**
             * Verifies a LocationStoragePDisk message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a LocationStoragePDisk message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns LocationStoragePDisk
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Monitoring.LocationStoragePDisk;

            /**
             * Creates a plain object from a LocationStoragePDisk message. Also converts values to other types if specified.
             * @param message LocationStoragePDisk
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Monitoring.LocationStoragePDisk, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this LocationStoragePDisk to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a LocationStorageVDisk. */
        interface ILocationStorageVDisk {

            /** LocationStorageVDisk id */
            id?: (string[]|null);

            /** LocationStorageVDisk pdisk */
            pdisk?: (Ydb.Monitoring.ILocationStoragePDisk[]|null);
        }

        /** Represents a LocationStorageVDisk. */
        class LocationStorageVDisk implements ILocationStorageVDisk {

            /**
             * Constructs a new LocationStorageVDisk.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Monitoring.ILocationStorageVDisk);

            /** LocationStorageVDisk id. */
            public id: string[];

            /** LocationStorageVDisk pdisk. */
            public pdisk: Ydb.Monitoring.ILocationStoragePDisk[];

            /**
             * Creates a new LocationStorageVDisk instance using the specified properties.
             * @param [properties] Properties to set
             * @returns LocationStorageVDisk instance
             */
            public static create(properties?: Ydb.Monitoring.ILocationStorageVDisk): Ydb.Monitoring.LocationStorageVDisk;

            /**
             * Encodes the specified LocationStorageVDisk message. Does not implicitly {@link Ydb.Monitoring.LocationStorageVDisk.verify|verify} messages.
             * @param message LocationStorageVDisk message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Monitoring.ILocationStorageVDisk, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified LocationStorageVDisk message, length delimited. Does not implicitly {@link Ydb.Monitoring.LocationStorageVDisk.verify|verify} messages.
             * @param message LocationStorageVDisk message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Monitoring.ILocationStorageVDisk, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a LocationStorageVDisk message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns LocationStorageVDisk
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Monitoring.LocationStorageVDisk;

            /**
             * Decodes a LocationStorageVDisk message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns LocationStorageVDisk
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Monitoring.LocationStorageVDisk;

            /**
             * Verifies a LocationStorageVDisk message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a LocationStorageVDisk message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns LocationStorageVDisk
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Monitoring.LocationStorageVDisk;

            /**
             * Creates a plain object from a LocationStorageVDisk message. Also converts values to other types if specified.
             * @param message LocationStorageVDisk
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Monitoring.LocationStorageVDisk, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this LocationStorageVDisk to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a LocationStorageGroup. */
        interface ILocationStorageGroup {

            /** LocationStorageGroup id */
            id?: (string[]|null);

            /** LocationStorageGroup vdisk */
            vdisk?: (Ydb.Monitoring.ILocationStorageVDisk|null);
        }

        /** Represents a LocationStorageGroup. */
        class LocationStorageGroup implements ILocationStorageGroup {

            /**
             * Constructs a new LocationStorageGroup.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Monitoring.ILocationStorageGroup);

            /** LocationStorageGroup id. */
            public id: string[];

            /** LocationStorageGroup vdisk. */
            public vdisk?: (Ydb.Monitoring.ILocationStorageVDisk|null);

            /**
             * Creates a new LocationStorageGroup instance using the specified properties.
             * @param [properties] Properties to set
             * @returns LocationStorageGroup instance
             */
            public static create(properties?: Ydb.Monitoring.ILocationStorageGroup): Ydb.Monitoring.LocationStorageGroup;

            /**
             * Encodes the specified LocationStorageGroup message. Does not implicitly {@link Ydb.Monitoring.LocationStorageGroup.verify|verify} messages.
             * @param message LocationStorageGroup message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Monitoring.ILocationStorageGroup, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified LocationStorageGroup message, length delimited. Does not implicitly {@link Ydb.Monitoring.LocationStorageGroup.verify|verify} messages.
             * @param message LocationStorageGroup message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Monitoring.ILocationStorageGroup, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a LocationStorageGroup message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns LocationStorageGroup
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Monitoring.LocationStorageGroup;

            /**
             * Decodes a LocationStorageGroup message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns LocationStorageGroup
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Monitoring.LocationStorageGroup;

            /**
             * Verifies a LocationStorageGroup message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a LocationStorageGroup message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns LocationStorageGroup
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Monitoring.LocationStorageGroup;

            /**
             * Creates a plain object from a LocationStorageGroup message. Also converts values to other types if specified.
             * @param message LocationStorageGroup
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Monitoring.LocationStorageGroup, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this LocationStorageGroup to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a LocationStoragePool. */
        interface ILocationStoragePool {

            /** LocationStoragePool name */
            name?: (string|null);

            /** LocationStoragePool group */
            group?: (Ydb.Monitoring.ILocationStorageGroup|null);
        }

        /** Represents a LocationStoragePool. */
        class LocationStoragePool implements ILocationStoragePool {

            /**
             * Constructs a new LocationStoragePool.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Monitoring.ILocationStoragePool);

            /** LocationStoragePool name. */
            public name: string;

            /** LocationStoragePool group. */
            public group?: (Ydb.Monitoring.ILocationStorageGroup|null);

            /**
             * Creates a new LocationStoragePool instance using the specified properties.
             * @param [properties] Properties to set
             * @returns LocationStoragePool instance
             */
            public static create(properties?: Ydb.Monitoring.ILocationStoragePool): Ydb.Monitoring.LocationStoragePool;

            /**
             * Encodes the specified LocationStoragePool message. Does not implicitly {@link Ydb.Monitoring.LocationStoragePool.verify|verify} messages.
             * @param message LocationStoragePool message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Monitoring.ILocationStoragePool, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified LocationStoragePool message, length delimited. Does not implicitly {@link Ydb.Monitoring.LocationStoragePool.verify|verify} messages.
             * @param message LocationStoragePool message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Monitoring.ILocationStoragePool, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a LocationStoragePool message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns LocationStoragePool
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Monitoring.LocationStoragePool;

            /**
             * Decodes a LocationStoragePool message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns LocationStoragePool
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Monitoring.LocationStoragePool;

            /**
             * Verifies a LocationStoragePool message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a LocationStoragePool message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns LocationStoragePool
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Monitoring.LocationStoragePool;

            /**
             * Creates a plain object from a LocationStoragePool message. Also converts values to other types if specified.
             * @param message LocationStoragePool
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Monitoring.LocationStoragePool, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this LocationStoragePool to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a LocationStorage. */
        interface ILocationStorage {

            /** LocationStorage node */
            node?: (Ydb.Monitoring.ILocationNode|null);

            /** LocationStorage pool */
            pool?: (Ydb.Monitoring.ILocationStoragePool|null);
        }

        /** Represents a LocationStorage. */
        class LocationStorage implements ILocationStorage {

            /**
             * Constructs a new LocationStorage.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Monitoring.ILocationStorage);

            /** LocationStorage node. */
            public node?: (Ydb.Monitoring.ILocationNode|null);

            /** LocationStorage pool. */
            public pool?: (Ydb.Monitoring.ILocationStoragePool|null);

            /**
             * Creates a new LocationStorage instance using the specified properties.
             * @param [properties] Properties to set
             * @returns LocationStorage instance
             */
            public static create(properties?: Ydb.Monitoring.ILocationStorage): Ydb.Monitoring.LocationStorage;

            /**
             * Encodes the specified LocationStorage message. Does not implicitly {@link Ydb.Monitoring.LocationStorage.verify|verify} messages.
             * @param message LocationStorage message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Monitoring.ILocationStorage, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified LocationStorage message, length delimited. Does not implicitly {@link Ydb.Monitoring.LocationStorage.verify|verify} messages.
             * @param message LocationStorage message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Monitoring.ILocationStorage, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a LocationStorage message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns LocationStorage
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Monitoring.LocationStorage;

            /**
             * Decodes a LocationStorage message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns LocationStorage
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Monitoring.LocationStorage;

            /**
             * Verifies a LocationStorage message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a LocationStorage message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns LocationStorage
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Monitoring.LocationStorage;

            /**
             * Creates a plain object from a LocationStorage message. Also converts values to other types if specified.
             * @param message LocationStorage
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Monitoring.LocationStorage, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this LocationStorage to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a LocationComputePool. */
        interface ILocationComputePool {

            /** LocationComputePool name */
            name?: (string|null);
        }

        /** Represents a LocationComputePool. */
        class LocationComputePool implements ILocationComputePool {

            /**
             * Constructs a new LocationComputePool.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Monitoring.ILocationComputePool);

            /** LocationComputePool name. */
            public name: string;

            /**
             * Creates a new LocationComputePool instance using the specified properties.
             * @param [properties] Properties to set
             * @returns LocationComputePool instance
             */
            public static create(properties?: Ydb.Monitoring.ILocationComputePool): Ydb.Monitoring.LocationComputePool;

            /**
             * Encodes the specified LocationComputePool message. Does not implicitly {@link Ydb.Monitoring.LocationComputePool.verify|verify} messages.
             * @param message LocationComputePool message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Monitoring.ILocationComputePool, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified LocationComputePool message, length delimited. Does not implicitly {@link Ydb.Monitoring.LocationComputePool.verify|verify} messages.
             * @param message LocationComputePool message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Monitoring.ILocationComputePool, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a LocationComputePool message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns LocationComputePool
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Monitoring.LocationComputePool;

            /**
             * Decodes a LocationComputePool message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns LocationComputePool
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Monitoring.LocationComputePool;

            /**
             * Verifies a LocationComputePool message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a LocationComputePool message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns LocationComputePool
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Monitoring.LocationComputePool;

            /**
             * Creates a plain object from a LocationComputePool message. Also converts values to other types if specified.
             * @param message LocationComputePool
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Monitoring.LocationComputePool, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this LocationComputePool to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a LocationComputeTablet. */
        interface ILocationComputeTablet {

            /** LocationComputeTablet type */
            type?: (string|null);

            /** LocationComputeTablet id */
            id?: (string[]|null);

            /** LocationComputeTablet count */
            count?: (number|null);
        }

        /** Represents a LocationComputeTablet. */
        class LocationComputeTablet implements ILocationComputeTablet {

            /**
             * Constructs a new LocationComputeTablet.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Monitoring.ILocationComputeTablet);

            /** LocationComputeTablet type. */
            public type: string;

            /** LocationComputeTablet id. */
            public id: string[];

            /** LocationComputeTablet count. */
            public count: number;

            /**
             * Creates a new LocationComputeTablet instance using the specified properties.
             * @param [properties] Properties to set
             * @returns LocationComputeTablet instance
             */
            public static create(properties?: Ydb.Monitoring.ILocationComputeTablet): Ydb.Monitoring.LocationComputeTablet;

            /**
             * Encodes the specified LocationComputeTablet message. Does not implicitly {@link Ydb.Monitoring.LocationComputeTablet.verify|verify} messages.
             * @param message LocationComputeTablet message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Monitoring.ILocationComputeTablet, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified LocationComputeTablet message, length delimited. Does not implicitly {@link Ydb.Monitoring.LocationComputeTablet.verify|verify} messages.
             * @param message LocationComputeTablet message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Monitoring.ILocationComputeTablet, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a LocationComputeTablet message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns LocationComputeTablet
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Monitoring.LocationComputeTablet;

            /**
             * Decodes a LocationComputeTablet message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns LocationComputeTablet
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Monitoring.LocationComputeTablet;

            /**
             * Verifies a LocationComputeTablet message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a LocationComputeTablet message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns LocationComputeTablet
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Monitoring.LocationComputeTablet;

            /**
             * Creates a plain object from a LocationComputeTablet message. Also converts values to other types if specified.
             * @param message LocationComputeTablet
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Monitoring.LocationComputeTablet, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this LocationComputeTablet to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a LocationCompute. */
        interface ILocationCompute {

            /** LocationCompute node */
            node?: (Ydb.Monitoring.ILocationNode|null);

            /** LocationCompute pool */
            pool?: (Ydb.Monitoring.ILocationComputePool|null);

            /** LocationCompute tablet */
            tablet?: (Ydb.Monitoring.ILocationComputeTablet|null);
        }

        /** Represents a LocationCompute. */
        class LocationCompute implements ILocationCompute {

            /**
             * Constructs a new LocationCompute.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Monitoring.ILocationCompute);

            /** LocationCompute node. */
            public node?: (Ydb.Monitoring.ILocationNode|null);

            /** LocationCompute pool. */
            public pool?: (Ydb.Monitoring.ILocationComputePool|null);

            /** LocationCompute tablet. */
            public tablet?: (Ydb.Monitoring.ILocationComputeTablet|null);

            /**
             * Creates a new LocationCompute instance using the specified properties.
             * @param [properties] Properties to set
             * @returns LocationCompute instance
             */
            public static create(properties?: Ydb.Monitoring.ILocationCompute): Ydb.Monitoring.LocationCompute;

            /**
             * Encodes the specified LocationCompute message. Does not implicitly {@link Ydb.Monitoring.LocationCompute.verify|verify} messages.
             * @param message LocationCompute message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Monitoring.ILocationCompute, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified LocationCompute message, length delimited. Does not implicitly {@link Ydb.Monitoring.LocationCompute.verify|verify} messages.
             * @param message LocationCompute message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Monitoring.ILocationCompute, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a LocationCompute message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns LocationCompute
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Monitoring.LocationCompute;

            /**
             * Decodes a LocationCompute message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns LocationCompute
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Monitoring.LocationCompute;

            /**
             * Verifies a LocationCompute message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a LocationCompute message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns LocationCompute
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Monitoring.LocationCompute;

            /**
             * Creates a plain object from a LocationCompute message. Also converts values to other types if specified.
             * @param message LocationCompute
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Monitoring.LocationCompute, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this LocationCompute to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a LocationDatabase. */
        interface ILocationDatabase {

            /** LocationDatabase name */
            name?: (string|null);
        }

        /** Represents a LocationDatabase. */
        class LocationDatabase implements ILocationDatabase {

            /**
             * Constructs a new LocationDatabase.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Monitoring.ILocationDatabase);

            /** LocationDatabase name. */
            public name: string;

            /**
             * Creates a new LocationDatabase instance using the specified properties.
             * @param [properties] Properties to set
             * @returns LocationDatabase instance
             */
            public static create(properties?: Ydb.Monitoring.ILocationDatabase): Ydb.Monitoring.LocationDatabase;

            /**
             * Encodes the specified LocationDatabase message. Does not implicitly {@link Ydb.Monitoring.LocationDatabase.verify|verify} messages.
             * @param message LocationDatabase message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Monitoring.ILocationDatabase, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified LocationDatabase message, length delimited. Does not implicitly {@link Ydb.Monitoring.LocationDatabase.verify|verify} messages.
             * @param message LocationDatabase message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Monitoring.ILocationDatabase, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a LocationDatabase message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns LocationDatabase
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Monitoring.LocationDatabase;

            /**
             * Decodes a LocationDatabase message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns LocationDatabase
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Monitoring.LocationDatabase;

            /**
             * Verifies a LocationDatabase message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a LocationDatabase message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns LocationDatabase
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Monitoring.LocationDatabase;

            /**
             * Creates a plain object from a LocationDatabase message. Also converts values to other types if specified.
             * @param message LocationDatabase
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Monitoring.LocationDatabase, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this LocationDatabase to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a Location. */
        interface ILocation {

            /** Location storage */
            storage?: (Ydb.Monitoring.ILocationStorage|null);

            /** Location compute */
            compute?: (Ydb.Monitoring.ILocationCompute|null);

            /** Location database */
            database?: (Ydb.Monitoring.ILocationDatabase|null);
        }

        /** Represents a Location. */
        class Location implements ILocation {

            /**
             * Constructs a new Location.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Monitoring.ILocation);

            /** Location storage. */
            public storage?: (Ydb.Monitoring.ILocationStorage|null);

            /** Location compute. */
            public compute?: (Ydb.Monitoring.ILocationCompute|null);

            /** Location database. */
            public database?: (Ydb.Monitoring.ILocationDatabase|null);

            /**
             * Creates a new Location instance using the specified properties.
             * @param [properties] Properties to set
             * @returns Location instance
             */
            public static create(properties?: Ydb.Monitoring.ILocation): Ydb.Monitoring.Location;

            /**
             * Encodes the specified Location message. Does not implicitly {@link Ydb.Monitoring.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: Ydb.Monitoring.ILocation, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified Location message, length delimited. Does not implicitly {@link Ydb.Monitoring.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: Ydb.Monitoring.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): Ydb.Monitoring.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)): Ydb.Monitoring.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 }): Ydb.Monitoring.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: Ydb.Monitoring.Location, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this Location to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of an IssueLog. */
        interface IIssueLog {

            /** IssueLog id */
            id?: (string|null);

            /** IssueLog status */
            status?: (Ydb.Monitoring.StatusFlag.Status|null);

            /** IssueLog message */
            message?: (string|null);

            /** IssueLog location */
            location?: (Ydb.Monitoring.ILocation|null);

            /** IssueLog reason */
            reason?: (string[]|null);

            /** IssueLog type */
            type?: (string|null);

            /** IssueLog level */
            level?: (number|null);

            /** IssueLog listed */
            listed?: (number|null);

            /** IssueLog count */
            count?: (number|null);
        }

        /** Represents an IssueLog. */
        class IssueLog implements IIssueLog {

            /**
             * Constructs a new IssueLog.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Monitoring.IIssueLog);

            /** IssueLog id. */
            public id: string;

            /** IssueLog status. */
            public status: Ydb.Monitoring.StatusFlag.Status;

            /** IssueLog message. */
            public message: string;

            /** IssueLog location. */
            public location?: (Ydb.Monitoring.ILocation|null);

            /** IssueLog reason. */
            public reason: string[];

            /** IssueLog type. */
            public type: string;

            /** IssueLog level. */
            public level: number;

            /** IssueLog listed. */
            public listed: number;

            /** IssueLog count. */
            public count: number;

            /**
             * Creates a new IssueLog instance using the specified properties.
             * @param [properties] Properties to set
             * @returns IssueLog instance
             */
            public static create(properties?: Ydb.Monitoring.IIssueLog): Ydb.Monitoring.IssueLog;

            /**
             * Encodes the specified IssueLog message. Does not implicitly {@link Ydb.Monitoring.IssueLog.verify|verify} messages.
             * @param message IssueLog message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Monitoring.IIssueLog, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified IssueLog message, length delimited. Does not implicitly {@link Ydb.Monitoring.IssueLog.verify|verify} messages.
             * @param message IssueLog message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Monitoring.IIssueLog, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes an IssueLog message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns IssueLog
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Monitoring.IssueLog;

            /**
             * Decodes an IssueLog message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns IssueLog
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Monitoring.IssueLog;

            /**
             * Verifies an IssueLog message.
             * @param message Plain 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 IssueLog message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns IssueLog
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Monitoring.IssueLog;

            /**
             * Creates a plain object from an IssueLog message. Also converts values to other types if specified.
             * @param message IssueLog
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Monitoring.IssueLog, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this IssueLog to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a DatabaseStatus. */
        interface IDatabaseStatus {

            /** DatabaseStatus name */
            name?: (string|null);

            /** DatabaseStatus overall */
            overall?: (Ydb.Monitoring.StatusFlag.Status|null);

            /** DatabaseStatus storage */
            storage?: (Ydb.Monitoring.IStorageStatus|null);

            /** DatabaseStatus compute */
            compute?: (Ydb.Monitoring.IComputeStatus|null);
        }

        /** Represents a DatabaseStatus. */
        class DatabaseStatus implements IDatabaseStatus {

            /**
             * Constructs a new DatabaseStatus.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Monitoring.IDatabaseStatus);

            /** DatabaseStatus name. */
            public name: string;

            /** DatabaseStatus overall. */
            public overall: Ydb.Monitoring.StatusFlag.Status;

            /** DatabaseStatus storage. */
            public storage?: (Ydb.Monitoring.IStorageStatus|null);

            /** DatabaseStatus compute. */
            public compute?: (Ydb.Monitoring.IComputeStatus|null);

            /**
             * Creates a new DatabaseStatus instance using the specified properties.
             * @param [properties] Properties to set
             * @returns DatabaseStatus instance
             */
            public static create(properties?: Ydb.Monitoring.IDatabaseStatus): Ydb.Monitoring.DatabaseStatus;

            /**
             * Encodes the specified DatabaseStatus message. Does not implicitly {@link Ydb.Monitoring.DatabaseStatus.verify|verify} messages.
             * @param message DatabaseStatus message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Monitoring.IDatabaseStatus, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified DatabaseStatus message, length delimited. Does not implicitly {@link Ydb.Monitoring.DatabaseStatus.verify|verify} messages.
             * @param message DatabaseStatus message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Monitoring.IDatabaseStatus, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a DatabaseStatus message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns DatabaseStatus
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Monitoring.DatabaseStatus;

            /**
             * Decodes a DatabaseStatus message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns DatabaseStatus
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Monitoring.DatabaseStatus;

            /**
             * Verifies a DatabaseStatus message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a DatabaseStatus message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns DatabaseStatus
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Monitoring.DatabaseStatus;

            /**
             * Creates a plain object from a DatabaseStatus message. Also converts values to other types if specified.
             * @param message DatabaseStatus
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Monitoring.DatabaseStatus, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this DatabaseStatus to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a SelfCheckResult. */
        interface ISelfCheckResult {

            /** SelfCheckResult selfCheckResult */
            selfCheckResult?: (Ydb.Monitoring.SelfCheck.Result|null);

            /** SelfCheckResult issueLog */
            issueLog?: (Ydb.Monitoring.IIssueLog[]|null);

            /** SelfCheckResult databaseStatus */
            databaseStatus?: (Ydb.Monitoring.IDatabaseStatus[]|null);
        }

        /** Represents a SelfCheckResult. */
        class SelfCheckResult implements ISelfCheckResult {

            /**
             * Constructs a new SelfCheckResult.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Monitoring.ISelfCheckResult);

            /** SelfCheckResult selfCheckResult. */
            public selfCheckResult: Ydb.Monitoring.SelfCheck.Result;

            /** SelfCheckResult issueLog. */
            public issueLog: Ydb.Monitoring.IIssueLog[];

            /** SelfCheckResult databaseStatus. */
            public databaseStatus: Ydb.Monitoring.IDatabaseStatus[];

            /**
             * Creates a new SelfCheckResult instance using the specified properties.
             * @param [properties] Properties to set
             * @returns SelfCheckResult instance
             */
            public static create(properties?: Ydb.Monitoring.ISelfCheckResult): Ydb.Monitoring.SelfCheckResult;

            /**
             * Encodes the specified SelfCheckResult message. Does not implicitly {@link Ydb.Monitoring.SelfCheckResult.verify|verify} messages.
             * @param message SelfCheckResult message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Monitoring.ISelfCheckResult, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified SelfCheckResult message, length delimited. Does not implicitly {@link Ydb.Monitoring.SelfCheckResult.verify|verify} messages.
             * @param message SelfCheckResult message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Monitoring.ISelfCheckResult, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a SelfCheckResult message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns SelfCheckResult
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Monitoring.SelfCheckResult;

            /**
             * Decodes a SelfCheckResult message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns SelfCheckResult
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Monitoring.SelfCheckResult;

            /**
             * Verifies a SelfCheckResult message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a SelfCheckResult message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns SelfCheckResult
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Monitoring.SelfCheckResult;

            /**
             * Creates a plain object from a SelfCheckResult message. Also converts values to other types if specified.
             * @param message SelfCheckResult
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Monitoring.SelfCheckResult, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this SelfCheckResult to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }
    }

    /** Namespace Operation. */
    namespace Operation {

        /** Namespace V1. */
        namespace V1 {

            /** Represents an OperationService */
            class OperationService extends $protobuf.rpc.Service {

                /**
                 * Constructs a new OperationService 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 OperationService 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): OperationService;

                /**
                 * Calls GetOperation.
                 * @param request GetOperationRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and GetOperationResponse
                 */
                public getOperation(request: Ydb.Operations.IGetOperationRequest, callback: Ydb.Operation.V1.OperationService.GetOperationCallback): void;

                /**
                 * Calls GetOperation.
                 * @param request GetOperationRequest message or plain object
                 * @returns Promise
                 */
                public getOperation(request: Ydb.Operations.IGetOperationRequest): Promise<Ydb.Operations.GetOperationResponse>;

                /**
                 * Calls CancelOperation.
                 * @param request CancelOperationRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and CancelOperationResponse
                 */
                public cancelOperation(request: Ydb.Operations.ICancelOperationRequest, callback: Ydb.Operation.V1.OperationService.CancelOperationCallback): void;

                /**
                 * Calls CancelOperation.
                 * @param request CancelOperationRequest message or plain object
                 * @returns Promise
                 */
                public cancelOperation(request: Ydb.Operations.ICancelOperationRequest): Promise<Ydb.Operations.CancelOperationResponse>;

                /**
                 * Calls ForgetOperation.
                 * @param request ForgetOperationRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and ForgetOperationResponse
                 */
                public forgetOperation(request: Ydb.Operations.IForgetOperationRequest, callback: Ydb.Operation.V1.OperationService.ForgetOperationCallback): void;

                /**
                 * Calls ForgetOperation.
                 * @param request ForgetOperationRequest message or plain object
                 * @returns Promise
                 */
                public forgetOperation(request: Ydb.Operations.IForgetOperationRequest): Promise<Ydb.Operations.ForgetOperationResponse>;

                /**
                 * 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: Ydb.Operations.IListOperationsRequest, callback: Ydb.Operation.V1.OperationService.ListOperationsCallback): void;

                /**
                 * Calls ListOperations.
                 * @param request ListOperationsRequest message or plain object
                 * @returns Promise
                 */
                public listOperations(request: Ydb.Operations.IListOperationsRequest): Promise<Ydb.Operations.ListOperationsResponse>;
            }

            namespace OperationService {

                /**
                 * Callback as used by {@link Ydb.Operation.V1.OperationService#getOperation}.
                 * @param error Error, if any
                 * @param [response] GetOperationResponse
                 */
                type GetOperationCallback = (error: (Error|null), response?: Ydb.Operations.GetOperationResponse) => void;

                /**
                 * Callback as used by {@link Ydb.Operation.V1.OperationService#cancelOperation}.
                 * @param error Error, if any
                 * @param [response] CancelOperationResponse
                 */
                type CancelOperationCallback = (error: (Error|null), response?: Ydb.Operations.CancelOperationResponse) => void;

                /**
                 * Callback as used by {@link Ydb.Operation.V1.OperationService#forgetOperation}.
                 * @param error Error, if any
                 * @param [response] ForgetOperationResponse
                 */
                type ForgetOperationCallback = (error: (Error|null), response?: Ydb.Operations.ForgetOperationResponse) => void;

                /**
                 * Callback as used by {@link Ydb.Operation.V1.OperationService#listOperations}.
                 * @param error Error, if any
                 * @param [response] ListOperationsResponse
                 */
                type ListOperationsCallback = (error: (Error|null), response?: Ydb.Operations.ListOperationsResponse) => void;
            }
        }
    }

    /** Namespace Query. */
    namespace Query {

        /** Namespace V1. */
        namespace V1 {

            /** Represents a QueryService */
            class QueryService extends $protobuf.rpc.Service {

                /**
                 * Constructs a new QueryService 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 QueryService 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): QueryService;

                /**
                 * Calls CreateSession.
                 * @param request CreateSessionRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and CreateSessionResponse
                 */
                public createSession(request: Ydb.Query.ICreateSessionRequest, callback: Ydb.Query.V1.QueryService.CreateSessionCallback): void;

                /**
                 * Calls CreateSession.
                 * @param request CreateSessionRequest message or plain object
                 * @returns Promise
                 */
                public createSession(request: Ydb.Query.ICreateSessionRequest): Promise<Ydb.Query.CreateSessionResponse>;

                /**
                 * Calls DeleteSession.
                 * @param request DeleteSessionRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and DeleteSessionResponse
                 */
                public deleteSession(request: Ydb.Query.IDeleteSessionRequest, callback: Ydb.Query.V1.QueryService.DeleteSessionCallback): void;

                /**
                 * Calls DeleteSession.
                 * @param request DeleteSessionRequest message or plain object
                 * @returns Promise
                 */
                public deleteSession(request: Ydb.Query.IDeleteSessionRequest): Promise<Ydb.Query.DeleteSessionResponse>;

                /**
                 * Calls AttachSession.
                 * @param request AttachSessionRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and SessionState
                 */
                public attachSession(request: Ydb.Query.IAttachSessionRequest, callback: Ydb.Query.V1.QueryService.AttachSessionCallback): void;

                /**
                 * Calls AttachSession.
                 * @param request AttachSessionRequest message or plain object
                 * @returns Promise
                 */
                public attachSession(request: Ydb.Query.IAttachSessionRequest): Promise<Ydb.Query.SessionState>;

                /**
                 * Calls BeginTransaction.
                 * @param request BeginTransactionRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and BeginTransactionResponse
                 */
                public beginTransaction(request: Ydb.Query.IBeginTransactionRequest, callback: Ydb.Query.V1.QueryService.BeginTransactionCallback): void;

                /**
                 * Calls BeginTransaction.
                 * @param request BeginTransactionRequest message or plain object
                 * @returns Promise
                 */
                public beginTransaction(request: Ydb.Query.IBeginTransactionRequest): Promise<Ydb.Query.BeginTransactionResponse>;

                /**
                 * Calls CommitTransaction.
                 * @param request CommitTransactionRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and CommitTransactionResponse
                 */
                public commitTransaction(request: Ydb.Query.ICommitTransactionRequest, callback: Ydb.Query.V1.QueryService.CommitTransactionCallback): void;

                /**
                 * Calls CommitTransaction.
                 * @param request CommitTransactionRequest message or plain object
                 * @returns Promise
                 */
                public commitTransaction(request: Ydb.Query.ICommitTransactionRequest): Promise<Ydb.Query.CommitTransactionResponse>;

                /**
                 * Calls RollbackTransaction.
                 * @param request RollbackTransactionRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and RollbackTransactionResponse
                 */
                public rollbackTransaction(request: Ydb.Query.IRollbackTransactionRequest, callback: Ydb.Query.V1.QueryService.RollbackTransactionCallback): void;

                /**
                 * Calls RollbackTransaction.
                 * @param request RollbackTransactionRequest message or plain object
                 * @returns Promise
                 */
                public rollbackTransaction(request: Ydb.Query.IRollbackTransactionRequest): Promise<Ydb.Query.RollbackTransactionResponse>;

                /**
                 * Calls ExecuteQuery.
                 * @param request ExecuteQueryRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and ExecuteQueryResponsePart
                 */
                public executeQuery(request: Ydb.Query.IExecuteQueryRequest, callback: Ydb.Query.V1.QueryService.ExecuteQueryCallback): void;

                /**
                 * Calls ExecuteQuery.
                 * @param request ExecuteQueryRequest message or plain object
                 * @returns Promise
                 */
                public executeQuery(request: Ydb.Query.IExecuteQueryRequest): Promise<Ydb.Query.ExecuteQueryResponsePart>;

                /**
                 * Calls ExecuteScript.
                 * @param request ExecuteScriptRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and Operation
                 */
                public executeScript(request: Ydb.Query.IExecuteScriptRequest, callback: Ydb.Query.V1.QueryService.ExecuteScriptCallback): void;

                /**
                 * Calls ExecuteScript.
                 * @param request ExecuteScriptRequest message or plain object
                 * @returns Promise
                 */
                public executeScript(request: Ydb.Query.IExecuteScriptRequest): Promise<Ydb.Operations.Operation>;

                /**
                 * Calls FetchScriptResults.
                 * @param request FetchScriptResultsRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and FetchScriptResultsResponse
                 */
                public fetchScriptResults(request: Ydb.Query.IFetchScriptResultsRequest, callback: Ydb.Query.V1.QueryService.FetchScriptResultsCallback): void;

                /**
                 * Calls FetchScriptResults.
                 * @param request FetchScriptResultsRequest message or plain object
                 * @returns Promise
                 */
                public fetchScriptResults(request: Ydb.Query.IFetchScriptResultsRequest): Promise<Ydb.Query.FetchScriptResultsResponse>;
            }

            namespace QueryService {

                /**
                 * Callback as used by {@link Ydb.Query.V1.QueryService#createSession}.
                 * @param error Error, if any
                 * @param [response] CreateSessionResponse
                 */
                type CreateSessionCallback = (error: (Error|null), response?: Ydb.Query.CreateSessionResponse) => void;

                /**
                 * Callback as used by {@link Ydb.Query.V1.QueryService#deleteSession}.
                 * @param error Error, if any
                 * @param [response] DeleteSessionResponse
                 */
                type DeleteSessionCallback = (error: (Error|null), response?: Ydb.Query.DeleteSessionResponse) => void;

                /**
                 * Callback as used by {@link Ydb.Query.V1.QueryService#attachSession}.
                 * @param error Error, if any
                 * @param [response] SessionState
                 */
                type AttachSessionCallback = (error: (Error|null), response?: Ydb.Query.SessionState) => void;

                /**
                 * Callback as used by {@link Ydb.Query.V1.QueryService#beginTransaction}.
                 * @param error Error, if any
                 * @param [response] BeginTransactionResponse
                 */
                type BeginTransactionCallback = (error: (Error|null), response?: Ydb.Query.BeginTransactionResponse) => void;

                /**
                 * Callback as used by {@link Ydb.Query.V1.QueryService#commitTransaction}.
                 * @param error Error, if any
                 * @param [response] CommitTransactionResponse
                 */
                type CommitTransactionCallback = (error: (Error|null), response?: Ydb.Query.CommitTransactionResponse) => void;

                /**
                 * Callback as used by {@link Ydb.Query.V1.QueryService#rollbackTransaction}.
                 * @param error Error, if any
                 * @param [response] RollbackTransactionResponse
                 */
                type RollbackTransactionCallback = (error: (Error|null), response?: Ydb.Query.RollbackTransactionResponse) => void;

                /**
                 * Callback as used by {@link Ydb.Query.V1.QueryService#executeQuery}.
                 * @param error Error, if any
                 * @param [response] ExecuteQueryResponsePart
                 */
                type ExecuteQueryCallback = (error: (Error|null), response?: Ydb.Query.ExecuteQueryResponsePart) => void;

                /**
                 * Callback as used by {@link Ydb.Query.V1.QueryService#executeScript}.
                 * @param error Error, if any
                 * @param [response] Operation
                 */
                type ExecuteScriptCallback = (error: (Error|null), response?: Ydb.Operations.Operation) => void;

                /**
                 * Callback as used by {@link Ydb.Query.V1.QueryService#fetchScriptResults}.
                 * @param error Error, if any
                 * @param [response] FetchScriptResultsResponse
                 */
                type FetchScriptResultsCallback = (error: (Error|null), response?: Ydb.Query.FetchScriptResultsResponse) => void;
            }
        }

        /** Properties of a CreateSessionRequest. */
        interface ICreateSessionRequest {
        }

        /** Represents a CreateSessionRequest. */
        class CreateSessionRequest implements ICreateSessionRequest {

            /**
             * Constructs a new CreateSessionRequest.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Query.ICreateSessionRequest);

            /**
             * Creates a new CreateSessionRequest instance using the specified properties.
             * @param [properties] Properties to set
             * @returns CreateSessionRequest instance
             */
            public static create(properties?: Ydb.Query.ICreateSessionRequest): Ydb.Query.CreateSessionRequest;

            /**
             * Encodes the specified CreateSessionRequest message. Does not implicitly {@link Ydb.Query.CreateSessionRequest.verify|verify} messages.
             * @param message CreateSessionRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Query.ICreateSessionRequest, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified CreateSessionRequest message, length delimited. Does not implicitly {@link Ydb.Query.CreateSessionRequest.verify|verify} messages.
             * @param message CreateSessionRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Query.ICreateSessionRequest, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a CreateSessionRequest message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns CreateSessionRequest
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Query.CreateSessionRequest;

            /**
             * Decodes a CreateSessionRequest message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns CreateSessionRequest
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Query.CreateSessionRequest;

            /**
             * Verifies a CreateSessionRequest message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a CreateSessionRequest message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns CreateSessionRequest
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Query.CreateSessionRequest;

            /**
             * Creates a plain object from a CreateSessionRequest message. Also converts values to other types if specified.
             * @param message CreateSessionRequest
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Query.CreateSessionRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this CreateSessionRequest to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a CreateSessionResponse. */
        interface ICreateSessionResponse {

            /** CreateSessionResponse status */
            status?: (Ydb.StatusIds.StatusCode|null);

            /** CreateSessionResponse issues */
            issues?: (Ydb.Issue.IIssueMessage[]|null);

            /** CreateSessionResponse sessionId */
            sessionId?: (string|null);

            /** CreateSessionResponse nodeId */
            nodeId?: (number|Long|null);
        }

        /** Represents a CreateSessionResponse. */
        class CreateSessionResponse implements ICreateSessionResponse {

            /**
             * Constructs a new CreateSessionResponse.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Query.ICreateSessionResponse);

            /** CreateSessionResponse status. */
            public status: Ydb.StatusIds.StatusCode;

            /** CreateSessionResponse issues. */
            public issues: Ydb.Issue.IIssueMessage[];

            /** CreateSessionResponse sessionId. */
            public sessionId: string;

            /** CreateSessionResponse nodeId. */
            public nodeId: (number|Long);

            /**
             * Creates a new CreateSessionResponse instance using the specified properties.
             * @param [properties] Properties to set
             * @returns CreateSessionResponse instance
             */
            public static create(properties?: Ydb.Query.ICreateSessionResponse): Ydb.Query.CreateSessionResponse;

            /**
             * Encodes the specified CreateSessionResponse message. Does not implicitly {@link Ydb.Query.CreateSessionResponse.verify|verify} messages.
             * @param message CreateSessionResponse message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Query.ICreateSessionResponse, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified CreateSessionResponse message, length delimited. Does not implicitly {@link Ydb.Query.CreateSessionResponse.verify|verify} messages.
             * @param message CreateSessionResponse message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Query.ICreateSessionResponse, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a CreateSessionResponse message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns CreateSessionResponse
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Query.CreateSessionResponse;

            /**
             * Decodes a CreateSessionResponse message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns CreateSessionResponse
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Query.CreateSessionResponse;

            /**
             * Verifies a CreateSessionResponse message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a CreateSessionResponse message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns CreateSessionResponse
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Query.CreateSessionResponse;

            /**
             * Creates a plain object from a CreateSessionResponse message. Also converts values to other types if specified.
             * @param message CreateSessionResponse
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Query.CreateSessionResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this CreateSessionResponse to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a DeleteSessionRequest. */
        interface IDeleteSessionRequest {

            /** DeleteSessionRequest sessionId */
            sessionId?: (string|null);
        }

        /** Represents a DeleteSessionRequest. */
        class DeleteSessionRequest implements IDeleteSessionRequest {

            /**
             * Constructs a new DeleteSessionRequest.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Query.IDeleteSessionRequest);

            /** DeleteSessionRequest sessionId. */
            public sessionId: string;

            /**
             * Creates a new DeleteSessionRequest instance using the specified properties.
             * @param [properties] Properties to set
             * @returns DeleteSessionRequest instance
             */
            public static create(properties?: Ydb.Query.IDeleteSessionRequest): Ydb.Query.DeleteSessionRequest;

            /**
             * Encodes the specified DeleteSessionRequest message. Does not implicitly {@link Ydb.Query.DeleteSessionRequest.verify|verify} messages.
             * @param message DeleteSessionRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Query.IDeleteSessionRequest, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified DeleteSessionRequest message, length delimited. Does not implicitly {@link Ydb.Query.DeleteSessionRequest.verify|verify} messages.
             * @param message DeleteSessionRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Query.IDeleteSessionRequest, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a DeleteSessionRequest message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns DeleteSessionRequest
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Query.DeleteSessionRequest;

            /**
             * Decodes a DeleteSessionRequest message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns DeleteSessionRequest
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Query.DeleteSessionRequest;

            /**
             * Verifies a DeleteSessionRequest message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a DeleteSessionRequest message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns DeleteSessionRequest
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Query.DeleteSessionRequest;

            /**
             * Creates a plain object from a DeleteSessionRequest message. Also converts values to other types if specified.
             * @param message DeleteSessionRequest
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Query.DeleteSessionRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this DeleteSessionRequest to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a DeleteSessionResponse. */
        interface IDeleteSessionResponse {

            /** DeleteSessionResponse status */
            status?: (Ydb.StatusIds.StatusCode|null);

            /** DeleteSessionResponse issues */
            issues?: (Ydb.Issue.IIssueMessage[]|null);
        }

        /** Represents a DeleteSessionResponse. */
        class DeleteSessionResponse implements IDeleteSessionResponse {

            /**
             * Constructs a new DeleteSessionResponse.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Query.IDeleteSessionResponse);

            /** DeleteSessionResponse status. */
            public status: Ydb.StatusIds.StatusCode;

            /** DeleteSessionResponse issues. */
            public issues: Ydb.Issue.IIssueMessage[];

            /**
             * Creates a new DeleteSessionResponse instance using the specified properties.
             * @param [properties] Properties to set
             * @returns DeleteSessionResponse instance
             */
            public static create(properties?: Ydb.Query.IDeleteSessionResponse): Ydb.Query.DeleteSessionResponse;

            /**
             * Encodes the specified DeleteSessionResponse message. Does not implicitly {@link Ydb.Query.DeleteSessionResponse.verify|verify} messages.
             * @param message DeleteSessionResponse message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Query.IDeleteSessionResponse, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified DeleteSessionResponse message, length delimited. Does not implicitly {@link Ydb.Query.DeleteSessionResponse.verify|verify} messages.
             * @param message DeleteSessionResponse message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Query.IDeleteSessionResponse, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a DeleteSessionResponse message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns DeleteSessionResponse
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Query.DeleteSessionResponse;

            /**
             * Decodes a DeleteSessionResponse message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns DeleteSessionResponse
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Query.DeleteSessionResponse;

            /**
             * Verifies a DeleteSessionResponse message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a DeleteSessionResponse message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns DeleteSessionResponse
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Query.DeleteSessionResponse;

            /**
             * Creates a plain object from a DeleteSessionResponse message. Also converts values to other types if specified.
             * @param message DeleteSessionResponse
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Query.DeleteSessionResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this DeleteSessionResponse to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of an AttachSessionRequest. */
        interface IAttachSessionRequest {

            /** AttachSessionRequest sessionId */
            sessionId?: (string|null);
        }

        /** Represents an AttachSessionRequest. */
        class AttachSessionRequest implements IAttachSessionRequest {

            /**
             * Constructs a new AttachSessionRequest.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Query.IAttachSessionRequest);

            /** AttachSessionRequest sessionId. */
            public sessionId: string;

            /**
             * Creates a new AttachSessionRequest instance using the specified properties.
             * @param [properties] Properties to set
             * @returns AttachSessionRequest instance
             */
            public static create(properties?: Ydb.Query.IAttachSessionRequest): Ydb.Query.AttachSessionRequest;

            /**
             * Encodes the specified AttachSessionRequest message. Does not implicitly {@link Ydb.Query.AttachSessionRequest.verify|verify} messages.
             * @param message AttachSessionRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Query.IAttachSessionRequest, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified AttachSessionRequest message, length delimited. Does not implicitly {@link Ydb.Query.AttachSessionRequest.verify|verify} messages.
             * @param message AttachSessionRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Query.IAttachSessionRequest, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes an AttachSessionRequest message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns AttachSessionRequest
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Query.AttachSessionRequest;

            /**
             * Decodes an AttachSessionRequest message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns AttachSessionRequest
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Query.AttachSessionRequest;

            /**
             * Verifies an AttachSessionRequest message.
             * @param message Plain 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 AttachSessionRequest message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns AttachSessionRequest
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Query.AttachSessionRequest;

            /**
             * Creates a plain object from an AttachSessionRequest message. Also converts values to other types if specified.
             * @param message AttachSessionRequest
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Query.AttachSessionRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this AttachSessionRequest to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a SessionState. */
        interface ISessionState {

            /** SessionState status */
            status?: (Ydb.StatusIds.StatusCode|null);

            /** SessionState issues */
            issues?: (Ydb.Issue.IIssueMessage[]|null);
        }

        /** Represents a SessionState. */
        class SessionState implements ISessionState {

            /**
             * Constructs a new SessionState.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Query.ISessionState);

            /** SessionState status. */
            public status: Ydb.StatusIds.StatusCode;

            /** SessionState issues. */
            public issues: Ydb.Issue.IIssueMessage[];

            /**
             * Creates a new SessionState instance using the specified properties.
             * @param [properties] Properties to set
             * @returns SessionState instance
             */
            public static create(properties?: Ydb.Query.ISessionState): Ydb.Query.SessionState;

            /**
             * Encodes the specified SessionState message. Does not implicitly {@link Ydb.Query.SessionState.verify|verify} messages.
             * @param message SessionState message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Query.ISessionState, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified SessionState message, length delimited. Does not implicitly {@link Ydb.Query.SessionState.verify|verify} messages.
             * @param message SessionState message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Query.ISessionState, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a SessionState message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns SessionState
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Query.SessionState;

            /**
             * Decodes a SessionState message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns SessionState
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Query.SessionState;

            /**
             * Verifies a SessionState message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a SessionState message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns SessionState
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Query.SessionState;

            /**
             * Creates a plain object from a SessionState message. Also converts values to other types if specified.
             * @param message SessionState
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Query.SessionState, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this SessionState to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a SerializableModeSettings. */
        interface ISerializableModeSettings {
        }

        /** Represents a SerializableModeSettings. */
        class SerializableModeSettings implements ISerializableModeSettings {

            /**
             * Constructs a new SerializableModeSettings.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Query.ISerializableModeSettings);

            /**
             * Creates a new SerializableModeSettings instance using the specified properties.
             * @param [properties] Properties to set
             * @returns SerializableModeSettings instance
             */
            public static create(properties?: Ydb.Query.ISerializableModeSettings): Ydb.Query.SerializableModeSettings;

            /**
             * Encodes the specified SerializableModeSettings message. Does not implicitly {@link Ydb.Query.SerializableModeSettings.verify|verify} messages.
             * @param message SerializableModeSettings message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Query.ISerializableModeSettings, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified SerializableModeSettings message, length delimited. Does not implicitly {@link Ydb.Query.SerializableModeSettings.verify|verify} messages.
             * @param message SerializableModeSettings message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Query.ISerializableModeSettings, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a SerializableModeSettings message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns SerializableModeSettings
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Query.SerializableModeSettings;

            /**
             * Decodes a SerializableModeSettings message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns SerializableModeSettings
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Query.SerializableModeSettings;

            /**
             * Verifies a SerializableModeSettings message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a SerializableModeSettings message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns SerializableModeSettings
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Query.SerializableModeSettings;

            /**
             * Creates a plain object from a SerializableModeSettings message. Also converts values to other types if specified.
             * @param message SerializableModeSettings
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Query.SerializableModeSettings, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this SerializableModeSettings to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of an OnlineModeSettings. */
        interface IOnlineModeSettings {

            /** OnlineModeSettings allowInconsistentReads */
            allowInconsistentReads?: (boolean|null);
        }

        /** Represents an OnlineModeSettings. */
        class OnlineModeSettings implements IOnlineModeSettings {

            /**
             * Constructs a new OnlineModeSettings.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Query.IOnlineModeSettings);

            /** OnlineModeSettings allowInconsistentReads. */
            public allowInconsistentReads: boolean;

            /**
             * Creates a new OnlineModeSettings instance using the specified properties.
             * @param [properties] Properties to set
             * @returns OnlineModeSettings instance
             */
            public static create(properties?: Ydb.Query.IOnlineModeSettings): Ydb.Query.OnlineModeSettings;

            /**
             * Encodes the specified OnlineModeSettings message. Does not implicitly {@link Ydb.Query.OnlineModeSettings.verify|verify} messages.
             * @param message OnlineModeSettings message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Query.IOnlineModeSettings, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified OnlineModeSettings message, length delimited. Does not implicitly {@link Ydb.Query.OnlineModeSettings.verify|verify} messages.
             * @param message OnlineModeSettings message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Query.IOnlineModeSettings, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes an OnlineModeSettings message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns OnlineModeSettings
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Query.OnlineModeSettings;

            /**
             * Decodes an OnlineModeSettings message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns OnlineModeSettings
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Query.OnlineModeSettings;

            /**
             * Verifies an OnlineModeSettings message.
             * @param message Plain 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 OnlineModeSettings message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns OnlineModeSettings
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Query.OnlineModeSettings;

            /**
             * Creates a plain object from an OnlineModeSettings message. Also converts values to other types if specified.
             * @param message OnlineModeSettings
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Query.OnlineModeSettings, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this OnlineModeSettings to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a StaleModeSettings. */
        interface IStaleModeSettings {
        }

        /** Represents a StaleModeSettings. */
        class StaleModeSettings implements IStaleModeSettings {

            /**
             * Constructs a new StaleModeSettings.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Query.IStaleModeSettings);

            /**
             * Creates a new StaleModeSettings instance using the specified properties.
             * @param [properties] Properties to set
             * @returns StaleModeSettings instance
             */
            public static create(properties?: Ydb.Query.IStaleModeSettings): Ydb.Query.StaleModeSettings;

            /**
             * Encodes the specified StaleModeSettings message. Does not implicitly {@link Ydb.Query.StaleModeSettings.verify|verify} messages.
             * @param message StaleModeSettings message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Query.IStaleModeSettings, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified StaleModeSettings message, length delimited. Does not implicitly {@link Ydb.Query.StaleModeSettings.verify|verify} messages.
             * @param message StaleModeSettings message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Query.IStaleModeSettings, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a StaleModeSettings message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns StaleModeSettings
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Query.StaleModeSettings;

            /**
             * Decodes a StaleModeSettings message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns StaleModeSettings
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Query.StaleModeSettings;

            /**
             * Verifies a StaleModeSettings message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a StaleModeSettings message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns StaleModeSettings
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Query.StaleModeSettings;

            /**
             * Creates a plain object from a StaleModeSettings message. Also converts values to other types if specified.
             * @param message StaleModeSettings
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Query.StaleModeSettings, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this StaleModeSettings to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a SnapshotModeSettings. */
        interface ISnapshotModeSettings {
        }

        /** Represents a SnapshotModeSettings. */
        class SnapshotModeSettings implements ISnapshotModeSettings {

            /**
             * Constructs a new SnapshotModeSettings.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Query.ISnapshotModeSettings);

            /**
             * Creates a new SnapshotModeSettings instance using the specified properties.
             * @param [properties] Properties to set
             * @returns SnapshotModeSettings instance
             */
            public static create(properties?: Ydb.Query.ISnapshotModeSettings): Ydb.Query.SnapshotModeSettings;

            /**
             * Encodes the specified SnapshotModeSettings message. Does not implicitly {@link Ydb.Query.SnapshotModeSettings.verify|verify} messages.
             * @param message SnapshotModeSettings message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Query.ISnapshotModeSettings, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified SnapshotModeSettings message, length delimited. Does not implicitly {@link Ydb.Query.SnapshotModeSettings.verify|verify} messages.
             * @param message SnapshotModeSettings message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Query.ISnapshotModeSettings, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a SnapshotModeSettings message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns SnapshotModeSettings
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Query.SnapshotModeSettings;

            /**
             * Decodes a SnapshotModeSettings message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns SnapshotModeSettings
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Query.SnapshotModeSettings;

            /**
             * Verifies a SnapshotModeSettings message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a SnapshotModeSettings message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns SnapshotModeSettings
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Query.SnapshotModeSettings;

            /**
             * Creates a plain object from a SnapshotModeSettings message. Also converts values to other types if specified.
             * @param message SnapshotModeSettings
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Query.SnapshotModeSettings, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this SnapshotModeSettings to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a TransactionSettings. */
        interface ITransactionSettings {

            /** TransactionSettings serializableReadWrite */
            serializableReadWrite?: (Ydb.Query.ISerializableModeSettings|null);

            /** TransactionSettings onlineReadOnly */
            onlineReadOnly?: (Ydb.Query.IOnlineModeSettings|null);

            /** TransactionSettings staleReadOnly */
            staleReadOnly?: (Ydb.Query.IStaleModeSettings|null);

            /** TransactionSettings snapshotReadOnly */
            snapshotReadOnly?: (Ydb.Query.ISnapshotModeSettings|null);
        }

        /** Represents a TransactionSettings. */
        class TransactionSettings implements ITransactionSettings {

            /**
             * Constructs a new TransactionSettings.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Query.ITransactionSettings);

            /** TransactionSettings serializableReadWrite. */
            public serializableReadWrite?: (Ydb.Query.ISerializableModeSettings|null);

            /** TransactionSettings onlineReadOnly. */
            public onlineReadOnly?: (Ydb.Query.IOnlineModeSettings|null);

            /** TransactionSettings staleReadOnly. */
            public staleReadOnly?: (Ydb.Query.IStaleModeSettings|null);

            /** TransactionSettings snapshotReadOnly. */
            public snapshotReadOnly?: (Ydb.Query.ISnapshotModeSettings|null);

            /** TransactionSettings txMode. */
            public txMode?: ("serializableReadWrite"|"onlineReadOnly"|"staleReadOnly"|"snapshotReadOnly");

            /**
             * Creates a new TransactionSettings instance using the specified properties.
             * @param [properties] Properties to set
             * @returns TransactionSettings instance
             */
            public static create(properties?: Ydb.Query.ITransactionSettings): Ydb.Query.TransactionSettings;

            /**
             * Encodes the specified TransactionSettings message. Does not implicitly {@link Ydb.Query.TransactionSettings.verify|verify} messages.
             * @param message TransactionSettings message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Query.ITransactionSettings, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified TransactionSettings message, length delimited. Does not implicitly {@link Ydb.Query.TransactionSettings.verify|verify} messages.
             * @param message TransactionSettings message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Query.ITransactionSettings, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a TransactionSettings message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns TransactionSettings
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Query.TransactionSettings;

            /**
             * Decodes a TransactionSettings message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns TransactionSettings
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Query.TransactionSettings;

            /**
             * Verifies a TransactionSettings message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a TransactionSettings message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns TransactionSettings
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Query.TransactionSettings;

            /**
             * Creates a plain object from a TransactionSettings message. Also converts values to other types if specified.
             * @param message TransactionSettings
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Query.TransactionSettings, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this TransactionSettings to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a TransactionControl. */
        interface ITransactionControl {

            /** TransactionControl txId */
            txId?: (string|null);

            /** TransactionControl beginTx */
            beginTx?: (Ydb.Query.ITransactionSettings|null);

            /** TransactionControl commitTx */
            commitTx?: (boolean|null);
        }

        /** Represents a TransactionControl. */
        class TransactionControl implements ITransactionControl {

            /**
             * Constructs a new TransactionControl.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Query.ITransactionControl);

            /** TransactionControl txId. */
            public txId?: (string|null);

            /** TransactionControl beginTx. */
            public beginTx?: (Ydb.Query.ITransactionSettings|null);

            /** TransactionControl commitTx. */
            public commitTx: boolean;

            /** TransactionControl txSelector. */
            public txSelector?: ("txId"|"beginTx");

            /**
             * Creates a new TransactionControl instance using the specified properties.
             * @param [properties] Properties to set
             * @returns TransactionControl instance
             */
            public static create(properties?: Ydb.Query.ITransactionControl): Ydb.Query.TransactionControl;

            /**
             * Encodes the specified TransactionControl message. Does not implicitly {@link Ydb.Query.TransactionControl.verify|verify} messages.
             * @param message TransactionControl message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Query.ITransactionControl, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified TransactionControl message, length delimited. Does not implicitly {@link Ydb.Query.TransactionControl.verify|verify} messages.
             * @param message TransactionControl message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Query.ITransactionControl, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a TransactionControl message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns TransactionControl
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Query.TransactionControl;

            /**
             * Decodes a TransactionControl message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns TransactionControl
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Query.TransactionControl;

            /**
             * Verifies a TransactionControl message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a TransactionControl message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns TransactionControl
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Query.TransactionControl;

            /**
             * Creates a plain object from a TransactionControl message. Also converts values to other types if specified.
             * @param message TransactionControl
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Query.TransactionControl, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this TransactionControl to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a BeginTransactionRequest. */
        interface IBeginTransactionRequest {

            /** BeginTransactionRequest sessionId */
            sessionId?: (string|null);

            /** BeginTransactionRequest txSettings */
            txSettings?: (Ydb.Query.ITransactionSettings|null);
        }

        /** Represents a BeginTransactionRequest. */
        class BeginTransactionRequest implements IBeginTransactionRequest {

            /**
             * Constructs a new BeginTransactionRequest.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Query.IBeginTransactionRequest);

            /** BeginTransactionRequest sessionId. */
            public sessionId: string;

            /** BeginTransactionRequest txSettings. */
            public txSettings?: (Ydb.Query.ITransactionSettings|null);

            /**
             * Creates a new BeginTransactionRequest instance using the specified properties.
             * @param [properties] Properties to set
             * @returns BeginTransactionRequest instance
             */
            public static create(properties?: Ydb.Query.IBeginTransactionRequest): Ydb.Query.BeginTransactionRequest;

            /**
             * Encodes the specified BeginTransactionRequest message. Does not implicitly {@link Ydb.Query.BeginTransactionRequest.verify|verify} messages.
             * @param message BeginTransactionRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Query.IBeginTransactionRequest, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified BeginTransactionRequest message, length delimited. Does not implicitly {@link Ydb.Query.BeginTransactionRequest.verify|verify} messages.
             * @param message BeginTransactionRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Query.IBeginTransactionRequest, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a BeginTransactionRequest message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns BeginTransactionRequest
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Query.BeginTransactionRequest;

            /**
             * Decodes a BeginTransactionRequest message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns BeginTransactionRequest
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Query.BeginTransactionRequest;

            /**
             * Verifies a BeginTransactionRequest message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a BeginTransactionRequest message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns BeginTransactionRequest
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Query.BeginTransactionRequest;

            /**
             * Creates a plain object from a BeginTransactionRequest message. Also converts values to other types if specified.
             * @param message BeginTransactionRequest
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Query.BeginTransactionRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this BeginTransactionRequest to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a TransactionMeta. */
        interface ITransactionMeta {

            /** TransactionMeta id */
            id?: (string|null);
        }

        /** Represents a TransactionMeta. */
        class TransactionMeta implements ITransactionMeta {

            /**
             * Constructs a new TransactionMeta.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Query.ITransactionMeta);

            /** TransactionMeta id. */
            public id: string;

            /**
             * Creates a new TransactionMeta instance using the specified properties.
             * @param [properties] Properties to set
             * @returns TransactionMeta instance
             */
            public static create(properties?: Ydb.Query.ITransactionMeta): Ydb.Query.TransactionMeta;

            /**
             * Encodes the specified TransactionMeta message. Does not implicitly {@link Ydb.Query.TransactionMeta.verify|verify} messages.
             * @param message TransactionMeta message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Query.ITransactionMeta, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified TransactionMeta message, length delimited. Does not implicitly {@link Ydb.Query.TransactionMeta.verify|verify} messages.
             * @param message TransactionMeta message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Query.ITransactionMeta, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a TransactionMeta message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns TransactionMeta
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Query.TransactionMeta;

            /**
             * Decodes a TransactionMeta message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns TransactionMeta
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Query.TransactionMeta;

            /**
             * Verifies a TransactionMeta message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a TransactionMeta message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns TransactionMeta
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Query.TransactionMeta;

            /**
             * Creates a plain object from a TransactionMeta message. Also converts values to other types if specified.
             * @param message TransactionMeta
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Query.TransactionMeta, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this TransactionMeta to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a BeginTransactionResponse. */
        interface IBeginTransactionResponse {

            /** BeginTransactionResponse status */
            status?: (Ydb.StatusIds.StatusCode|null);

            /** BeginTransactionResponse issues */
            issues?: (Ydb.Issue.IIssueMessage[]|null);

            /** BeginTransactionResponse txMeta */
            txMeta?: (Ydb.Query.ITransactionMeta|null);
        }

        /** Represents a BeginTransactionResponse. */
        class BeginTransactionResponse implements IBeginTransactionResponse {

            /**
             * Constructs a new BeginTransactionResponse.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Query.IBeginTransactionResponse);

            /** BeginTransactionResponse status. */
            public status: Ydb.StatusIds.StatusCode;

            /** BeginTransactionResponse issues. */
            public issues: Ydb.Issue.IIssueMessage[];

            /** BeginTransactionResponse txMeta. */
            public txMeta?: (Ydb.Query.ITransactionMeta|null);

            /**
             * Creates a new BeginTransactionResponse instance using the specified properties.
             * @param [properties] Properties to set
             * @returns BeginTransactionResponse instance
             */
            public static create(properties?: Ydb.Query.IBeginTransactionResponse): Ydb.Query.BeginTransactionResponse;

            /**
             * Encodes the specified BeginTransactionResponse message. Does not implicitly {@link Ydb.Query.BeginTransactionResponse.verify|verify} messages.
             * @param message BeginTransactionResponse message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Query.IBeginTransactionResponse, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified BeginTransactionResponse message, length delimited. Does not implicitly {@link Ydb.Query.BeginTransactionResponse.verify|verify} messages.
             * @param message BeginTransactionResponse message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Query.IBeginTransactionResponse, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a BeginTransactionResponse message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns BeginTransactionResponse
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Query.BeginTransactionResponse;

            /**
             * Decodes a BeginTransactionResponse message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns BeginTransactionResponse
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Query.BeginTransactionResponse;

            /**
             * Verifies a BeginTransactionResponse message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a BeginTransactionResponse message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns BeginTransactionResponse
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Query.BeginTransactionResponse;

            /**
             * Creates a plain object from a BeginTransactionResponse message. Also converts values to other types if specified.
             * @param message BeginTransactionResponse
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Query.BeginTransactionResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this BeginTransactionResponse to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a CommitTransactionRequest. */
        interface ICommitTransactionRequest {

            /** CommitTransactionRequest sessionId */
            sessionId?: (string|null);

            /** CommitTransactionRequest txId */
            txId?: (string|null);
        }

        /** Represents a CommitTransactionRequest. */
        class CommitTransactionRequest implements ICommitTransactionRequest {

            /**
             * Constructs a new CommitTransactionRequest.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Query.ICommitTransactionRequest);

            /** CommitTransactionRequest sessionId. */
            public sessionId: string;

            /** CommitTransactionRequest txId. */
            public txId: string;

            /**
             * Creates a new CommitTransactionRequest instance using the specified properties.
             * @param [properties] Properties to set
             * @returns CommitTransactionRequest instance
             */
            public static create(properties?: Ydb.Query.ICommitTransactionRequest): Ydb.Query.CommitTransactionRequest;

            /**
             * Encodes the specified CommitTransactionRequest message. Does not implicitly {@link Ydb.Query.CommitTransactionRequest.verify|verify} messages.
             * @param message CommitTransactionRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Query.ICommitTransactionRequest, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified CommitTransactionRequest message, length delimited. Does not implicitly {@link Ydb.Query.CommitTransactionRequest.verify|verify} messages.
             * @param message CommitTransactionRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Query.ICommitTransactionRequest, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a CommitTransactionRequest message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns CommitTransactionRequest
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Query.CommitTransactionRequest;

            /**
             * Decodes a CommitTransactionRequest message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns CommitTransactionRequest
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Query.CommitTransactionRequest;

            /**
             * Verifies a CommitTransactionRequest message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a CommitTransactionRequest message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns CommitTransactionRequest
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Query.CommitTransactionRequest;

            /**
             * Creates a plain object from a CommitTransactionRequest message. Also converts values to other types if specified.
             * @param message CommitTransactionRequest
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Query.CommitTransactionRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this CommitTransactionRequest to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a CommitTransactionResponse. */
        interface ICommitTransactionResponse {

            /** CommitTransactionResponse status */
            status?: (Ydb.StatusIds.StatusCode|null);

            /** CommitTransactionResponse issues */
            issues?: (Ydb.Issue.IIssueMessage[]|null);
        }

        /** Represents a CommitTransactionResponse. */
        class CommitTransactionResponse implements ICommitTransactionResponse {

            /**
             * Constructs a new CommitTransactionResponse.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Query.ICommitTransactionResponse);

            /** CommitTransactionResponse status. */
            public status: Ydb.StatusIds.StatusCode;

            /** CommitTransactionResponse issues. */
            public issues: Ydb.Issue.IIssueMessage[];

            /**
             * Creates a new CommitTransactionResponse instance using the specified properties.
             * @param [properties] Properties to set
             * @returns CommitTransactionResponse instance
             */
            public static create(properties?: Ydb.Query.ICommitTransactionResponse): Ydb.Query.CommitTransactionResponse;

            /**
             * Encodes the specified CommitTransactionResponse message. Does not implicitly {@link Ydb.Query.CommitTransactionResponse.verify|verify} messages.
             * @param message CommitTransactionResponse message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Query.ICommitTransactionResponse, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified CommitTransactionResponse message, length delimited. Does not implicitly {@link Ydb.Query.CommitTransactionResponse.verify|verify} messages.
             * @param message CommitTransactionResponse message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Query.ICommitTransactionResponse, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a CommitTransactionResponse message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns CommitTransactionResponse
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Query.CommitTransactionResponse;

            /**
             * Decodes a CommitTransactionResponse message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns CommitTransactionResponse
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Query.CommitTransactionResponse;

            /**
             * Verifies a CommitTransactionResponse message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a CommitTransactionResponse message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns CommitTransactionResponse
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Query.CommitTransactionResponse;

            /**
             * Creates a plain object from a CommitTransactionResponse message. Also converts values to other types if specified.
             * @param message CommitTransactionResponse
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Query.CommitTransactionResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this CommitTransactionResponse to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a RollbackTransactionRequest. */
        interface IRollbackTransactionRequest {

            /** RollbackTransactionRequest sessionId */
            sessionId?: (string|null);

            /** RollbackTransactionRequest txId */
            txId?: (string|null);
        }

        /** Represents a RollbackTransactionRequest. */
        class RollbackTransactionRequest implements IRollbackTransactionRequest {

            /**
             * Constructs a new RollbackTransactionRequest.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Query.IRollbackTransactionRequest);

            /** RollbackTransactionRequest sessionId. */
            public sessionId: string;

            /** RollbackTransactionRequest txId. */
            public txId: string;

            /**
             * Creates a new RollbackTransactionRequest instance using the specified properties.
             * @param [properties] Properties to set
             * @returns RollbackTransactionRequest instance
             */
            public static create(properties?: Ydb.Query.IRollbackTransactionRequest): Ydb.Query.RollbackTransactionRequest;

            /**
             * Encodes the specified RollbackTransactionRequest message. Does not implicitly {@link Ydb.Query.RollbackTransactionRequest.verify|verify} messages.
             * @param message RollbackTransactionRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Query.IRollbackTransactionRequest, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified RollbackTransactionRequest message, length delimited. Does not implicitly {@link Ydb.Query.RollbackTransactionRequest.verify|verify} messages.
             * @param message RollbackTransactionRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Query.IRollbackTransactionRequest, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a RollbackTransactionRequest message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns RollbackTransactionRequest
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Query.RollbackTransactionRequest;

            /**
             * Decodes a RollbackTransactionRequest message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns RollbackTransactionRequest
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Query.RollbackTransactionRequest;

            /**
             * Verifies a RollbackTransactionRequest message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a RollbackTransactionRequest message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns RollbackTransactionRequest
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Query.RollbackTransactionRequest;

            /**
             * Creates a plain object from a RollbackTransactionRequest message. Also converts values to other types if specified.
             * @param message RollbackTransactionRequest
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Query.RollbackTransactionRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this RollbackTransactionRequest to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a RollbackTransactionResponse. */
        interface IRollbackTransactionResponse {

            /** RollbackTransactionResponse status */
            status?: (Ydb.StatusIds.StatusCode|null);

            /** RollbackTransactionResponse issues */
            issues?: (Ydb.Issue.IIssueMessage[]|null);
        }

        /** Represents a RollbackTransactionResponse. */
        class RollbackTransactionResponse implements IRollbackTransactionResponse {

            /**
             * Constructs a new RollbackTransactionResponse.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Query.IRollbackTransactionResponse);

            /** RollbackTransactionResponse status. */
            public status: Ydb.StatusIds.StatusCode;

            /** RollbackTransactionResponse issues. */
            public issues: Ydb.Issue.IIssueMessage[];

            /**
             * Creates a new RollbackTransactionResponse instance using the specified properties.
             * @param [properties] Properties to set
             * @returns RollbackTransactionResponse instance
             */
            public static create(properties?: Ydb.Query.IRollbackTransactionResponse): Ydb.Query.RollbackTransactionResponse;

            /**
             * Encodes the specified RollbackTransactionResponse message. Does not implicitly {@link Ydb.Query.RollbackTransactionResponse.verify|verify} messages.
             * @param message RollbackTransactionResponse message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Query.IRollbackTransactionResponse, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified RollbackTransactionResponse message, length delimited. Does not implicitly {@link Ydb.Query.RollbackTransactionResponse.verify|verify} messages.
             * @param message RollbackTransactionResponse message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Query.IRollbackTransactionResponse, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a RollbackTransactionResponse message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns RollbackTransactionResponse
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Query.RollbackTransactionResponse;

            /**
             * Decodes a RollbackTransactionResponse message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns RollbackTransactionResponse
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Query.RollbackTransactionResponse;

            /**
             * Verifies a RollbackTransactionResponse message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a RollbackTransactionResponse message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns RollbackTransactionResponse
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Query.RollbackTransactionResponse;

            /**
             * Creates a plain object from a RollbackTransactionResponse message. Also converts values to other types if specified.
             * @param message RollbackTransactionResponse
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Query.RollbackTransactionResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this RollbackTransactionResponse to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Syntax enum. */
        enum Syntax {
            SYNTAX_UNSPECIFIED = 0,
            SYNTAX_YQL_V1 = 1,
            SYNTAX_PG = 2
        }

        /** Properties of a QueryContent. */
        interface IQueryContent {

            /** QueryContent syntax */
            syntax?: (Ydb.Query.Syntax|null);

            /** QueryContent text */
            text?: (string|null);
        }

        /** Represents a QueryContent. */
        class QueryContent implements IQueryContent {

            /**
             * Constructs a new QueryContent.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Query.IQueryContent);

            /** QueryContent syntax. */
            public syntax: Ydb.Query.Syntax;

            /** QueryContent text. */
            public text: string;

            /**
             * Creates a new QueryContent instance using the specified properties.
             * @param [properties] Properties to set
             * @returns QueryContent instance
             */
            public static create(properties?: Ydb.Query.IQueryContent): Ydb.Query.QueryContent;

            /**
             * Encodes the specified QueryContent message. Does not implicitly {@link Ydb.Query.QueryContent.verify|verify} messages.
             * @param message QueryContent message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Query.IQueryContent, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified QueryContent message, length delimited. Does not implicitly {@link Ydb.Query.QueryContent.verify|verify} messages.
             * @param message QueryContent message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Query.IQueryContent, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a QueryContent message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns QueryContent
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Query.QueryContent;

            /**
             * Decodes a QueryContent message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns QueryContent
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Query.QueryContent;

            /**
             * Verifies a QueryContent message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a QueryContent message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns QueryContent
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Query.QueryContent;

            /**
             * Creates a plain object from a QueryContent message. Also converts values to other types if specified.
             * @param message QueryContent
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Query.QueryContent, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this QueryContent to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** ExecMode enum. */
        enum ExecMode {
            EXEC_MODE_UNSPECIFIED = 0,
            EXEC_MODE_PARSE = 10,
            EXEC_MODE_VALIDATE = 20,
            EXEC_MODE_EXPLAIN = 30,
            EXEC_MODE_EXECUTE = 50
        }

        /** StatsMode enum. */
        enum StatsMode {
            STATS_MODE_UNSPECIFIED = 0,
            STATS_MODE_NONE = 10,
            STATS_MODE_BASIC = 20,
            STATS_MODE_FULL = 30,
            STATS_MODE_PROFILE = 40
        }

        /** Properties of an ExecuteQueryRequest. */
        interface IExecuteQueryRequest {

            /** ExecuteQueryRequest sessionId */
            sessionId?: (string|null);

            /** ExecuteQueryRequest execMode */
            execMode?: (Ydb.Query.ExecMode|null);

            /** ExecuteQueryRequest txControl */
            txControl?: (Ydb.Query.ITransactionControl|null);

            /** ExecuteQueryRequest queryContent */
            queryContent?: (Ydb.Query.IQueryContent|null);

            /** ExecuteQueryRequest parameters */
            parameters?: ({ [k: string]: Ydb.ITypedValue }|null);

            /** ExecuteQueryRequest statsMode */
            statsMode?: (Ydb.Query.StatsMode|null);

            /** ExecuteQueryRequest concurrentResultSets */
            concurrentResultSets?: (boolean|null);

            /** ExecuteQueryRequest responsePartLimitBytes */
            responsePartLimitBytes?: (number|Long|null);

            /** ExecuteQueryRequest poolId */
            poolId?: (string|null);
        }

        /** Represents an ExecuteQueryRequest. */
        class ExecuteQueryRequest implements IExecuteQueryRequest {

            /**
             * Constructs a new ExecuteQueryRequest.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Query.IExecuteQueryRequest);

            /** ExecuteQueryRequest sessionId. */
            public sessionId: string;

            /** ExecuteQueryRequest execMode. */
            public execMode: Ydb.Query.ExecMode;

            /** ExecuteQueryRequest txControl. */
            public txControl?: (Ydb.Query.ITransactionControl|null);

            /** ExecuteQueryRequest queryContent. */
            public queryContent?: (Ydb.Query.IQueryContent|null);

            /** ExecuteQueryRequest parameters. */
            public parameters: { [k: string]: Ydb.ITypedValue };

            /** ExecuteQueryRequest statsMode. */
            public statsMode: Ydb.Query.StatsMode;

            /** ExecuteQueryRequest concurrentResultSets. */
            public concurrentResultSets: boolean;

            /** ExecuteQueryRequest responsePartLimitBytes. */
            public responsePartLimitBytes: (number|Long);

            /** ExecuteQueryRequest poolId. */
            public poolId: string;

            /** ExecuteQueryRequest query. */
            public query?: "queryContent";

            /**
             * Creates a new ExecuteQueryRequest instance using the specified properties.
             * @param [properties] Properties to set
             * @returns ExecuteQueryRequest instance
             */
            public static create(properties?: Ydb.Query.IExecuteQueryRequest): Ydb.Query.ExecuteQueryRequest;

            /**
             * Encodes the specified ExecuteQueryRequest message. Does not implicitly {@link Ydb.Query.ExecuteQueryRequest.verify|verify} messages.
             * @param message ExecuteQueryRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Query.IExecuteQueryRequest, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified ExecuteQueryRequest message, length delimited. Does not implicitly {@link Ydb.Query.ExecuteQueryRequest.verify|verify} messages.
             * @param message ExecuteQueryRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Query.IExecuteQueryRequest, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes an ExecuteQueryRequest message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns ExecuteQueryRequest
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Query.ExecuteQueryRequest;

            /**
             * Decodes an ExecuteQueryRequest message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns ExecuteQueryRequest
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Query.ExecuteQueryRequest;

            /**
             * Verifies an ExecuteQueryRequest message.
             * @param message Plain 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 ExecuteQueryRequest message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns ExecuteQueryRequest
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Query.ExecuteQueryRequest;

            /**
             * Creates a plain object from an ExecuteQueryRequest message. Also converts values to other types if specified.
             * @param message ExecuteQueryRequest
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Query.ExecuteQueryRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this ExecuteQueryRequest to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a ResultSetMeta. */
        interface IResultSetMeta {

            /** ResultSetMeta columns */
            columns?: (Ydb.IColumn[]|null);
        }

        /** Represents a ResultSetMeta. */
        class ResultSetMeta implements IResultSetMeta {

            /**
             * Constructs a new ResultSetMeta.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Query.IResultSetMeta);

            /** ResultSetMeta columns. */
            public columns: Ydb.IColumn[];

            /**
             * Creates a new ResultSetMeta instance using the specified properties.
             * @param [properties] Properties to set
             * @returns ResultSetMeta instance
             */
            public static create(properties?: Ydb.Query.IResultSetMeta): Ydb.Query.ResultSetMeta;

            /**
             * Encodes the specified ResultSetMeta message. Does not implicitly {@link Ydb.Query.ResultSetMeta.verify|verify} messages.
             * @param message ResultSetMeta message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Query.IResultSetMeta, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified ResultSetMeta message, length delimited. Does not implicitly {@link Ydb.Query.ResultSetMeta.verify|verify} messages.
             * @param message ResultSetMeta message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Query.IResultSetMeta, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a ResultSetMeta message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns ResultSetMeta
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Query.ResultSetMeta;

            /**
             * Decodes a ResultSetMeta message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns ResultSetMeta
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Query.ResultSetMeta;

            /**
             * Verifies a ResultSetMeta message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a ResultSetMeta message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns ResultSetMeta
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Query.ResultSetMeta;

            /**
             * Creates a plain object from a ResultSetMeta message. Also converts values to other types if specified.
             * @param message ResultSetMeta
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Query.ResultSetMeta, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this ResultSetMeta to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of an ExecuteQueryResponsePart. */
        interface IExecuteQueryResponsePart {

            /** ExecuteQueryResponsePart status */
            status?: (Ydb.StatusIds.StatusCode|null);

            /** ExecuteQueryResponsePart issues */
            issues?: (Ydb.Issue.IIssueMessage[]|null);

            /** ExecuteQueryResponsePart resultSetIndex */
            resultSetIndex?: (number|Long|null);

            /** ExecuteQueryResponsePart resultSet */
            resultSet?: (Ydb.IResultSet|null);

            /** ExecuteQueryResponsePart execStats */
            execStats?: (Ydb.TableStats.IQueryStats|null);

            /** ExecuteQueryResponsePart txMeta */
            txMeta?: (Ydb.Query.ITransactionMeta|null);
        }

        /** Represents an ExecuteQueryResponsePart. */
        class ExecuteQueryResponsePart implements IExecuteQueryResponsePart {

            /**
             * Constructs a new ExecuteQueryResponsePart.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Query.IExecuteQueryResponsePart);

            /** ExecuteQueryResponsePart status. */
            public status: Ydb.StatusIds.StatusCode;

            /** ExecuteQueryResponsePart issues. */
            public issues: Ydb.Issue.IIssueMessage[];

            /** ExecuteQueryResponsePart resultSetIndex. */
            public resultSetIndex: (number|Long);

            /** ExecuteQueryResponsePart resultSet. */
            public resultSet?: (Ydb.IResultSet|null);

            /** ExecuteQueryResponsePart execStats. */
            public execStats?: (Ydb.TableStats.IQueryStats|null);

            /** ExecuteQueryResponsePart txMeta. */
            public txMeta?: (Ydb.Query.ITransactionMeta|null);

            /**
             * Creates a new ExecuteQueryResponsePart instance using the specified properties.
             * @param [properties] Properties to set
             * @returns ExecuteQueryResponsePart instance
             */
            public static create(properties?: Ydb.Query.IExecuteQueryResponsePart): Ydb.Query.ExecuteQueryResponsePart;

            /**
             * Encodes the specified ExecuteQueryResponsePart message. Does not implicitly {@link Ydb.Query.ExecuteQueryResponsePart.verify|verify} messages.
             * @param message ExecuteQueryResponsePart message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Query.IExecuteQueryResponsePart, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified ExecuteQueryResponsePart message, length delimited. Does not implicitly {@link Ydb.Query.ExecuteQueryResponsePart.verify|verify} messages.
             * @param message ExecuteQueryResponsePart message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Query.IExecuteQueryResponsePart, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes an ExecuteQueryResponsePart message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns ExecuteQueryResponsePart
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Query.ExecuteQueryResponsePart;

            /**
             * Decodes an ExecuteQueryResponsePart message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns ExecuteQueryResponsePart
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Query.ExecuteQueryResponsePart;

            /**
             * Verifies an ExecuteQueryResponsePart message.
             * @param message Plain 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 ExecuteQueryResponsePart message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns ExecuteQueryResponsePart
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Query.ExecuteQueryResponsePart;

            /**
             * Creates a plain object from an ExecuteQueryResponsePart message. Also converts values to other types if specified.
             * @param message ExecuteQueryResponsePart
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Query.ExecuteQueryResponsePart, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this ExecuteQueryResponsePart to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of an ExecuteScriptRequest. */
        interface IExecuteScriptRequest {

            /** ExecuteScriptRequest operationParams */
            operationParams?: (Ydb.Operations.IOperationParams|null);

            /** ExecuteScriptRequest execMode */
            execMode?: (Ydb.Query.ExecMode|null);

            /** ExecuteScriptRequest scriptContent */
            scriptContent?: (Ydb.Query.IQueryContent|null);

            /** ExecuteScriptRequest parameters */
            parameters?: ({ [k: string]: Ydb.ITypedValue }|null);

            /** ExecuteScriptRequest statsMode */
            statsMode?: (Ydb.Query.StatsMode|null);

            /** ExecuteScriptRequest resultsTtl */
            resultsTtl?: (google.protobuf.IDuration|null);

            /** ExecuteScriptRequest poolId */
            poolId?: (string|null);
        }

        /** Represents an ExecuteScriptRequest. */
        class ExecuteScriptRequest implements IExecuteScriptRequest {

            /**
             * Constructs a new ExecuteScriptRequest.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Query.IExecuteScriptRequest);

            /** ExecuteScriptRequest operationParams. */
            public operationParams?: (Ydb.Operations.IOperationParams|null);

            /** ExecuteScriptRequest execMode. */
            public execMode: Ydb.Query.ExecMode;

            /** ExecuteScriptRequest scriptContent. */
            public scriptContent?: (Ydb.Query.IQueryContent|null);

            /** ExecuteScriptRequest parameters. */
            public parameters: { [k: string]: Ydb.ITypedValue };

            /** ExecuteScriptRequest statsMode. */
            public statsMode: Ydb.Query.StatsMode;

            /** ExecuteScriptRequest resultsTtl. */
            public resultsTtl?: (google.protobuf.IDuration|null);

            /** ExecuteScriptRequest poolId. */
            public poolId: string;

            /**
             * Creates a new ExecuteScriptRequest instance using the specified properties.
             * @param [properties] Properties to set
             * @returns ExecuteScriptRequest instance
             */
            public static create(properties?: Ydb.Query.IExecuteScriptRequest): Ydb.Query.ExecuteScriptRequest;

            /**
             * Encodes the specified ExecuteScriptRequest message. Does not implicitly {@link Ydb.Query.ExecuteScriptRequest.verify|verify} messages.
             * @param message ExecuteScriptRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Query.IExecuteScriptRequest, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified ExecuteScriptRequest message, length delimited. Does not implicitly {@link Ydb.Query.ExecuteScriptRequest.verify|verify} messages.
             * @param message ExecuteScriptRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Query.IExecuteScriptRequest, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes an ExecuteScriptRequest message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns ExecuteScriptRequest
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Query.ExecuteScriptRequest;

            /**
             * Decodes an ExecuteScriptRequest message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns ExecuteScriptRequest
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Query.ExecuteScriptRequest;

            /**
             * Verifies an ExecuteScriptRequest message.
             * @param message Plain 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 ExecuteScriptRequest message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns ExecuteScriptRequest
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Query.ExecuteScriptRequest;

            /**
             * Creates a plain object from an ExecuteScriptRequest message. Also converts values to other types if specified.
             * @param message ExecuteScriptRequest
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Query.ExecuteScriptRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this ExecuteScriptRequest to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** ExecStatus enum. */
        enum ExecStatus {
            EXEC_STATUS_UNSPECIFIED = 0,
            EXEC_STATUS_STARTING = 10,
            EXEC_STATUS_ABORTED = 20,
            EXEC_STATUS_CANCELLED = 30,
            EXEC_STATUS_COMPLETED = 40,
            EXEC_STATUS_FAILED = 50
        }

        /** Properties of an ExecuteScriptMetadata. */
        interface IExecuteScriptMetadata {

            /** ExecuteScriptMetadata executionId */
            executionId?: (string|null);

            /** ExecuteScriptMetadata execStatus */
            execStatus?: (Ydb.Query.ExecStatus|null);

            /** ExecuteScriptMetadata scriptContent */
            scriptContent?: (Ydb.Query.IQueryContent|null);

            /** ExecuteScriptMetadata resultSetsMeta */
            resultSetsMeta?: (Ydb.Query.IResultSetMeta[]|null);

            /** ExecuteScriptMetadata execMode */
            execMode?: (Ydb.Query.ExecMode|null);

            /** ExecuteScriptMetadata execStats */
            execStats?: (Ydb.TableStats.IQueryStats|null);
        }

        /** Represents an ExecuteScriptMetadata. */
        class ExecuteScriptMetadata implements IExecuteScriptMetadata {

            /**
             * Constructs a new ExecuteScriptMetadata.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Query.IExecuteScriptMetadata);

            /** ExecuteScriptMetadata executionId. */
            public executionId: string;

            /** ExecuteScriptMetadata execStatus. */
            public execStatus: Ydb.Query.ExecStatus;

            /** ExecuteScriptMetadata scriptContent. */
            public scriptContent?: (Ydb.Query.IQueryContent|null);

            /** ExecuteScriptMetadata resultSetsMeta. */
            public resultSetsMeta: Ydb.Query.IResultSetMeta[];

            /** ExecuteScriptMetadata execMode. */
            public execMode: Ydb.Query.ExecMode;

            /** ExecuteScriptMetadata execStats. */
            public execStats?: (Ydb.TableStats.IQueryStats|null);

            /**
             * Creates a new ExecuteScriptMetadata instance using the specified properties.
             * @param [properties] Properties to set
             * @returns ExecuteScriptMetadata instance
             */
            public static create(properties?: Ydb.Query.IExecuteScriptMetadata): Ydb.Query.ExecuteScriptMetadata;

            /**
             * Encodes the specified ExecuteScriptMetadata message. Does not implicitly {@link Ydb.Query.ExecuteScriptMetadata.verify|verify} messages.
             * @param message ExecuteScriptMetadata message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Query.IExecuteScriptMetadata, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified ExecuteScriptMetadata message, length delimited. Does not implicitly {@link Ydb.Query.ExecuteScriptMetadata.verify|verify} messages.
             * @param message ExecuteScriptMetadata message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Query.IExecuteScriptMetadata, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes an ExecuteScriptMetadata message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns ExecuteScriptMetadata
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Query.ExecuteScriptMetadata;

            /**
             * Decodes an ExecuteScriptMetadata message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns ExecuteScriptMetadata
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Query.ExecuteScriptMetadata;

            /**
             * Verifies an ExecuteScriptMetadata message.
             * @param message Plain 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 ExecuteScriptMetadata message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns ExecuteScriptMetadata
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Query.ExecuteScriptMetadata;

            /**
             * Creates a plain object from an ExecuteScriptMetadata message. Also converts values to other types if specified.
             * @param message ExecuteScriptMetadata
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Query.ExecuteScriptMetadata, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this ExecuteScriptMetadata to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a FetchScriptResultsRequest. */
        interface IFetchScriptResultsRequest {

            /** FetchScriptResultsRequest operationId */
            operationId?: (string|null);

            /** FetchScriptResultsRequest resultSetIndex */
            resultSetIndex?: (number|Long|null);

            /** FetchScriptResultsRequest fetchToken */
            fetchToken?: (string|null);

            /** FetchScriptResultsRequest rowsLimit */
            rowsLimit?: (number|Long|null);
        }

        /** Represents a FetchScriptResultsRequest. */
        class FetchScriptResultsRequest implements IFetchScriptResultsRequest {

            /**
             * Constructs a new FetchScriptResultsRequest.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Query.IFetchScriptResultsRequest);

            /** FetchScriptResultsRequest operationId. */
            public operationId: string;

            /** FetchScriptResultsRequest resultSetIndex. */
            public resultSetIndex: (number|Long);

            /** FetchScriptResultsRequest fetchToken. */
            public fetchToken: string;

            /** FetchScriptResultsRequest rowsLimit. */
            public rowsLimit: (number|Long);

            /**
             * Creates a new FetchScriptResultsRequest instance using the specified properties.
             * @param [properties] Properties to set
             * @returns FetchScriptResultsRequest instance
             */
            public static create(properties?: Ydb.Query.IFetchScriptResultsRequest): Ydb.Query.FetchScriptResultsRequest;

            /**
             * Encodes the specified FetchScriptResultsRequest message. Does not implicitly {@link Ydb.Query.FetchScriptResultsRequest.verify|verify} messages.
             * @param message FetchScriptResultsRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Query.IFetchScriptResultsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified FetchScriptResultsRequest message, length delimited. Does not implicitly {@link Ydb.Query.FetchScriptResultsRequest.verify|verify} messages.
             * @param message FetchScriptResultsRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Query.IFetchScriptResultsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a FetchScriptResultsRequest message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns FetchScriptResultsRequest
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Query.FetchScriptResultsRequest;

            /**
             * Decodes a FetchScriptResultsRequest message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns FetchScriptResultsRequest
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Query.FetchScriptResultsRequest;

            /**
             * Verifies a FetchScriptResultsRequest message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a FetchScriptResultsRequest message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns FetchScriptResultsRequest
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Query.FetchScriptResultsRequest;

            /**
             * Creates a plain object from a FetchScriptResultsRequest message. Also converts values to other types if specified.
             * @param message FetchScriptResultsRequest
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Query.FetchScriptResultsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this FetchScriptResultsRequest to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a FetchScriptResultsResponse. */
        interface IFetchScriptResultsResponse {

            /** FetchScriptResultsResponse status */
            status?: (Ydb.StatusIds.StatusCode|null);

            /** FetchScriptResultsResponse issues */
            issues?: (Ydb.Issue.IIssueMessage[]|null);

            /** FetchScriptResultsResponse resultSetIndex */
            resultSetIndex?: (number|Long|null);

            /** FetchScriptResultsResponse resultSet */
            resultSet?: (Ydb.IResultSet|null);

            /** FetchScriptResultsResponse nextFetchToken */
            nextFetchToken?: (string|null);
        }

        /** Represents a FetchScriptResultsResponse. */
        class FetchScriptResultsResponse implements IFetchScriptResultsResponse {

            /**
             * Constructs a new FetchScriptResultsResponse.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Query.IFetchScriptResultsResponse);

            /** FetchScriptResultsResponse status. */
            public status: Ydb.StatusIds.StatusCode;

            /** FetchScriptResultsResponse issues. */
            public issues: Ydb.Issue.IIssueMessage[];

            /** FetchScriptResultsResponse resultSetIndex. */
            public resultSetIndex: (number|Long);

            /** FetchScriptResultsResponse resultSet. */
            public resultSet?: (Ydb.IResultSet|null);

            /** FetchScriptResultsResponse nextFetchToken. */
            public nextFetchToken: string;

            /**
             * Creates a new FetchScriptResultsResponse instance using the specified properties.
             * @param [properties] Properties to set
             * @returns FetchScriptResultsResponse instance
             */
            public static create(properties?: Ydb.Query.IFetchScriptResultsResponse): Ydb.Query.FetchScriptResultsResponse;

            /**
             * Encodes the specified FetchScriptResultsResponse message. Does not implicitly {@link Ydb.Query.FetchScriptResultsResponse.verify|verify} messages.
             * @param message FetchScriptResultsResponse message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Query.IFetchScriptResultsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified FetchScriptResultsResponse message, length delimited. Does not implicitly {@link Ydb.Query.FetchScriptResultsResponse.verify|verify} messages.
             * @param message FetchScriptResultsResponse message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Query.IFetchScriptResultsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a FetchScriptResultsResponse message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns FetchScriptResultsResponse
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Query.FetchScriptResultsResponse;

            /**
             * Decodes a FetchScriptResultsResponse message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns FetchScriptResultsResponse
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Query.FetchScriptResultsResponse;

            /**
             * Verifies a FetchScriptResultsResponse message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a FetchScriptResultsResponse message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns FetchScriptResultsResponse
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Query.FetchScriptResultsResponse;

            /**
             * Creates a plain object from a FetchScriptResultsResponse message. Also converts values to other types if specified.
             * @param message FetchScriptResultsResponse
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Query.FetchScriptResultsResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this FetchScriptResultsResponse to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a Script. */
        interface IScript {

            /** Script scriptContent */
            scriptContent?: (Ydb.Query.IQueryContent|null);
        }

        /** Represents a Script. */
        class Script implements IScript {

            /**
             * Constructs a new Script.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Query.IScript);

            /** Script scriptContent. */
            public scriptContent?: (Ydb.Query.IQueryContent|null);

            /**
             * Creates a new Script instance using the specified properties.
             * @param [properties] Properties to set
             * @returns Script instance
             */
            public static create(properties?: Ydb.Query.IScript): Ydb.Query.Script;

            /**
             * Encodes the specified Script message. Does not implicitly {@link Ydb.Query.Script.verify|verify} messages.
             * @param message Script message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Query.IScript, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified Script message, length delimited. Does not implicitly {@link Ydb.Query.Script.verify|verify} messages.
             * @param message Script message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Query.IScript, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a Script message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns Script
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Query.Script;

            /**
             * Decodes a Script message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns Script
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Query.Script;

            /**
             * Verifies a Script message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a Script message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns Script
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Query.Script;

            /**
             * Creates a plain object from a Script message. Also converts values to other types if specified.
             * @param message Script
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Query.Script, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this Script to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }
    }

    /** Namespace TableStats. */
    namespace TableStats {

        /** Properties of an OperationStats. */
        interface IOperationStats {

            /** OperationStats rows */
            rows?: (number|Long|null);

            /** OperationStats bytes */
            bytes?: (number|Long|null);
        }

        /** Represents an OperationStats. */
        class OperationStats implements IOperationStats {

            /**
             * Constructs a new OperationStats.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.TableStats.IOperationStats);

            /** OperationStats rows. */
            public rows: (number|Long);

            /** OperationStats bytes. */
            public bytes: (number|Long);

            /**
             * Creates a new OperationStats instance using the specified properties.
             * @param [properties] Properties to set
             * @returns OperationStats instance
             */
            public static create(properties?: Ydb.TableStats.IOperationStats): Ydb.TableStats.OperationStats;

            /**
             * Encodes the specified OperationStats message. Does not implicitly {@link Ydb.TableStats.OperationStats.verify|verify} messages.
             * @param message OperationStats message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.TableStats.IOperationStats, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified OperationStats message, length delimited. Does not implicitly {@link Ydb.TableStats.OperationStats.verify|verify} messages.
             * @param message OperationStats message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.TableStats.IOperationStats, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes an OperationStats message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns OperationStats
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.TableStats.OperationStats;

            /**
             * Decodes an OperationStats message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns OperationStats
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.TableStats.OperationStats;

            /**
             * Verifies an OperationStats message.
             * @param message Plain 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 OperationStats message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns OperationStats
             */
            public static fromObject(object: { [k: string]: any }): Ydb.TableStats.OperationStats;

            /**
             * Creates a plain object from an OperationStats message. Also converts values to other types if specified.
             * @param message OperationStats
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.TableStats.OperationStats, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this OperationStats to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a TableAccessStats. */
        interface ITableAccessStats {

            /** TableAccessStats name */
            name?: (string|null);

            /** TableAccessStats reads */
            reads?: (Ydb.TableStats.IOperationStats|null);

            /** TableAccessStats updates */
            updates?: (Ydb.TableStats.IOperationStats|null);

            /** TableAccessStats deletes */
            deletes?: (Ydb.TableStats.IOperationStats|null);

            /** TableAccessStats partitionsCount */
            partitionsCount?: (number|Long|null);
        }

        /** Represents a TableAccessStats. */
        class TableAccessStats implements ITableAccessStats {

            /**
             * Constructs a new TableAccessStats.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.TableStats.ITableAccessStats);

            /** TableAccessStats name. */
            public name: string;

            /** TableAccessStats reads. */
            public reads?: (Ydb.TableStats.IOperationStats|null);

            /** TableAccessStats updates. */
            public updates?: (Ydb.TableStats.IOperationStats|null);

            /** TableAccessStats deletes. */
            public deletes?: (Ydb.TableStats.IOperationStats|null);

            /** TableAccessStats partitionsCount. */
            public partitionsCount: (number|Long);

            /**
             * Creates a new TableAccessStats instance using the specified properties.
             * @param [properties] Properties to set
             * @returns TableAccessStats instance
             */
            public static create(properties?: Ydb.TableStats.ITableAccessStats): Ydb.TableStats.TableAccessStats;

            /**
             * Encodes the specified TableAccessStats message. Does not implicitly {@link Ydb.TableStats.TableAccessStats.verify|verify} messages.
             * @param message TableAccessStats message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.TableStats.ITableAccessStats, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified TableAccessStats message, length delimited. Does not implicitly {@link Ydb.TableStats.TableAccessStats.verify|verify} messages.
             * @param message TableAccessStats message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.TableStats.ITableAccessStats, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a TableAccessStats message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns TableAccessStats
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.TableStats.TableAccessStats;

            /**
             * Decodes a TableAccessStats message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns TableAccessStats
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.TableStats.TableAccessStats;

            /**
             * Verifies a TableAccessStats message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a TableAccessStats message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns TableAccessStats
             */
            public static fromObject(object: { [k: string]: any }): Ydb.TableStats.TableAccessStats;

            /**
             * Creates a plain object from a TableAccessStats message. Also converts values to other types if specified.
             * @param message TableAccessStats
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.TableStats.TableAccessStats, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this TableAccessStats to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a QueryPhaseStats. */
        interface IQueryPhaseStats {

            /** QueryPhaseStats durationUs */
            durationUs?: (number|Long|null);

            /** QueryPhaseStats tableAccess */
            tableAccess?: (Ydb.TableStats.ITableAccessStats[]|null);

            /** QueryPhaseStats cpuTimeUs */
            cpuTimeUs?: (number|Long|null);

            /** QueryPhaseStats affectedShards */
            affectedShards?: (number|Long|null);

            /** QueryPhaseStats literalPhase */
            literalPhase?: (boolean|null);
        }

        /** Represents a QueryPhaseStats. */
        class QueryPhaseStats implements IQueryPhaseStats {

            /**
             * Constructs a new QueryPhaseStats.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.TableStats.IQueryPhaseStats);

            /** QueryPhaseStats durationUs. */
            public durationUs: (number|Long);

            /** QueryPhaseStats tableAccess. */
            public tableAccess: Ydb.TableStats.ITableAccessStats[];

            /** QueryPhaseStats cpuTimeUs. */
            public cpuTimeUs: (number|Long);

            /** QueryPhaseStats affectedShards. */
            public affectedShards: (number|Long);

            /** QueryPhaseStats literalPhase. */
            public literalPhase: boolean;

            /**
             * Creates a new QueryPhaseStats instance using the specified properties.
             * @param [properties] Properties to set
             * @returns QueryPhaseStats instance
             */
            public static create(properties?: Ydb.TableStats.IQueryPhaseStats): Ydb.TableStats.QueryPhaseStats;

            /**
             * Encodes the specified QueryPhaseStats message. Does not implicitly {@link Ydb.TableStats.QueryPhaseStats.verify|verify} messages.
             * @param message QueryPhaseStats message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.TableStats.IQueryPhaseStats, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified QueryPhaseStats message, length delimited. Does not implicitly {@link Ydb.TableStats.QueryPhaseStats.verify|verify} messages.
             * @param message QueryPhaseStats message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.TableStats.IQueryPhaseStats, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a QueryPhaseStats message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns QueryPhaseStats
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.TableStats.QueryPhaseStats;

            /**
             * Decodes a QueryPhaseStats message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns QueryPhaseStats
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.TableStats.QueryPhaseStats;

            /**
             * Verifies a QueryPhaseStats message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a QueryPhaseStats message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns QueryPhaseStats
             */
            public static fromObject(object: { [k: string]: any }): Ydb.TableStats.QueryPhaseStats;

            /**
             * Creates a plain object from a QueryPhaseStats message. Also converts values to other types if specified.
             * @param message QueryPhaseStats
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.TableStats.QueryPhaseStats, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this QueryPhaseStats to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a CompilationStats. */
        interface ICompilationStats {

            /** CompilationStats fromCache */
            fromCache?: (boolean|null);

            /** CompilationStats durationUs */
            durationUs?: (number|Long|null);

            /** CompilationStats cpuTimeUs */
            cpuTimeUs?: (number|Long|null);
        }

        /** Represents a CompilationStats. */
        class CompilationStats implements ICompilationStats {

            /**
             * Constructs a new CompilationStats.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.TableStats.ICompilationStats);

            /** CompilationStats fromCache. */
            public fromCache: boolean;

            /** CompilationStats durationUs. */
            public durationUs: (number|Long);

            /** CompilationStats cpuTimeUs. */
            public cpuTimeUs: (number|Long);

            /**
             * Creates a new CompilationStats instance using the specified properties.
             * @param [properties] Properties to set
             * @returns CompilationStats instance
             */
            public static create(properties?: Ydb.TableStats.ICompilationStats): Ydb.TableStats.CompilationStats;

            /**
             * Encodes the specified CompilationStats message. Does not implicitly {@link Ydb.TableStats.CompilationStats.verify|verify} messages.
             * @param message CompilationStats message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.TableStats.ICompilationStats, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified CompilationStats message, length delimited. Does not implicitly {@link Ydb.TableStats.CompilationStats.verify|verify} messages.
             * @param message CompilationStats message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.TableStats.ICompilationStats, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a CompilationStats message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns CompilationStats
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.TableStats.CompilationStats;

            /**
             * Decodes a CompilationStats message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns CompilationStats
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.TableStats.CompilationStats;

            /**
             * Verifies a CompilationStats message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a CompilationStats message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns CompilationStats
             */
            public static fromObject(object: { [k: string]: any }): Ydb.TableStats.CompilationStats;

            /**
             * Creates a plain object from a CompilationStats message. Also converts values to other types if specified.
             * @param message CompilationStats
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.TableStats.CompilationStats, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this CompilationStats to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a QueryStats. */
        interface IQueryStats {

            /** QueryStats queryPhases */
            queryPhases?: (Ydb.TableStats.IQueryPhaseStats[]|null);

            /** QueryStats compilation */
            compilation?: (Ydb.TableStats.ICompilationStats|null);

            /** QueryStats processCpuTimeUs */
            processCpuTimeUs?: (number|Long|null);

            /** QueryStats queryPlan */
            queryPlan?: (string|null);

            /** QueryStats queryAst */
            queryAst?: (string|null);

            /** QueryStats totalDurationUs */
            totalDurationUs?: (number|Long|null);

            /** QueryStats totalCpuTimeUs */
            totalCpuTimeUs?: (number|Long|null);
        }

        /** Represents a QueryStats. */
        class QueryStats implements IQueryStats {

            /**
             * Constructs a new QueryStats.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.TableStats.IQueryStats);

            /** QueryStats queryPhases. */
            public queryPhases: Ydb.TableStats.IQueryPhaseStats[];

            /** QueryStats compilation. */
            public compilation?: (Ydb.TableStats.ICompilationStats|null);

            /** QueryStats processCpuTimeUs. */
            public processCpuTimeUs: (number|Long);

            /** QueryStats queryPlan. */
            public queryPlan: string;

            /** QueryStats queryAst. */
            public queryAst: string;

            /** QueryStats totalDurationUs. */
            public totalDurationUs: (number|Long);

            /** QueryStats totalCpuTimeUs. */
            public totalCpuTimeUs: (number|Long);

            /**
             * Creates a new QueryStats instance using the specified properties.
             * @param [properties] Properties to set
             * @returns QueryStats instance
             */
            public static create(properties?: Ydb.TableStats.IQueryStats): Ydb.TableStats.QueryStats;

            /**
             * Encodes the specified QueryStats message. Does not implicitly {@link Ydb.TableStats.QueryStats.verify|verify} messages.
             * @param message QueryStats message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.TableStats.IQueryStats, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified QueryStats message, length delimited. Does not implicitly {@link Ydb.TableStats.QueryStats.verify|verify} messages.
             * @param message QueryStats message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.TableStats.IQueryStats, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a QueryStats message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns QueryStats
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.TableStats.QueryStats;

            /**
             * Decodes a QueryStats message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns QueryStats
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.TableStats.QueryStats;

            /**
             * Verifies a QueryStats message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a QueryStats message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns QueryStats
             */
            public static fromObject(object: { [k: string]: any }): Ydb.TableStats.QueryStats;

            /**
             * Creates a plain object from a QueryStats message. Also converts values to other types if specified.
             * @param message QueryStats
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.TableStats.QueryStats, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this QueryStats to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }
    }

    /** Properties of a DecimalType. */
    interface IDecimalType {

        /** DecimalType precision */
        precision?: (number|null);

        /** DecimalType scale */
        scale?: (number|null);
    }

    /** Represents a DecimalType. */
    class DecimalType implements IDecimalType {

        /**
         * Constructs a new DecimalType.
         * @param [properties] Properties to set
         */
        constructor(properties?: Ydb.IDecimalType);

        /** DecimalType precision. */
        public precision: number;

        /** DecimalType scale. */
        public scale: number;

        /**
         * Creates a new DecimalType instance using the specified properties.
         * @param [properties] Properties to set
         * @returns DecimalType instance
         */
        public static create(properties?: Ydb.IDecimalType): Ydb.DecimalType;

        /**
         * Encodes the specified DecimalType message. Does not implicitly {@link Ydb.DecimalType.verify|verify} messages.
         * @param message DecimalType message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: Ydb.IDecimalType, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified DecimalType message, length delimited. Does not implicitly {@link Ydb.DecimalType.verify|verify} messages.
         * @param message DecimalType message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: Ydb.IDecimalType, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a DecimalType message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns DecimalType
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.DecimalType;

        /**
         * Decodes a DecimalType message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns DecimalType
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.DecimalType;

        /**
         * Verifies a DecimalType message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a DecimalType message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns DecimalType
         */
        public static fromObject(object: { [k: string]: any }): Ydb.DecimalType;

        /**
         * Creates a plain object from a DecimalType message. Also converts values to other types if specified.
         * @param message DecimalType
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: Ydb.DecimalType, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this DecimalType to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };
    }

    /** Properties of an OptionalType. */
    interface IOptionalType {

        /** OptionalType item */
        item?: (Ydb.IType|null);
    }

    /** Represents an OptionalType. */
    class OptionalType implements IOptionalType {

        /**
         * Constructs a new OptionalType.
         * @param [properties] Properties to set
         */
        constructor(properties?: Ydb.IOptionalType);

        /** OptionalType item. */
        public item?: (Ydb.IType|null);

        /**
         * Creates a new OptionalType instance using the specified properties.
         * @param [properties] Properties to set
         * @returns OptionalType instance
         */
        public static create(properties?: Ydb.IOptionalType): Ydb.OptionalType;

        /**
         * Encodes the specified OptionalType message. Does not implicitly {@link Ydb.OptionalType.verify|verify} messages.
         * @param message OptionalType message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: Ydb.IOptionalType, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified OptionalType message, length delimited. Does not implicitly {@link Ydb.OptionalType.verify|verify} messages.
         * @param message OptionalType message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: Ydb.IOptionalType, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes an OptionalType message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns OptionalType
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.OptionalType;

        /**
         * Decodes an OptionalType message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns OptionalType
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.OptionalType;

        /**
         * Verifies an OptionalType message.
         * @param message Plain 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 OptionalType message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns OptionalType
         */
        public static fromObject(object: { [k: string]: any }): Ydb.OptionalType;

        /**
         * Creates a plain object from an OptionalType message. Also converts values to other types if specified.
         * @param message OptionalType
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: Ydb.OptionalType, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this OptionalType to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };
    }

    /** Properties of a ListType. */
    interface IListType {

        /** ListType item */
        item?: (Ydb.IType|null);
    }

    /** Represents a ListType. */
    class ListType implements IListType {

        /**
         * Constructs a new ListType.
         * @param [properties] Properties to set
         */
        constructor(properties?: Ydb.IListType);

        /** ListType item. */
        public item?: (Ydb.IType|null);

        /**
         * Creates a new ListType instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ListType instance
         */
        public static create(properties?: Ydb.IListType): Ydb.ListType;

        /**
         * Encodes the specified ListType message. Does not implicitly {@link Ydb.ListType.verify|verify} messages.
         * @param message ListType message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: Ydb.IListType, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ListType message, length delimited. Does not implicitly {@link Ydb.ListType.verify|verify} messages.
         * @param message ListType message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: Ydb.IListType, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ListType message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ListType
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.ListType;

        /**
         * Decodes a ListType message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ListType
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.ListType;

        /**
         * Verifies a ListType message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ListType message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ListType
         */
        public static fromObject(object: { [k: string]: any }): Ydb.ListType;

        /**
         * Creates a plain object from a ListType message. Also converts values to other types if specified.
         * @param message ListType
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: Ydb.ListType, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ListType to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };
    }

    /** Properties of a VariantType. */
    interface IVariantType {

        /** VariantType tupleItems */
        tupleItems?: (Ydb.ITupleType|null);

        /** VariantType structItems */
        structItems?: (Ydb.IStructType|null);
    }

    /** Represents a VariantType. */
    class VariantType implements IVariantType {

        /**
         * Constructs a new VariantType.
         * @param [properties] Properties to set
         */
        constructor(properties?: Ydb.IVariantType);

        /** VariantType tupleItems. */
        public tupleItems?: (Ydb.ITupleType|null);

        /** VariantType structItems. */
        public structItems?: (Ydb.IStructType|null);

        /** VariantType type. */
        public type?: ("tupleItems"|"structItems");

        /**
         * Creates a new VariantType instance using the specified properties.
         * @param [properties] Properties to set
         * @returns VariantType instance
         */
        public static create(properties?: Ydb.IVariantType): Ydb.VariantType;

        /**
         * Encodes the specified VariantType message. Does not implicitly {@link Ydb.VariantType.verify|verify} messages.
         * @param message VariantType message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: Ydb.IVariantType, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified VariantType message, length delimited. Does not implicitly {@link Ydb.VariantType.verify|verify} messages.
         * @param message VariantType message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: Ydb.IVariantType, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a VariantType message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns VariantType
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.VariantType;

        /**
         * Decodes a VariantType message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns VariantType
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.VariantType;

        /**
         * Verifies a VariantType message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a VariantType message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns VariantType
         */
        public static fromObject(object: { [k: string]: any }): Ydb.VariantType;

        /**
         * Creates a plain object from a VariantType message. Also converts values to other types if specified.
         * @param message VariantType
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: Ydb.VariantType, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this VariantType to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };
    }

    /** Properties of a TupleType. */
    interface ITupleType {

        /** TupleType elements */
        elements?: (Ydb.IType[]|null);
    }

    /** Represents a TupleType. */
    class TupleType implements ITupleType {

        /**
         * Constructs a new TupleType.
         * @param [properties] Properties to set
         */
        constructor(properties?: Ydb.ITupleType);

        /** TupleType elements. */
        public elements: Ydb.IType[];

        /**
         * Creates a new TupleType instance using the specified properties.
         * @param [properties] Properties to set
         * @returns TupleType instance
         */
        public static create(properties?: Ydb.ITupleType): Ydb.TupleType;

        /**
         * Encodes the specified TupleType message. Does not implicitly {@link Ydb.TupleType.verify|verify} messages.
         * @param message TupleType message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: Ydb.ITupleType, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified TupleType message, length delimited. Does not implicitly {@link Ydb.TupleType.verify|verify} messages.
         * @param message TupleType message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: Ydb.ITupleType, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a TupleType message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns TupleType
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.TupleType;

        /**
         * Decodes a TupleType message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns TupleType
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.TupleType;

        /**
         * Verifies a TupleType message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a TupleType message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns TupleType
         */
        public static fromObject(object: { [k: string]: any }): Ydb.TupleType;

        /**
         * Creates a plain object from a TupleType message. Also converts values to other types if specified.
         * @param message TupleType
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: Ydb.TupleType, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this TupleType to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };
    }

    /** Properties of a StructMember. */
    interface IStructMember {

        /** StructMember name */
        name?: (string|null);

        /** StructMember type */
        type?: (Ydb.IType|null);
    }

    /** Represents a StructMember. */
    class StructMember implements IStructMember {

        /**
         * Constructs a new StructMember.
         * @param [properties] Properties to set
         */
        constructor(properties?: Ydb.IStructMember);

        /** StructMember name. */
        public name: string;

        /** StructMember type. */
        public type?: (Ydb.IType|null);

        /**
         * Creates a new StructMember instance using the specified properties.
         * @param [properties] Properties to set
         * @returns StructMember instance
         */
        public static create(properties?: Ydb.IStructMember): Ydb.StructMember;

        /**
         * Encodes the specified StructMember message. Does not implicitly {@link Ydb.StructMember.verify|verify} messages.
         * @param message StructMember message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: Ydb.IStructMember, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified StructMember message, length delimited. Does not implicitly {@link Ydb.StructMember.verify|verify} messages.
         * @param message StructMember message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: Ydb.IStructMember, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a StructMember message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns StructMember
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.StructMember;

        /**
         * Decodes a StructMember message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns StructMember
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.StructMember;

        /**
         * Verifies a StructMember message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a StructMember message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns StructMember
         */
        public static fromObject(object: { [k: string]: any }): Ydb.StructMember;

        /**
         * Creates a plain object from a StructMember message. Also converts values to other types if specified.
         * @param message StructMember
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: Ydb.StructMember, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this StructMember to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };
    }

    /** Properties of a StructType. */
    interface IStructType {

        /** StructType members */
        members?: (Ydb.IStructMember[]|null);
    }

    /** Represents a StructType. */
    class StructType implements IStructType {

        /**
         * Constructs a new StructType.
         * @param [properties] Properties to set
         */
        constructor(properties?: Ydb.IStructType);

        /** StructType members. */
        public members: Ydb.IStructMember[];

        /**
         * Creates a new StructType instance using the specified properties.
         * @param [properties] Properties to set
         * @returns StructType instance
         */
        public static create(properties?: Ydb.IStructType): Ydb.StructType;

        /**
         * Encodes the specified StructType message. Does not implicitly {@link Ydb.StructType.verify|verify} messages.
         * @param message StructType message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: Ydb.IStructType, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified StructType message, length delimited. Does not implicitly {@link Ydb.StructType.verify|verify} messages.
         * @param message StructType message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: Ydb.IStructType, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a StructType message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns StructType
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.StructType;

        /**
         * Decodes a StructType message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns StructType
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.StructType;

        /**
         * Verifies a StructType message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a StructType message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns StructType
         */
        public static fromObject(object: { [k: string]: any }): Ydb.StructType;

        /**
         * Creates a plain object from a StructType message. Also converts values to other types if specified.
         * @param message StructType
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: Ydb.StructType, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this StructType to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };
    }

    /** Properties of a DictType. */
    interface IDictType {

        /** DictType key */
        key?: (Ydb.IType|null);

        /** DictType payload */
        payload?: (Ydb.IType|null);
    }

    /** Represents a DictType. */
    class DictType implements IDictType {

        /**
         * Constructs a new DictType.
         * @param [properties] Properties to set
         */
        constructor(properties?: Ydb.IDictType);

        /** DictType key. */
        public key?: (Ydb.IType|null);

        /** DictType payload. */
        public payload?: (Ydb.IType|null);

        /**
         * Creates a new DictType instance using the specified properties.
         * @param [properties] Properties to set
         * @returns DictType instance
         */
        public static create(properties?: Ydb.IDictType): Ydb.DictType;

        /**
         * Encodes the specified DictType message. Does not implicitly {@link Ydb.DictType.verify|verify} messages.
         * @param message DictType message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: Ydb.IDictType, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified DictType message, length delimited. Does not implicitly {@link Ydb.DictType.verify|verify} messages.
         * @param message DictType message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: Ydb.IDictType, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a DictType message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns DictType
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.DictType;

        /**
         * Decodes a DictType message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns DictType
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.DictType;

        /**
         * Verifies a DictType message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a DictType message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns DictType
         */
        public static fromObject(object: { [k: string]: any }): Ydb.DictType;

        /**
         * Creates a plain object from a DictType message. Also converts values to other types if specified.
         * @param message DictType
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: Ydb.DictType, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this DictType to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };
    }

    /** Properties of a TaggedType. */
    interface ITaggedType {

        /** TaggedType tag */
        tag?: (string|null);

        /** TaggedType type */
        type?: (Ydb.IType|null);
    }

    /** Represents a TaggedType. */
    class TaggedType implements ITaggedType {

        /**
         * Constructs a new TaggedType.
         * @param [properties] Properties to set
         */
        constructor(properties?: Ydb.ITaggedType);

        /** TaggedType tag. */
        public tag: string;

        /** TaggedType type. */
        public type?: (Ydb.IType|null);

        /**
         * Creates a new TaggedType instance using the specified properties.
         * @param [properties] Properties to set
         * @returns TaggedType instance
         */
        public static create(properties?: Ydb.ITaggedType): Ydb.TaggedType;

        /**
         * Encodes the specified TaggedType message. Does not implicitly {@link Ydb.TaggedType.verify|verify} messages.
         * @param message TaggedType message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: Ydb.ITaggedType, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified TaggedType message, length delimited. Does not implicitly {@link Ydb.TaggedType.verify|verify} messages.
         * @param message TaggedType message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: Ydb.ITaggedType, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a TaggedType message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns TaggedType
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.TaggedType;

        /**
         * Decodes a TaggedType message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns TaggedType
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.TaggedType;

        /**
         * Verifies a TaggedType message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a TaggedType message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns TaggedType
         */
        public static fromObject(object: { [k: string]: any }): Ydb.TaggedType;

        /**
         * Creates a plain object from a TaggedType message. Also converts values to other types if specified.
         * @param message TaggedType
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: Ydb.TaggedType, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this TaggedType to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };
    }

    /** Properties of a PgType. */
    interface IPgType {

        /** PgType typeName */
        typeName?: (string|null);

        /** PgType typeModifier */
        typeModifier?: (string|null);

        /** PgType oid */
        oid?: (number|null);

        /** PgType typlen */
        typlen?: (number|null);

        /** PgType typmod */
        typmod?: (number|null);
    }

    /** Represents a PgType. */
    class PgType implements IPgType {

        /**
         * Constructs a new PgType.
         * @param [properties] Properties to set
         */
        constructor(properties?: Ydb.IPgType);

        /** PgType typeName. */
        public typeName: string;

        /** PgType typeModifier. */
        public typeModifier: string;

        /** PgType oid. */
        public oid: number;

        /** PgType typlen. */
        public typlen: number;

        /** PgType typmod. */
        public typmod: number;

        /**
         * Creates a new PgType instance using the specified properties.
         * @param [properties] Properties to set
         * @returns PgType instance
         */
        public static create(properties?: Ydb.IPgType): Ydb.PgType;

        /**
         * Encodes the specified PgType message. Does not implicitly {@link Ydb.PgType.verify|verify} messages.
         * @param message PgType message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: Ydb.IPgType, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified PgType message, length delimited. Does not implicitly {@link Ydb.PgType.verify|verify} messages.
         * @param message PgType message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: Ydb.IPgType, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a PgType message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns PgType
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.PgType;

        /**
         * Decodes a PgType message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns PgType
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.PgType;

        /**
         * Verifies a PgType message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a PgType message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns PgType
         */
        public static fromObject(object: { [k: string]: any }): Ydb.PgType;

        /**
         * Creates a plain object from a PgType message. Also converts values to other types if specified.
         * @param message PgType
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: Ydb.PgType, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this PgType to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };
    }

    /** Properties of a Type. */
    interface IType {

        /** Type typeId */
        typeId?: (Ydb.Type.PrimitiveTypeId|null);

        /** Type decimalType */
        decimalType?: (Ydb.IDecimalType|null);

        /** Type optionalType */
        optionalType?: (Ydb.IOptionalType|null);

        /** Type listType */
        listType?: (Ydb.IListType|null);

        /** Type tupleType */
        tupleType?: (Ydb.ITupleType|null);

        /** Type structType */
        structType?: (Ydb.IStructType|null);

        /** Type dictType */
        dictType?: (Ydb.IDictType|null);

        /** Type variantType */
        variantType?: (Ydb.IVariantType|null);

        /** Type taggedType */
        taggedType?: (Ydb.ITaggedType|null);

        /** Type voidType */
        voidType?: (google.protobuf.NullValue|null);

        /** Type nullType */
        nullType?: (google.protobuf.NullValue|null);

        /** Type emptyListType */
        emptyListType?: (google.protobuf.NullValue|null);

        /** Type emptyDictType */
        emptyDictType?: (google.protobuf.NullValue|null);

        /** Type pgType */
        pgType?: (Ydb.IPgType|null);
    }

    /** Represents a Type. */
    class Type implements IType {

        /**
         * Constructs a new Type.
         * @param [properties] Properties to set
         */
        constructor(properties?: Ydb.IType);

        /** Type typeId. */
        public typeId?: (Ydb.Type.PrimitiveTypeId|null);

        /** Type decimalType. */
        public decimalType?: (Ydb.IDecimalType|null);

        /** Type optionalType. */
        public optionalType?: (Ydb.IOptionalType|null);

        /** Type listType. */
        public listType?: (Ydb.IListType|null);

        /** Type tupleType. */
        public tupleType?: (Ydb.ITupleType|null);

        /** Type structType. */
        public structType?: (Ydb.IStructType|null);

        /** Type dictType. */
        public dictType?: (Ydb.IDictType|null);

        /** Type variantType. */
        public variantType?: (Ydb.IVariantType|null);

        /** Type taggedType. */
        public taggedType?: (Ydb.ITaggedType|null);

        /** Type voidType. */
        public voidType?: (google.protobuf.NullValue|null);

        /** Type nullType. */
        public nullType?: (google.protobuf.NullValue|null);

        /** Type emptyListType. */
        public emptyListType?: (google.protobuf.NullValue|null);

        /** Type emptyDictType. */
        public emptyDictType?: (google.protobuf.NullValue|null);

        /** Type pgType. */
        public pgType?: (Ydb.IPgType|null);

        /** Type type. */
        public type?: ("typeId"|"decimalType"|"optionalType"|"listType"|"tupleType"|"structType"|"dictType"|"variantType"|"taggedType"|"voidType"|"nullType"|"emptyListType"|"emptyDictType"|"pgType");

        /**
         * Creates a new Type instance using the specified properties.
         * @param [properties] Properties to set
         * @returns Type instance
         */
        public static create(properties?: Ydb.IType): Ydb.Type;

        /**
         * Encodes the specified Type message. Does not implicitly {@link Ydb.Type.verify|verify} messages.
         * @param message Type message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: Ydb.IType, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified Type message, length delimited. Does not implicitly {@link Ydb.Type.verify|verify} messages.
         * @param message Type message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: Ydb.IType, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a Type message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns Type
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Type;

        /**
         * Decodes a Type message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns Type
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Type;

        /**
         * Verifies a Type message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a Type message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns Type
         */
        public static fromObject(object: { [k: string]: any }): Ydb.Type;

        /**
         * Creates a plain object from a Type message. Also converts values to other types if specified.
         * @param message Type
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: Ydb.Type, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this Type to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };
    }

    namespace Type {

        /** PrimitiveTypeId enum. */
        enum PrimitiveTypeId {
            PRIMITIVE_TYPE_ID_UNSPECIFIED = 0,
            BOOL = 6,
            INT8 = 7,
            UINT8 = 5,
            INT16 = 8,
            UINT16 = 9,
            INT32 = 1,
            UINT32 = 2,
            INT64 = 3,
            UINT64 = 4,
            FLOAT = 33,
            DOUBLE = 32,
            DATE = 48,
            DATETIME = 49,
            TIMESTAMP = 50,
            INTERVAL = 51,
            TZ_DATE = 52,
            TZ_DATETIME = 53,
            TZ_TIMESTAMP = 54,
            STRING = 4097,
            UTF8 = 4608,
            YSON = 4609,
            JSON = 4610,
            UUID = 4611,
            JSON_DOCUMENT = 4612,
            DYNUMBER = 4866
        }
    }

    /** Properties of a ValuePair. */
    interface IValuePair {

        /** ValuePair key */
        key?: (Ydb.IValue|null);

        /** ValuePair payload */
        payload?: (Ydb.IValue|null);
    }

    /** Represents a ValuePair. */
    class ValuePair implements IValuePair {

        /**
         * Constructs a new ValuePair.
         * @param [properties] Properties to set
         */
        constructor(properties?: Ydb.IValuePair);

        /** ValuePair key. */
        public key?: (Ydb.IValue|null);

        /** ValuePair payload. */
        public payload?: (Ydb.IValue|null);

        /**
         * Creates a new ValuePair instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ValuePair instance
         */
        public static create(properties?: Ydb.IValuePair): Ydb.ValuePair;

        /**
         * Encodes the specified ValuePair message. Does not implicitly {@link Ydb.ValuePair.verify|verify} messages.
         * @param message ValuePair message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: Ydb.IValuePair, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ValuePair message, length delimited. Does not implicitly {@link Ydb.ValuePair.verify|verify} messages.
         * @param message ValuePair message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: Ydb.IValuePair, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ValuePair message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ValuePair
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.ValuePair;

        /**
         * Decodes a ValuePair message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ValuePair
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.ValuePair;

        /**
         * Verifies a ValuePair message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ValuePair message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ValuePair
         */
        public static fromObject(object: { [k: string]: any }): Ydb.ValuePair;

        /**
         * Creates a plain object from a ValuePair message. Also converts values to other types if specified.
         * @param message ValuePair
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: Ydb.ValuePair, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ValuePair to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };
    }

    /** Properties of a Value. */
    interface IValue {

        /** Value boolValue */
        boolValue?: (boolean|null);

        /** Value int32Value */
        int32Value?: (number|null);

        /** Value uint32Value */
        uint32Value?: (number|null);

        /** Value int64Value */
        int64Value?: (number|Long|null);

        /** Value uint64Value */
        uint64Value?: (number|Long|null);

        /** Value floatValue */
        floatValue?: (number|null);

        /** Value doubleValue */
        doubleValue?: (number|null);

        /** Value bytesValue */
        bytesValue?: (Uint8Array|null);

        /** Value textValue */
        textValue?: (string|null);

        /** Value nullFlagValue */
        nullFlagValue?: (google.protobuf.NullValue|null);

        /** Value nestedValue */
        nestedValue?: (Ydb.IValue|null);

        /** Value low_128 */
        low_128?: (number|Long|null);

        /** Value items */
        items?: (Ydb.IValue[]|null);

        /** Value pairs */
        pairs?: (Ydb.IValuePair[]|null);

        /** Value variantIndex */
        variantIndex?: (number|null);

        /** Value high_128 */
        high_128?: (number|Long|null);
    }

    /** Represents a Value. */
    class Value implements IValue {

        /**
         * Constructs a new Value.
         * @param [properties] Properties to set
         */
        constructor(properties?: Ydb.IValue);

        /** Value boolValue. */
        public boolValue?: (boolean|null);

        /** Value int32Value. */
        public int32Value?: (number|null);

        /** Value uint32Value. */
        public uint32Value?: (number|null);

        /** Value int64Value. */
        public int64Value?: (number|Long|null);

        /** Value uint64Value. */
        public uint64Value?: (number|Long|null);

        /** Value floatValue. */
        public floatValue?: (number|null);

        /** Value doubleValue. */
        public doubleValue?: (number|null);

        /** Value bytesValue. */
        public bytesValue?: (Uint8Array|null);

        /** Value textValue. */
        public textValue?: (string|null);

        /** Value nullFlagValue. */
        public nullFlagValue?: (google.protobuf.NullValue|null);

        /** Value nestedValue. */
        public nestedValue?: (Ydb.IValue|null);

        /** Value low_128. */
        public low_128?: (number|Long|null);

        /** Value items. */
        public items: Ydb.IValue[];

        /** Value pairs. */
        public pairs: Ydb.IValuePair[];

        /** Value variantIndex. */
        public variantIndex: number;

        /** Value high_128. */
        public high_128: (number|Long);

        /** Value value. */
        public value?: ("boolValue"|"int32Value"|"uint32Value"|"int64Value"|"uint64Value"|"floatValue"|"doubleValue"|"bytesValue"|"textValue"|"nullFlagValue"|"nestedValue"|"low_128");

        /**
         * Creates a new Value instance using the specified properties.
         * @param [properties] Properties to set
         * @returns Value instance
         */
        public static create(properties?: Ydb.IValue): Ydb.Value;

        /**
         * Encodes the specified Value message. Does not implicitly {@link Ydb.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: Ydb.IValue, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified Value message, length delimited. Does not implicitly {@link Ydb.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: Ydb.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): Ydb.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)): Ydb.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 }): Ydb.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: Ydb.Value, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this Value to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };
    }

    /** Properties of a TypedValue. */
    interface ITypedValue {

        /** TypedValue type */
        type?: (Ydb.IType|null);

        /** TypedValue value */
        value?: (Ydb.IValue|null);
    }

    /** Represents a TypedValue. */
    class TypedValue implements ITypedValue {

        /**
         * Constructs a new TypedValue.
         * @param [properties] Properties to set
         */
        constructor(properties?: Ydb.ITypedValue);

        /** TypedValue type. */
        public type?: (Ydb.IType|null);

        /** TypedValue value. */
        public value?: (Ydb.IValue|null);

        /**
         * Creates a new TypedValue instance using the specified properties.
         * @param [properties] Properties to set
         * @returns TypedValue instance
         */
        public static create(properties?: Ydb.ITypedValue): Ydb.TypedValue;

        /**
         * Encodes the specified TypedValue message. Does not implicitly {@link Ydb.TypedValue.verify|verify} messages.
         * @param message TypedValue message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: Ydb.ITypedValue, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified TypedValue message, length delimited. Does not implicitly {@link Ydb.TypedValue.verify|verify} messages.
         * @param message TypedValue message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: Ydb.ITypedValue, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a TypedValue message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns TypedValue
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.TypedValue;

        /**
         * Decodes a TypedValue message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns TypedValue
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.TypedValue;

        /**
         * Verifies a TypedValue message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a TypedValue message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns TypedValue
         */
        public static fromObject(object: { [k: string]: any }): Ydb.TypedValue;

        /**
         * Creates a plain object from a TypedValue message. Also converts values to other types if specified.
         * @param message TypedValue
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: Ydb.TypedValue, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this TypedValue to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };
    }

    /** Properties of a Column. */
    interface IColumn {

        /** Column name */
        name?: (string|null);

        /** Column type */
        type?: (Ydb.IType|null);
    }

    /** Represents a Column. */
    class Column implements IColumn {

        /**
         * Constructs a new Column.
         * @param [properties] Properties to set
         */
        constructor(properties?: Ydb.IColumn);

        /** Column name. */
        public name: string;

        /** Column type. */
        public type?: (Ydb.IType|null);

        /**
         * Creates a new Column instance using the specified properties.
         * @param [properties] Properties to set
         * @returns Column instance
         */
        public static create(properties?: Ydb.IColumn): Ydb.Column;

        /**
         * Encodes the specified Column message. Does not implicitly {@link Ydb.Column.verify|verify} messages.
         * @param message Column message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: Ydb.IColumn, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified Column message, length delimited. Does not implicitly {@link Ydb.Column.verify|verify} messages.
         * @param message Column message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: Ydb.IColumn, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a Column message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns Column
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Column;

        /**
         * Decodes a Column message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns Column
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Column;

        /**
         * Verifies a Column message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a Column message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns Column
         */
        public static fromObject(object: { [k: string]: any }): Ydb.Column;

        /**
         * Creates a plain object from a Column message. Also converts values to other types if specified.
         * @param message Column
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: Ydb.Column, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this Column to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };
    }

    /** Properties of a ResultSet. */
    interface IResultSet {

        /** ResultSet columns */
        columns?: (Ydb.IColumn[]|null);

        /** ResultSet rows */
        rows?: (Ydb.IValue[]|null);

        /** ResultSet truncated */
        truncated?: (boolean|null);
    }

    /** Represents a ResultSet. */
    class ResultSet implements IResultSet {

        /**
         * Constructs a new ResultSet.
         * @param [properties] Properties to set
         */
        constructor(properties?: Ydb.IResultSet);

        /** ResultSet columns. */
        public columns: Ydb.IColumn[];

        /** ResultSet rows. */
        public rows: Ydb.IValue[];

        /** ResultSet truncated. */
        public truncated: boolean;

        /**
         * Creates a new ResultSet instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResultSet instance
         */
        public static create(properties?: Ydb.IResultSet): Ydb.ResultSet;

        /**
         * Encodes the specified ResultSet message. Does not implicitly {@link Ydb.ResultSet.verify|verify} messages.
         * @param message ResultSet message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: Ydb.IResultSet, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResultSet message, length delimited. Does not implicitly {@link Ydb.ResultSet.verify|verify} messages.
         * @param message ResultSet message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: Ydb.IResultSet, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResultSet message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResultSet
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.ResultSet;

        /**
         * Decodes a ResultSet message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResultSet
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.ResultSet;

        /**
         * Verifies a ResultSet message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResultSet message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResultSet
         */
        public static fromObject(object: { [k: string]: any }): Ydb.ResultSet;

        /**
         * Creates a plain object from a ResultSet message. Also converts values to other types if specified.
         * @param message ResultSet
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: Ydb.ResultSet, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResultSet to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };
    }

    /** Namespace RateLimiter. */
    namespace RateLimiter {

        /** Namespace V1. */
        namespace V1 {

            /** Represents a RateLimiterService */
            class RateLimiterService extends $protobuf.rpc.Service {

                /**
                 * Constructs a new RateLimiterService 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 RateLimiterService 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): RateLimiterService;

                /**
                 * Calls CreateResource.
                 * @param request CreateResourceRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and CreateResourceResponse
                 */
                public createResource(request: Ydb.RateLimiter.ICreateResourceRequest, callback: Ydb.RateLimiter.V1.RateLimiterService.CreateResourceCallback): void;

                /**
                 * Calls CreateResource.
                 * @param request CreateResourceRequest message or plain object
                 * @returns Promise
                 */
                public createResource(request: Ydb.RateLimiter.ICreateResourceRequest): Promise<Ydb.RateLimiter.CreateResourceResponse>;

                /**
                 * Calls AlterResource.
                 * @param request AlterResourceRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and AlterResourceResponse
                 */
                public alterResource(request: Ydb.RateLimiter.IAlterResourceRequest, callback: Ydb.RateLimiter.V1.RateLimiterService.AlterResourceCallback): void;

                /**
                 * Calls AlterResource.
                 * @param request AlterResourceRequest message or plain object
                 * @returns Promise
                 */
                public alterResource(request: Ydb.RateLimiter.IAlterResourceRequest): Promise<Ydb.RateLimiter.AlterResourceResponse>;

                /**
                 * Calls DropResource.
                 * @param request DropResourceRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and DropResourceResponse
                 */
                public dropResource(request: Ydb.RateLimiter.IDropResourceRequest, callback: Ydb.RateLimiter.V1.RateLimiterService.DropResourceCallback): void;

                /**
                 * Calls DropResource.
                 * @param request DropResourceRequest message or plain object
                 * @returns Promise
                 */
                public dropResource(request: Ydb.RateLimiter.IDropResourceRequest): Promise<Ydb.RateLimiter.DropResourceResponse>;

                /**
                 * Calls ListResources.
                 * @param request ListResourcesRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and ListResourcesResponse
                 */
                public listResources(request: Ydb.RateLimiter.IListResourcesRequest, callback: Ydb.RateLimiter.V1.RateLimiterService.ListResourcesCallback): void;

                /**
                 * Calls ListResources.
                 * @param request ListResourcesRequest message or plain object
                 * @returns Promise
                 */
                public listResources(request: Ydb.RateLimiter.IListResourcesRequest): Promise<Ydb.RateLimiter.ListResourcesResponse>;

                /**
                 * Calls DescribeResource.
                 * @param request DescribeResourceRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and DescribeResourceResponse
                 */
                public describeResource(request: Ydb.RateLimiter.IDescribeResourceRequest, callback: Ydb.RateLimiter.V1.RateLimiterService.DescribeResourceCallback): void;

                /**
                 * Calls DescribeResource.
                 * @param request DescribeResourceRequest message or plain object
                 * @returns Promise
                 */
                public describeResource(request: Ydb.RateLimiter.IDescribeResourceRequest): Promise<Ydb.RateLimiter.DescribeResourceResponse>;

                /**
                 * Calls AcquireResource.
                 * @param request AcquireResourceRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and AcquireResourceResponse
                 */
                public acquireResource(request: Ydb.RateLimiter.IAcquireResourceRequest, callback: Ydb.RateLimiter.V1.RateLimiterService.AcquireResourceCallback): void;

                /**
                 * Calls AcquireResource.
                 * @param request AcquireResourceRequest message or plain object
                 * @returns Promise
                 */
                public acquireResource(request: Ydb.RateLimiter.IAcquireResourceRequest): Promise<Ydb.RateLimiter.AcquireResourceResponse>;
            }

            namespace RateLimiterService {

                /**
                 * Callback as used by {@link Ydb.RateLimiter.V1.RateLimiterService#createResource}.
                 * @param error Error, if any
                 * @param [response] CreateResourceResponse
                 */
                type CreateResourceCallback = (error: (Error|null), response?: Ydb.RateLimiter.CreateResourceResponse) => void;

                /**
                 * Callback as used by {@link Ydb.RateLimiter.V1.RateLimiterService#alterResource}.
                 * @param error Error, if any
                 * @param [response] AlterResourceResponse
                 */
                type AlterResourceCallback = (error: (Error|null), response?: Ydb.RateLimiter.AlterResourceResponse) => void;

                /**
                 * Callback as used by {@link Ydb.RateLimiter.V1.RateLimiterService#dropResource}.
                 * @param error Error, if any
                 * @param [response] DropResourceResponse
                 */
                type DropResourceCallback = (error: (Error|null), response?: Ydb.RateLimiter.DropResourceResponse) => void;

                /**
                 * Callback as used by {@link Ydb.RateLimiter.V1.RateLimiterService#listResources}.
                 * @param error Error, if any
                 * @param [response] ListResourcesResponse
                 */
                type ListResourcesCallback = (error: (Error|null), response?: Ydb.RateLimiter.ListResourcesResponse) => void;

                /**
                 * Callback as used by {@link Ydb.RateLimiter.V1.RateLimiterService#describeResource}.
                 * @param error Error, if any
                 * @param [response] DescribeResourceResponse
                 */
                type DescribeResourceCallback = (error: (Error|null), response?: Ydb.RateLimiter.DescribeResourceResponse) => void;

                /**
                 * Callback as used by {@link Ydb.RateLimiter.V1.RateLimiterService#acquireResource}.
                 * @param error Error, if any
                 * @param [response] AcquireResourceResponse
                 */
                type AcquireResourceCallback = (error: (Error|null), response?: Ydb.RateLimiter.AcquireResourceResponse) => void;
            }
        }

        /** Properties of a HierarchicalDrrSettings. */
        interface IHierarchicalDrrSettings {

            /** HierarchicalDrrSettings maxUnitsPerSecond */
            maxUnitsPerSecond?: (number|null);

            /** HierarchicalDrrSettings maxBurstSizeCoefficient */
            maxBurstSizeCoefficient?: (number|null);

            /** HierarchicalDrrSettings prefetchCoefficient */
            prefetchCoefficient?: (number|null);

            /** HierarchicalDrrSettings prefetchWatermark */
            prefetchWatermark?: (number|null);
        }

        /** Represents a HierarchicalDrrSettings. */
        class HierarchicalDrrSettings implements IHierarchicalDrrSettings {

            /**
             * Constructs a new HierarchicalDrrSettings.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.RateLimiter.IHierarchicalDrrSettings);

            /** HierarchicalDrrSettings maxUnitsPerSecond. */
            public maxUnitsPerSecond: number;

            /** HierarchicalDrrSettings maxBurstSizeCoefficient. */
            public maxBurstSizeCoefficient: number;

            /** HierarchicalDrrSettings prefetchCoefficient. */
            public prefetchCoefficient: number;

            /** HierarchicalDrrSettings prefetchWatermark. */
            public prefetchWatermark: number;

            /**
             * Creates a new HierarchicalDrrSettings instance using the specified properties.
             * @param [properties] Properties to set
             * @returns HierarchicalDrrSettings instance
             */
            public static create(properties?: Ydb.RateLimiter.IHierarchicalDrrSettings): Ydb.RateLimiter.HierarchicalDrrSettings;

            /**
             * Encodes the specified HierarchicalDrrSettings message. Does not implicitly {@link Ydb.RateLimiter.HierarchicalDrrSettings.verify|verify} messages.
             * @param message HierarchicalDrrSettings message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.RateLimiter.IHierarchicalDrrSettings, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified HierarchicalDrrSettings message, length delimited. Does not implicitly {@link Ydb.RateLimiter.HierarchicalDrrSettings.verify|verify} messages.
             * @param message HierarchicalDrrSettings message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.RateLimiter.IHierarchicalDrrSettings, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a HierarchicalDrrSettings message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns HierarchicalDrrSettings
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.RateLimiter.HierarchicalDrrSettings;

            /**
             * Decodes a HierarchicalDrrSettings message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns HierarchicalDrrSettings
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.RateLimiter.HierarchicalDrrSettings;

            /**
             * Verifies a HierarchicalDrrSettings message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a HierarchicalDrrSettings message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns HierarchicalDrrSettings
             */
            public static fromObject(object: { [k: string]: any }): Ydb.RateLimiter.HierarchicalDrrSettings;

            /**
             * Creates a plain object from a HierarchicalDrrSettings message. Also converts values to other types if specified.
             * @param message HierarchicalDrrSettings
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.RateLimiter.HierarchicalDrrSettings, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this HierarchicalDrrSettings to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a Resource. */
        interface IResource {

            /** Resource resourcePath */
            resourcePath?: (string|null);

            /** Resource hierarchicalDrr */
            hierarchicalDrr?: (Ydb.RateLimiter.IHierarchicalDrrSettings|null);
        }

        /** Represents a Resource. */
        class Resource implements IResource {

            /**
             * Constructs a new Resource.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.RateLimiter.IResource);

            /** Resource resourcePath. */
            public resourcePath: string;

            /** Resource hierarchicalDrr. */
            public hierarchicalDrr?: (Ydb.RateLimiter.IHierarchicalDrrSettings|null);

            /** Resource type. */
            public type?: "hierarchicalDrr";

            /**
             * Creates a new Resource instance using the specified properties.
             * @param [properties] Properties to set
             * @returns Resource instance
             */
            public static create(properties?: Ydb.RateLimiter.IResource): Ydb.RateLimiter.Resource;

            /**
             * Encodes the specified Resource message. Does not implicitly {@link Ydb.RateLimiter.Resource.verify|verify} messages.
             * @param message Resource message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.RateLimiter.IResource, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified Resource message, length delimited. Does not implicitly {@link Ydb.RateLimiter.Resource.verify|verify} messages.
             * @param message Resource message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.RateLimiter.IResource, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a Resource message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns Resource
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.RateLimiter.Resource;

            /**
             * Decodes a Resource message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns Resource
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.RateLimiter.Resource;

            /**
             * Verifies a Resource message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a Resource message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns Resource
             */
            public static fromObject(object: { [k: string]: any }): Ydb.RateLimiter.Resource;

            /**
             * Creates a plain object from a Resource message. Also converts values to other types if specified.
             * @param message Resource
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.RateLimiter.Resource, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this Resource to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a CreateResourceRequest. */
        interface ICreateResourceRequest {

            /** CreateResourceRequest operationParams */
            operationParams?: (Ydb.Operations.IOperationParams|null);

            /** CreateResourceRequest coordinationNodePath */
            coordinationNodePath?: (string|null);

            /** CreateResourceRequest resource */
            resource?: (Ydb.RateLimiter.IResource|null);
        }

        /** Represents a CreateResourceRequest. */
        class CreateResourceRequest implements ICreateResourceRequest {

            /**
             * Constructs a new CreateResourceRequest.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.RateLimiter.ICreateResourceRequest);

            /** CreateResourceRequest operationParams. */
            public operationParams?: (Ydb.Operations.IOperationParams|null);

            /** CreateResourceRequest coordinationNodePath. */
            public coordinationNodePath: string;

            /** CreateResourceRequest resource. */
            public resource?: (Ydb.RateLimiter.IResource|null);

            /**
             * Creates a new CreateResourceRequest instance using the specified properties.
             * @param [properties] Properties to set
             * @returns CreateResourceRequest instance
             */
            public static create(properties?: Ydb.RateLimiter.ICreateResourceRequest): Ydb.RateLimiter.CreateResourceRequest;

            /**
             * Encodes the specified CreateResourceRequest message. Does not implicitly {@link Ydb.RateLimiter.CreateResourceRequest.verify|verify} messages.
             * @param message CreateResourceRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.RateLimiter.ICreateResourceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified CreateResourceRequest message, length delimited. Does not implicitly {@link Ydb.RateLimiter.CreateResourceRequest.verify|verify} messages.
             * @param message CreateResourceRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.RateLimiter.ICreateResourceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a CreateResourceRequest message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns CreateResourceRequest
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.RateLimiter.CreateResourceRequest;

            /**
             * Decodes a CreateResourceRequest message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns CreateResourceRequest
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.RateLimiter.CreateResourceRequest;

            /**
             * Verifies a CreateResourceRequest message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a CreateResourceRequest message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns CreateResourceRequest
             */
            public static fromObject(object: { [k: string]: any }): Ydb.RateLimiter.CreateResourceRequest;

            /**
             * Creates a plain object from a CreateResourceRequest message. Also converts values to other types if specified.
             * @param message CreateResourceRequest
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.RateLimiter.CreateResourceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this CreateResourceRequest to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a CreateResourceResponse. */
        interface ICreateResourceResponse {

            /** CreateResourceResponse operation */
            operation?: (Ydb.Operations.IOperation|null);
        }

        /** Represents a CreateResourceResponse. */
        class CreateResourceResponse implements ICreateResourceResponse {

            /**
             * Constructs a new CreateResourceResponse.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.RateLimiter.ICreateResourceResponse);

            /** CreateResourceResponse operation. */
            public operation?: (Ydb.Operations.IOperation|null);

            /**
             * Creates a new CreateResourceResponse instance using the specified properties.
             * @param [properties] Properties to set
             * @returns CreateResourceResponse instance
             */
            public static create(properties?: Ydb.RateLimiter.ICreateResourceResponse): Ydb.RateLimiter.CreateResourceResponse;

            /**
             * Encodes the specified CreateResourceResponse message. Does not implicitly {@link Ydb.RateLimiter.CreateResourceResponse.verify|verify} messages.
             * @param message CreateResourceResponse message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.RateLimiter.ICreateResourceResponse, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified CreateResourceResponse message, length delimited. Does not implicitly {@link Ydb.RateLimiter.CreateResourceResponse.verify|verify} messages.
             * @param message CreateResourceResponse message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.RateLimiter.ICreateResourceResponse, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a CreateResourceResponse message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns CreateResourceResponse
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.RateLimiter.CreateResourceResponse;

            /**
             * Decodes a CreateResourceResponse message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns CreateResourceResponse
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.RateLimiter.CreateResourceResponse;

            /**
             * Verifies a CreateResourceResponse message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a CreateResourceResponse message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns CreateResourceResponse
             */
            public static fromObject(object: { [k: string]: any }): Ydb.RateLimiter.CreateResourceResponse;

            /**
             * Creates a plain object from a CreateResourceResponse message. Also converts values to other types if specified.
             * @param message CreateResourceResponse
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.RateLimiter.CreateResourceResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this CreateResourceResponse to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a CreateResourceResult. */
        interface ICreateResourceResult {
        }

        /** Represents a CreateResourceResult. */
        class CreateResourceResult implements ICreateResourceResult {

            /**
             * Constructs a new CreateResourceResult.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.RateLimiter.ICreateResourceResult);

            /**
             * Creates a new CreateResourceResult instance using the specified properties.
             * @param [properties] Properties to set
             * @returns CreateResourceResult instance
             */
            public static create(properties?: Ydb.RateLimiter.ICreateResourceResult): Ydb.RateLimiter.CreateResourceResult;

            /**
             * Encodes the specified CreateResourceResult message. Does not implicitly {@link Ydb.RateLimiter.CreateResourceResult.verify|verify} messages.
             * @param message CreateResourceResult message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.RateLimiter.ICreateResourceResult, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified CreateResourceResult message, length delimited. Does not implicitly {@link Ydb.RateLimiter.CreateResourceResult.verify|verify} messages.
             * @param message CreateResourceResult message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.RateLimiter.ICreateResourceResult, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a CreateResourceResult message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns CreateResourceResult
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.RateLimiter.CreateResourceResult;

            /**
             * Decodes a CreateResourceResult message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns CreateResourceResult
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.RateLimiter.CreateResourceResult;

            /**
             * Verifies a CreateResourceResult message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a CreateResourceResult message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns CreateResourceResult
             */
            public static fromObject(object: { [k: string]: any }): Ydb.RateLimiter.CreateResourceResult;

            /**
             * Creates a plain object from a CreateResourceResult message. Also converts values to other types if specified.
             * @param message CreateResourceResult
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.RateLimiter.CreateResourceResult, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this CreateResourceResult to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of an AlterResourceRequest. */
        interface IAlterResourceRequest {

            /** AlterResourceRequest operationParams */
            operationParams?: (Ydb.Operations.IOperationParams|null);

            /** AlterResourceRequest coordinationNodePath */
            coordinationNodePath?: (string|null);

            /** AlterResourceRequest resource */
            resource?: (Ydb.RateLimiter.IResource|null);
        }

        /** Represents an AlterResourceRequest. */
        class AlterResourceRequest implements IAlterResourceRequest {

            /**
             * Constructs a new AlterResourceRequest.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.RateLimiter.IAlterResourceRequest);

            /** AlterResourceRequest operationParams. */
            public operationParams?: (Ydb.Operations.IOperationParams|null);

            /** AlterResourceRequest coordinationNodePath. */
            public coordinationNodePath: string;

            /** AlterResourceRequest resource. */
            public resource?: (Ydb.RateLimiter.IResource|null);

            /**
             * Creates a new AlterResourceRequest instance using the specified properties.
             * @param [properties] Properties to set
             * @returns AlterResourceRequest instance
             */
            public static create(properties?: Ydb.RateLimiter.IAlterResourceRequest): Ydb.RateLimiter.AlterResourceRequest;

            /**
             * Encodes the specified AlterResourceRequest message. Does not implicitly {@link Ydb.RateLimiter.AlterResourceRequest.verify|verify} messages.
             * @param message AlterResourceRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.RateLimiter.IAlterResourceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified AlterResourceRequest message, length delimited. Does not implicitly {@link Ydb.RateLimiter.AlterResourceRequest.verify|verify} messages.
             * @param message AlterResourceRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.RateLimiter.IAlterResourceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes an AlterResourceRequest message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns AlterResourceRequest
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.RateLimiter.AlterResourceRequest;

            /**
             * Decodes an AlterResourceRequest message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns AlterResourceRequest
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.RateLimiter.AlterResourceRequest;

            /**
             * Verifies an AlterResourceRequest message.
             * @param message Plain 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 AlterResourceRequest message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns AlterResourceRequest
             */
            public static fromObject(object: { [k: string]: any }): Ydb.RateLimiter.AlterResourceRequest;

            /**
             * Creates a plain object from an AlterResourceRequest message. Also converts values to other types if specified.
             * @param message AlterResourceRequest
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.RateLimiter.AlterResourceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this AlterResourceRequest to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of an AlterResourceResponse. */
        interface IAlterResourceResponse {

            /** AlterResourceResponse operation */
            operation?: (Ydb.Operations.IOperation|null);
        }

        /** Represents an AlterResourceResponse. */
        class AlterResourceResponse implements IAlterResourceResponse {

            /**
             * Constructs a new AlterResourceResponse.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.RateLimiter.IAlterResourceResponse);

            /** AlterResourceResponse operation. */
            public operation?: (Ydb.Operations.IOperation|null);

            /**
             * Creates a new AlterResourceResponse instance using the specified properties.
             * @param [properties] Properties to set
             * @returns AlterResourceResponse instance
             */
            public static create(properties?: Ydb.RateLimiter.IAlterResourceResponse): Ydb.RateLimiter.AlterResourceResponse;

            /**
             * Encodes the specified AlterResourceResponse message. Does not implicitly {@link Ydb.RateLimiter.AlterResourceResponse.verify|verify} messages.
             * @param message AlterResourceResponse message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.RateLimiter.IAlterResourceResponse, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified AlterResourceResponse message, length delimited. Does not implicitly {@link Ydb.RateLimiter.AlterResourceResponse.verify|verify} messages.
             * @param message AlterResourceResponse message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.RateLimiter.IAlterResourceResponse, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes an AlterResourceResponse message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns AlterResourceResponse
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.RateLimiter.AlterResourceResponse;

            /**
             * Decodes an AlterResourceResponse message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns AlterResourceResponse
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.RateLimiter.AlterResourceResponse;

            /**
             * Verifies an AlterResourceResponse message.
             * @param message Plain 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 AlterResourceResponse message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns AlterResourceResponse
             */
            public static fromObject(object: { [k: string]: any }): Ydb.RateLimiter.AlterResourceResponse;

            /**
             * Creates a plain object from an AlterResourceResponse message. Also converts values to other types if specified.
             * @param message AlterResourceResponse
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.RateLimiter.AlterResourceResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this AlterResourceResponse to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of an AlterResourceResult. */
        interface IAlterResourceResult {
        }

        /** Represents an AlterResourceResult. */
        class AlterResourceResult implements IAlterResourceResult {

            /**
             * Constructs a new AlterResourceResult.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.RateLimiter.IAlterResourceResult);

            /**
             * Creates a new AlterResourceResult instance using the specified properties.
             * @param [properties] Properties to set
             * @returns AlterResourceResult instance
             */
            public static create(properties?: Ydb.RateLimiter.IAlterResourceResult): Ydb.RateLimiter.AlterResourceResult;

            /**
             * Encodes the specified AlterResourceResult message. Does not implicitly {@link Ydb.RateLimiter.AlterResourceResult.verify|verify} messages.
             * @param message AlterResourceResult message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.RateLimiter.IAlterResourceResult, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified AlterResourceResult message, length delimited. Does not implicitly {@link Ydb.RateLimiter.AlterResourceResult.verify|verify} messages.
             * @param message AlterResourceResult message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.RateLimiter.IAlterResourceResult, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes an AlterResourceResult message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns AlterResourceResult
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.RateLimiter.AlterResourceResult;

            /**
             * Decodes an AlterResourceResult message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns AlterResourceResult
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.RateLimiter.AlterResourceResult;

            /**
             * Verifies an AlterResourceResult message.
             * @param message Plain 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 AlterResourceResult message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns AlterResourceResult
             */
            public static fromObject(object: { [k: string]: any }): Ydb.RateLimiter.AlterResourceResult;

            /**
             * Creates a plain object from an AlterResourceResult message. Also converts values to other types if specified.
             * @param message AlterResourceResult
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.RateLimiter.AlterResourceResult, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this AlterResourceResult to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a DropResourceRequest. */
        interface IDropResourceRequest {

            /** DropResourceRequest operationParams */
            operationParams?: (Ydb.Operations.IOperationParams|null);

            /** DropResourceRequest coordinationNodePath */
            coordinationNodePath?: (string|null);

            /** DropResourceRequest resourcePath */
            resourcePath?: (string|null);
        }

        /** Represents a DropResourceRequest. */
        class DropResourceRequest implements IDropResourceRequest {

            /**
             * Constructs a new DropResourceRequest.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.RateLimiter.IDropResourceRequest);

            /** DropResourceRequest operationParams. */
            public operationParams?: (Ydb.Operations.IOperationParams|null);

            /** DropResourceRequest coordinationNodePath. */
            public coordinationNodePath: string;

            /** DropResourceRequest resourcePath. */
            public resourcePath: string;

            /**
             * Creates a new DropResourceRequest instance using the specified properties.
             * @param [properties] Properties to set
             * @returns DropResourceRequest instance
             */
            public static create(properties?: Ydb.RateLimiter.IDropResourceRequest): Ydb.RateLimiter.DropResourceRequest;

            /**
             * Encodes the specified DropResourceRequest message. Does not implicitly {@link Ydb.RateLimiter.DropResourceRequest.verify|verify} messages.
             * @param message DropResourceRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.RateLimiter.IDropResourceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified DropResourceRequest message, length delimited. Does not implicitly {@link Ydb.RateLimiter.DropResourceRequest.verify|verify} messages.
             * @param message DropResourceRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.RateLimiter.IDropResourceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a DropResourceRequest message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns DropResourceRequest
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.RateLimiter.DropResourceRequest;

            /**
             * Decodes a DropResourceRequest message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns DropResourceRequest
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.RateLimiter.DropResourceRequest;

            /**
             * Verifies a DropResourceRequest message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a DropResourceRequest message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns DropResourceRequest
             */
            public static fromObject(object: { [k: string]: any }): Ydb.RateLimiter.DropResourceRequest;

            /**
             * Creates a plain object from a DropResourceRequest message. Also converts values to other types if specified.
             * @param message DropResourceRequest
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.RateLimiter.DropResourceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this DropResourceRequest to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a DropResourceResponse. */
        interface IDropResourceResponse {

            /** DropResourceResponse operation */
            operation?: (Ydb.Operations.IOperation|null);
        }

        /** Represents a DropResourceResponse. */
        class DropResourceResponse implements IDropResourceResponse {

            /**
             * Constructs a new DropResourceResponse.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.RateLimiter.IDropResourceResponse);

            /** DropResourceResponse operation. */
            public operation?: (Ydb.Operations.IOperation|null);

            /**
             * Creates a new DropResourceResponse instance using the specified properties.
             * @param [properties] Properties to set
             * @returns DropResourceResponse instance
             */
            public static create(properties?: Ydb.RateLimiter.IDropResourceResponse): Ydb.RateLimiter.DropResourceResponse;

            /**
             * Encodes the specified DropResourceResponse message. Does not implicitly {@link Ydb.RateLimiter.DropResourceResponse.verify|verify} messages.
             * @param message DropResourceResponse message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.RateLimiter.IDropResourceResponse, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified DropResourceResponse message, length delimited. Does not implicitly {@link Ydb.RateLimiter.DropResourceResponse.verify|verify} messages.
             * @param message DropResourceResponse message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.RateLimiter.IDropResourceResponse, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a DropResourceResponse message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns DropResourceResponse
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.RateLimiter.DropResourceResponse;

            /**
             * Decodes a DropResourceResponse message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns DropResourceResponse
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.RateLimiter.DropResourceResponse;

            /**
             * Verifies a DropResourceResponse message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a DropResourceResponse message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns DropResourceResponse
             */
            public static fromObject(object: { [k: string]: any }): Ydb.RateLimiter.DropResourceResponse;

            /**
             * Creates a plain object from a DropResourceResponse message. Also converts values to other types if specified.
             * @param message DropResourceResponse
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.RateLimiter.DropResourceResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this DropResourceResponse to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a DropResourceResult. */
        interface IDropResourceResult {
        }

        /** Represents a DropResourceResult. */
        class DropResourceResult implements IDropResourceResult {

            /**
             * Constructs a new DropResourceResult.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.RateLimiter.IDropResourceResult);

            /**
             * Creates a new DropResourceResult instance using the specified properties.
             * @param [properties] Properties to set
             * @returns DropResourceResult instance
             */
            public static create(properties?: Ydb.RateLimiter.IDropResourceResult): Ydb.RateLimiter.DropResourceResult;

            /**
             * Encodes the specified DropResourceResult message. Does not implicitly {@link Ydb.RateLimiter.DropResourceResult.verify|verify} messages.
             * @param message DropResourceResult message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.RateLimiter.IDropResourceResult, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified DropResourceResult message, length delimited. Does not implicitly {@link Ydb.RateLimiter.DropResourceResult.verify|verify} messages.
             * @param message DropResourceResult message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.RateLimiter.IDropResourceResult, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a DropResourceResult message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns DropResourceResult
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.RateLimiter.DropResourceResult;

            /**
             * Decodes a DropResourceResult message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns DropResourceResult
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.RateLimiter.DropResourceResult;

            /**
             * Verifies a DropResourceResult message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a DropResourceResult message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns DropResourceResult
             */
            public static fromObject(object: { [k: string]: any }): Ydb.RateLimiter.DropResourceResult;

            /**
             * Creates a plain object from a DropResourceResult message. Also converts values to other types if specified.
             * @param message DropResourceResult
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.RateLimiter.DropResourceResult, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this DropResourceResult to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a ListResourcesRequest. */
        interface IListResourcesRequest {

            /** ListResourcesRequest operationParams */
            operationParams?: (Ydb.Operations.IOperationParams|null);

            /** ListResourcesRequest coordinationNodePath */
            coordinationNodePath?: (string|null);

            /** ListResourcesRequest resourcePath */
            resourcePath?: (string|null);

            /** ListResourcesRequest recursive */
            recursive?: (boolean|null);
        }

        /** Represents a ListResourcesRequest. */
        class ListResourcesRequest implements IListResourcesRequest {

            /**
             * Constructs a new ListResourcesRequest.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.RateLimiter.IListResourcesRequest);

            /** ListResourcesRequest operationParams. */
            public operationParams?: (Ydb.Operations.IOperationParams|null);

            /** ListResourcesRequest coordinationNodePath. */
            public coordinationNodePath: string;

            /** ListResourcesRequest resourcePath. */
            public resourcePath: string;

            /** ListResourcesRequest recursive. */
            public recursive: boolean;

            /**
             * Creates a new ListResourcesRequest instance using the specified properties.
             * @param [properties] Properties to set
             * @returns ListResourcesRequest instance
             */
            public static create(properties?: Ydb.RateLimiter.IListResourcesRequest): Ydb.RateLimiter.ListResourcesRequest;

            /**
             * Encodes the specified ListResourcesRequest message. Does not implicitly {@link Ydb.RateLimiter.ListResourcesRequest.verify|verify} messages.
             * @param message ListResourcesRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.RateLimiter.IListResourcesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified ListResourcesRequest message, length delimited. Does not implicitly {@link Ydb.RateLimiter.ListResourcesRequest.verify|verify} messages.
             * @param message ListResourcesRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.RateLimiter.IListResourcesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a ListResourcesRequest message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns ListResourcesRequest
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.RateLimiter.ListResourcesRequest;

            /**
             * Decodes a ListResourcesRequest message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns ListResourcesRequest
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.RateLimiter.ListResourcesRequest;

            /**
             * Verifies a ListResourcesRequest message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a ListResourcesRequest message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns ListResourcesRequest
             */
            public static fromObject(object: { [k: string]: any }): Ydb.RateLimiter.ListResourcesRequest;

            /**
             * Creates a plain object from a ListResourcesRequest message. Also converts values to other types if specified.
             * @param message ListResourcesRequest
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.RateLimiter.ListResourcesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this ListResourcesRequest to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a ListResourcesResponse. */
        interface IListResourcesResponse {

            /** ListResourcesResponse operation */
            operation?: (Ydb.Operations.IOperation|null);
        }

        /** Represents a ListResourcesResponse. */
        class ListResourcesResponse implements IListResourcesResponse {

            /**
             * Constructs a new ListResourcesResponse.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.RateLimiter.IListResourcesResponse);

            /** ListResourcesResponse operation. */
            public operation?: (Ydb.Operations.IOperation|null);

            /**
             * Creates a new ListResourcesResponse instance using the specified properties.
             * @param [properties] Properties to set
             * @returns ListResourcesResponse instance
             */
            public static create(properties?: Ydb.RateLimiter.IListResourcesResponse): Ydb.RateLimiter.ListResourcesResponse;

            /**
             * Encodes the specified ListResourcesResponse message. Does not implicitly {@link Ydb.RateLimiter.ListResourcesResponse.verify|verify} messages.
             * @param message ListResourcesResponse message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.RateLimiter.IListResourcesResponse, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified ListResourcesResponse message, length delimited. Does not implicitly {@link Ydb.RateLimiter.ListResourcesResponse.verify|verify} messages.
             * @param message ListResourcesResponse message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.RateLimiter.IListResourcesResponse, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a ListResourcesResponse message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns ListResourcesResponse
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.RateLimiter.ListResourcesResponse;

            /**
             * Decodes a ListResourcesResponse message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns ListResourcesResponse
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.RateLimiter.ListResourcesResponse;

            /**
             * Verifies a ListResourcesResponse message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a ListResourcesResponse message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns ListResourcesResponse
             */
            public static fromObject(object: { [k: string]: any }): Ydb.RateLimiter.ListResourcesResponse;

            /**
             * Creates a plain object from a ListResourcesResponse message. Also converts values to other types if specified.
             * @param message ListResourcesResponse
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.RateLimiter.ListResourcesResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this ListResourcesResponse to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a ListResourcesResult. */
        interface IListResourcesResult {

            /** ListResourcesResult resourcePaths */
            resourcePaths?: (string[]|null);
        }

        /** Represents a ListResourcesResult. */
        class ListResourcesResult implements IListResourcesResult {

            /**
             * Constructs a new ListResourcesResult.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.RateLimiter.IListResourcesResult);

            /** ListResourcesResult resourcePaths. */
            public resourcePaths: string[];

            /**
             * Creates a new ListResourcesResult instance using the specified properties.
             * @param [properties] Properties to set
             * @returns ListResourcesResult instance
             */
            public static create(properties?: Ydb.RateLimiter.IListResourcesResult): Ydb.RateLimiter.ListResourcesResult;

            /**
             * Encodes the specified ListResourcesResult message. Does not implicitly {@link Ydb.RateLimiter.ListResourcesResult.verify|verify} messages.
             * @param message ListResourcesResult message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.RateLimiter.IListResourcesResult, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified ListResourcesResult message, length delimited. Does not implicitly {@link Ydb.RateLimiter.ListResourcesResult.verify|verify} messages.
             * @param message ListResourcesResult message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.RateLimiter.IListResourcesResult, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a ListResourcesResult message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns ListResourcesResult
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.RateLimiter.ListResourcesResult;

            /**
             * Decodes a ListResourcesResult message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns ListResourcesResult
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.RateLimiter.ListResourcesResult;

            /**
             * Verifies a ListResourcesResult message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a ListResourcesResult message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns ListResourcesResult
             */
            public static fromObject(object: { [k: string]: any }): Ydb.RateLimiter.ListResourcesResult;

            /**
             * Creates a plain object from a ListResourcesResult message. Also converts values to other types if specified.
             * @param message ListResourcesResult
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.RateLimiter.ListResourcesResult, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this ListResourcesResult to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a DescribeResourceRequest. */
        interface IDescribeResourceRequest {

            /** DescribeResourceRequest operationParams */
            operationParams?: (Ydb.Operations.IOperationParams|null);

            /** DescribeResourceRequest coordinationNodePath */
            coordinationNodePath?: (string|null);

            /** DescribeResourceRequest resourcePath */
            resourcePath?: (string|null);
        }

        /** Represents a DescribeResourceRequest. */
        class DescribeResourceRequest implements IDescribeResourceRequest {

            /**
             * Constructs a new DescribeResourceRequest.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.RateLimiter.IDescribeResourceRequest);

            /** DescribeResourceRequest operationParams. */
            public operationParams?: (Ydb.Operations.IOperationParams|null);

            /** DescribeResourceRequest coordinationNodePath. */
            public coordinationNodePath: string;

            /** DescribeResourceRequest resourcePath. */
            public resourcePath: string;

            /**
             * Creates a new DescribeResourceRequest instance using the specified properties.
             * @param [properties] Properties to set
             * @returns DescribeResourceRequest instance
             */
            public static create(properties?: Ydb.RateLimiter.IDescribeResourceRequest): Ydb.RateLimiter.DescribeResourceRequest;

            /**
             * Encodes the specified DescribeResourceRequest message. Does not implicitly {@link Ydb.RateLimiter.DescribeResourceRequest.verify|verify} messages.
             * @param message DescribeResourceRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.RateLimiter.IDescribeResourceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified DescribeResourceRequest message, length delimited. Does not implicitly {@link Ydb.RateLimiter.DescribeResourceRequest.verify|verify} messages.
             * @param message DescribeResourceRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.RateLimiter.IDescribeResourceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a DescribeResourceRequest message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns DescribeResourceRequest
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.RateLimiter.DescribeResourceRequest;

            /**
             * Decodes a DescribeResourceRequest message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns DescribeResourceRequest
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.RateLimiter.DescribeResourceRequest;

            /**
             * Verifies a DescribeResourceRequest message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a DescribeResourceRequest message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns DescribeResourceRequest
             */
            public static fromObject(object: { [k: string]: any }): Ydb.RateLimiter.DescribeResourceRequest;

            /**
             * Creates a plain object from a DescribeResourceRequest message. Also converts values to other types if specified.
             * @param message DescribeResourceRequest
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.RateLimiter.DescribeResourceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this DescribeResourceRequest to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a DescribeResourceResponse. */
        interface IDescribeResourceResponse {

            /** DescribeResourceResponse operation */
            operation?: (Ydb.Operations.IOperation|null);
        }

        /** Represents a DescribeResourceResponse. */
        class DescribeResourceResponse implements IDescribeResourceResponse {

            /**
             * Constructs a new DescribeResourceResponse.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.RateLimiter.IDescribeResourceResponse);

            /** DescribeResourceResponse operation. */
            public operation?: (Ydb.Operations.IOperation|null);

            /**
             * Creates a new DescribeResourceResponse instance using the specified properties.
             * @param [properties] Properties to set
             * @returns DescribeResourceResponse instance
             */
            public static create(properties?: Ydb.RateLimiter.IDescribeResourceResponse): Ydb.RateLimiter.DescribeResourceResponse;

            /**
             * Encodes the specified DescribeResourceResponse message. Does not implicitly {@link Ydb.RateLimiter.DescribeResourceResponse.verify|verify} messages.
             * @param message DescribeResourceResponse message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.RateLimiter.IDescribeResourceResponse, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified DescribeResourceResponse message, length delimited. Does not implicitly {@link Ydb.RateLimiter.DescribeResourceResponse.verify|verify} messages.
             * @param message DescribeResourceResponse message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.RateLimiter.IDescribeResourceResponse, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a DescribeResourceResponse message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns DescribeResourceResponse
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.RateLimiter.DescribeResourceResponse;

            /**
             * Decodes a DescribeResourceResponse message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns DescribeResourceResponse
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.RateLimiter.DescribeResourceResponse;

            /**
             * Verifies a DescribeResourceResponse message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a DescribeResourceResponse message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns DescribeResourceResponse
             */
            public static fromObject(object: { [k: string]: any }): Ydb.RateLimiter.DescribeResourceResponse;

            /**
             * Creates a plain object from a DescribeResourceResponse message. Also converts values to other types if specified.
             * @param message DescribeResourceResponse
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.RateLimiter.DescribeResourceResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this DescribeResourceResponse to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a DescribeResourceResult. */
        interface IDescribeResourceResult {

            /** DescribeResourceResult resource */
            resource?: (Ydb.RateLimiter.IResource|null);
        }

        /** Represents a DescribeResourceResult. */
        class DescribeResourceResult implements IDescribeResourceResult {

            /**
             * Constructs a new DescribeResourceResult.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.RateLimiter.IDescribeResourceResult);

            /** DescribeResourceResult resource. */
            public resource?: (Ydb.RateLimiter.IResource|null);

            /**
             * Creates a new DescribeResourceResult instance using the specified properties.
             * @param [properties] Properties to set
             * @returns DescribeResourceResult instance
             */
            public static create(properties?: Ydb.RateLimiter.IDescribeResourceResult): Ydb.RateLimiter.DescribeResourceResult;

            /**
             * Encodes the specified DescribeResourceResult message. Does not implicitly {@link Ydb.RateLimiter.DescribeResourceResult.verify|verify} messages.
             * @param message DescribeResourceResult message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.RateLimiter.IDescribeResourceResult, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified DescribeResourceResult message, length delimited. Does not implicitly {@link Ydb.RateLimiter.DescribeResourceResult.verify|verify} messages.
             * @param message DescribeResourceResult message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.RateLimiter.IDescribeResourceResult, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a DescribeResourceResult message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns DescribeResourceResult
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.RateLimiter.DescribeResourceResult;

            /**
             * Decodes a DescribeResourceResult message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns DescribeResourceResult
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.RateLimiter.DescribeResourceResult;

            /**
             * Verifies a DescribeResourceResult message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a DescribeResourceResult message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns DescribeResourceResult
             */
            public static fromObject(object: { [k: string]: any }): Ydb.RateLimiter.DescribeResourceResult;

            /**
             * Creates a plain object from a DescribeResourceResult message. Also converts values to other types if specified.
             * @param message DescribeResourceResult
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.RateLimiter.DescribeResourceResult, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this DescribeResourceResult to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of an AcquireResourceRequest. */
        interface IAcquireResourceRequest {

            /** AcquireResourceRequest operationParams */
            operationParams?: (Ydb.Operations.IOperationParams|null);

            /** AcquireResourceRequest coordinationNodePath */
            coordinationNodePath?: (string|null);

            /** AcquireResourceRequest resourcePath */
            resourcePath?: (string|null);

            /** AcquireResourceRequest required */
            required?: (number|Long|null);

            /** AcquireResourceRequest used */
            used?: (number|Long|null);
        }

        /** Represents an AcquireResourceRequest. */
        class AcquireResourceRequest implements IAcquireResourceRequest {

            /**
             * Constructs a new AcquireResourceRequest.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.RateLimiter.IAcquireResourceRequest);

            /** AcquireResourceRequest operationParams. */
            public operationParams?: (Ydb.Operations.IOperationParams|null);

            /** AcquireResourceRequest coordinationNodePath. */
            public coordinationNodePath: string;

            /** AcquireResourceRequest resourcePath. */
            public resourcePath: string;

            /** AcquireResourceRequest required. */
            public required?: (number|Long|null);

            /** AcquireResourceRequest used. */
            public used?: (number|Long|null);

            /** AcquireResourceRequest units. */
            public units?: ("required"|"used");

            /**
             * Creates a new AcquireResourceRequest instance using the specified properties.
             * @param [properties] Properties to set
             * @returns AcquireResourceRequest instance
             */
            public static create(properties?: Ydb.RateLimiter.IAcquireResourceRequest): Ydb.RateLimiter.AcquireResourceRequest;

            /**
             * Encodes the specified AcquireResourceRequest message. Does not implicitly {@link Ydb.RateLimiter.AcquireResourceRequest.verify|verify} messages.
             * @param message AcquireResourceRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.RateLimiter.IAcquireResourceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified AcquireResourceRequest message, length delimited. Does not implicitly {@link Ydb.RateLimiter.AcquireResourceRequest.verify|verify} messages.
             * @param message AcquireResourceRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.RateLimiter.IAcquireResourceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes an AcquireResourceRequest message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns AcquireResourceRequest
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.RateLimiter.AcquireResourceRequest;

            /**
             * Decodes an AcquireResourceRequest message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns AcquireResourceRequest
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.RateLimiter.AcquireResourceRequest;

            /**
             * Verifies an AcquireResourceRequest message.
             * @param message Plain 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 AcquireResourceRequest message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns AcquireResourceRequest
             */
            public static fromObject(object: { [k: string]: any }): Ydb.RateLimiter.AcquireResourceRequest;

            /**
             * Creates a plain object from an AcquireResourceRequest message. Also converts values to other types if specified.
             * @param message AcquireResourceRequest
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.RateLimiter.AcquireResourceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this AcquireResourceRequest to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of an AcquireResourceResponse. */
        interface IAcquireResourceResponse {

            /** AcquireResourceResponse operation */
            operation?: (Ydb.Operations.IOperation|null);
        }

        /** Represents an AcquireResourceResponse. */
        class AcquireResourceResponse implements IAcquireResourceResponse {

            /**
             * Constructs a new AcquireResourceResponse.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.RateLimiter.IAcquireResourceResponse);

            /** AcquireResourceResponse operation. */
            public operation?: (Ydb.Operations.IOperation|null);

            /**
             * Creates a new AcquireResourceResponse instance using the specified properties.
             * @param [properties] Properties to set
             * @returns AcquireResourceResponse instance
             */
            public static create(properties?: Ydb.RateLimiter.IAcquireResourceResponse): Ydb.RateLimiter.AcquireResourceResponse;

            /**
             * Encodes the specified AcquireResourceResponse message. Does not implicitly {@link Ydb.RateLimiter.AcquireResourceResponse.verify|verify} messages.
             * @param message AcquireResourceResponse message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.RateLimiter.IAcquireResourceResponse, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified AcquireResourceResponse message, length delimited. Does not implicitly {@link Ydb.RateLimiter.AcquireResourceResponse.verify|verify} messages.
             * @param message AcquireResourceResponse message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.RateLimiter.IAcquireResourceResponse, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes an AcquireResourceResponse message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns AcquireResourceResponse
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.RateLimiter.AcquireResourceResponse;

            /**
             * Decodes an AcquireResourceResponse message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns AcquireResourceResponse
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.RateLimiter.AcquireResourceResponse;

            /**
             * Verifies an AcquireResourceResponse message.
             * @param message Plain 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 AcquireResourceResponse message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns AcquireResourceResponse
             */
            public static fromObject(object: { [k: string]: any }): Ydb.RateLimiter.AcquireResourceResponse;

            /**
             * Creates a plain object from an AcquireResourceResponse message. Also converts values to other types if specified.
             * @param message AcquireResourceResponse
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.RateLimiter.AcquireResourceResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this AcquireResourceResponse to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of an AcquireResourceResult. */
        interface IAcquireResourceResult {
        }

        /** Represents an AcquireResourceResult. */
        class AcquireResourceResult implements IAcquireResourceResult {

            /**
             * Constructs a new AcquireResourceResult.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.RateLimiter.IAcquireResourceResult);

            /**
             * Creates a new AcquireResourceResult instance using the specified properties.
             * @param [properties] Properties to set
             * @returns AcquireResourceResult instance
             */
            public static create(properties?: Ydb.RateLimiter.IAcquireResourceResult): Ydb.RateLimiter.AcquireResourceResult;

            /**
             * Encodes the specified AcquireResourceResult message. Does not implicitly {@link Ydb.RateLimiter.AcquireResourceResult.verify|verify} messages.
             * @param message AcquireResourceResult message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.RateLimiter.IAcquireResourceResult, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified AcquireResourceResult message, length delimited. Does not implicitly {@link Ydb.RateLimiter.AcquireResourceResult.verify|verify} messages.
             * @param message AcquireResourceResult message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.RateLimiter.IAcquireResourceResult, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes an AcquireResourceResult message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns AcquireResourceResult
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.RateLimiter.AcquireResourceResult;

            /**
             * Decodes an AcquireResourceResult message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns AcquireResourceResult
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.RateLimiter.AcquireResourceResult;

            /**
             * Verifies an AcquireResourceResult message.
             * @param message Plain 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 AcquireResourceResult message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns AcquireResourceResult
             */
            public static fromObject(object: { [k: string]: any }): Ydb.RateLimiter.AcquireResourceResult;

            /**
             * Creates a plain object from an AcquireResourceResult message. Also converts values to other types if specified.
             * @param message AcquireResourceResult
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.RateLimiter.AcquireResourceResult, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this AcquireResourceResult to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }
    }

    /** Namespace Scripting. */
    namespace Scripting {

        /** Namespace V1. */
        namespace V1 {

            /** Represents a ScriptingService */
            class ScriptingService extends $protobuf.rpc.Service {

                /**
                 * Constructs a new ScriptingService 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 ScriptingService 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): ScriptingService;

                /**
                 * Calls ExecuteYql.
                 * @param request ExecuteYqlRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and ExecuteYqlResponse
                 */
                public executeYql(request: Ydb.Scripting.IExecuteYqlRequest, callback: Ydb.Scripting.V1.ScriptingService.ExecuteYqlCallback): void;

                /**
                 * Calls ExecuteYql.
                 * @param request ExecuteYqlRequest message or plain object
                 * @returns Promise
                 */
                public executeYql(request: Ydb.Scripting.IExecuteYqlRequest): Promise<Ydb.Scripting.ExecuteYqlResponse>;

                /**
                 * Calls StreamExecuteYql.
                 * @param request ExecuteYqlRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and ExecuteYqlPartialResponse
                 */
                public streamExecuteYql(request: Ydb.Scripting.IExecuteYqlRequest, callback: Ydb.Scripting.V1.ScriptingService.StreamExecuteYqlCallback): void;

                /**
                 * Calls StreamExecuteYql.
                 * @param request ExecuteYqlRequest message or plain object
                 * @returns Promise
                 */
                public streamExecuteYql(request: Ydb.Scripting.IExecuteYqlRequest): Promise<Ydb.Scripting.ExecuteYqlPartialResponse>;

                /**
                 * Calls ExplainYql.
                 * @param request ExplainYqlRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and ExplainYqlResponse
                 */
                public explainYql(request: Ydb.Scripting.IExplainYqlRequest, callback: Ydb.Scripting.V1.ScriptingService.ExplainYqlCallback): void;

                /**
                 * Calls ExplainYql.
                 * @param request ExplainYqlRequest message or plain object
                 * @returns Promise
                 */
                public explainYql(request: Ydb.Scripting.IExplainYqlRequest): Promise<Ydb.Scripting.ExplainYqlResponse>;
            }

            namespace ScriptingService {

                /**
                 * Callback as used by {@link Ydb.Scripting.V1.ScriptingService#executeYql}.
                 * @param error Error, if any
                 * @param [response] ExecuteYqlResponse
                 */
                type ExecuteYqlCallback = (error: (Error|null), response?: Ydb.Scripting.ExecuteYqlResponse) => void;

                /**
                 * Callback as used by {@link Ydb.Scripting.V1.ScriptingService#streamExecuteYql}.
                 * @param error Error, if any
                 * @param [response] ExecuteYqlPartialResponse
                 */
                type StreamExecuteYqlCallback = (error: (Error|null), response?: Ydb.Scripting.ExecuteYqlPartialResponse) => void;

                /**
                 * Callback as used by {@link Ydb.Scripting.V1.ScriptingService#explainYql}.
                 * @param error Error, if any
                 * @param [response] ExplainYqlResponse
                 */
                type ExplainYqlCallback = (error: (Error|null), response?: Ydb.Scripting.ExplainYqlResponse) => void;
            }
        }

        /** Properties of an ExecuteYqlRequest. */
        interface IExecuteYqlRequest {

            /** ExecuteYqlRequest operationParams */
            operationParams?: (Ydb.Operations.IOperationParams|null);

            /** ExecuteYqlRequest script */
            script?: (string|null);

            /** ExecuteYqlRequest parameters */
            parameters?: ({ [k: string]: Ydb.ITypedValue }|null);

            /** ExecuteYqlRequest collectStats */
            collectStats?: (Ydb.Table.QueryStatsCollection.Mode|null);
        }

        /** Represents an ExecuteYqlRequest. */
        class ExecuteYqlRequest implements IExecuteYqlRequest {

            /**
             * Constructs a new ExecuteYqlRequest.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Scripting.IExecuteYqlRequest);

            /** ExecuteYqlRequest operationParams. */
            public operationParams?: (Ydb.Operations.IOperationParams|null);

            /** ExecuteYqlRequest script. */
            public script: string;

            /** ExecuteYqlRequest parameters. */
            public parameters: { [k: string]: Ydb.ITypedValue };

            /** ExecuteYqlRequest collectStats. */
            public collectStats: Ydb.Table.QueryStatsCollection.Mode;

            /**
             * Creates a new ExecuteYqlRequest instance using the specified properties.
             * @param [properties] Properties to set
             * @returns ExecuteYqlRequest instance
             */
            public static create(properties?: Ydb.Scripting.IExecuteYqlRequest): Ydb.Scripting.ExecuteYqlRequest;

            /**
             * Encodes the specified ExecuteYqlRequest message. Does not implicitly {@link Ydb.Scripting.ExecuteYqlRequest.verify|verify} messages.
             * @param message ExecuteYqlRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Scripting.IExecuteYqlRequest, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified ExecuteYqlRequest message, length delimited. Does not implicitly {@link Ydb.Scripting.ExecuteYqlRequest.verify|verify} messages.
             * @param message ExecuteYqlRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Scripting.IExecuteYqlRequest, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes an ExecuteYqlRequest message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns ExecuteYqlRequest
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Scripting.ExecuteYqlRequest;

            /**
             * Decodes an ExecuteYqlRequest message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns ExecuteYqlRequest
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Scripting.ExecuteYqlRequest;

            /**
             * Verifies an ExecuteYqlRequest message.
             * @param message Plain 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 ExecuteYqlRequest message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns ExecuteYqlRequest
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Scripting.ExecuteYqlRequest;

            /**
             * Creates a plain object from an ExecuteYqlRequest message. Also converts values to other types if specified.
             * @param message ExecuteYqlRequest
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Scripting.ExecuteYqlRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this ExecuteYqlRequest to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of an ExecuteYqlResponse. */
        interface IExecuteYqlResponse {

            /** ExecuteYqlResponse operation */
            operation?: (Ydb.Operations.IOperation|null);
        }

        /** Represents an ExecuteYqlResponse. */
        class ExecuteYqlResponse implements IExecuteYqlResponse {

            /**
             * Constructs a new ExecuteYqlResponse.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Scripting.IExecuteYqlResponse);

            /** ExecuteYqlResponse operation. */
            public operation?: (Ydb.Operations.IOperation|null);

            /**
             * Creates a new ExecuteYqlResponse instance using the specified properties.
             * @param [properties] Properties to set
             * @returns ExecuteYqlResponse instance
             */
            public static create(properties?: Ydb.Scripting.IExecuteYqlResponse): Ydb.Scripting.ExecuteYqlResponse;

            /**
             * Encodes the specified ExecuteYqlResponse message. Does not implicitly {@link Ydb.Scripting.ExecuteYqlResponse.verify|verify} messages.
             * @param message ExecuteYqlResponse message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Scripting.IExecuteYqlResponse, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified ExecuteYqlResponse message, length delimited. Does not implicitly {@link Ydb.Scripting.ExecuteYqlResponse.verify|verify} messages.
             * @param message ExecuteYqlResponse message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Scripting.IExecuteYqlResponse, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes an ExecuteYqlResponse message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns ExecuteYqlResponse
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Scripting.ExecuteYqlResponse;

            /**
             * Decodes an ExecuteYqlResponse message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns ExecuteYqlResponse
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Scripting.ExecuteYqlResponse;

            /**
             * Verifies an ExecuteYqlResponse message.
             * @param message Plain 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 ExecuteYqlResponse message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns ExecuteYqlResponse
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Scripting.ExecuteYqlResponse;

            /**
             * Creates a plain object from an ExecuteYqlResponse message. Also converts values to other types if specified.
             * @param message ExecuteYqlResponse
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Scripting.ExecuteYqlResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this ExecuteYqlResponse to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of an ExecuteYqlResult. */
        interface IExecuteYqlResult {

            /** ExecuteYqlResult resultSets */
            resultSets?: (Ydb.IResultSet[]|null);

            /** ExecuteYqlResult queryStats */
            queryStats?: (Ydb.TableStats.IQueryStats|null);
        }

        /** Represents an ExecuteYqlResult. */
        class ExecuteYqlResult implements IExecuteYqlResult {

            /**
             * Constructs a new ExecuteYqlResult.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Scripting.IExecuteYqlResult);

            /** ExecuteYqlResult resultSets. */
            public resultSets: Ydb.IResultSet[];

            /** ExecuteYqlResult queryStats. */
            public queryStats?: (Ydb.TableStats.IQueryStats|null);

            /**
             * Creates a new ExecuteYqlResult instance using the specified properties.
             * @param [properties] Properties to set
             * @returns ExecuteYqlResult instance
             */
            public static create(properties?: Ydb.Scripting.IExecuteYqlResult): Ydb.Scripting.ExecuteYqlResult;

            /**
             * Encodes the specified ExecuteYqlResult message. Does not implicitly {@link Ydb.Scripting.ExecuteYqlResult.verify|verify} messages.
             * @param message ExecuteYqlResult message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Scripting.IExecuteYqlResult, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified ExecuteYqlResult message, length delimited. Does not implicitly {@link Ydb.Scripting.ExecuteYqlResult.verify|verify} messages.
             * @param message ExecuteYqlResult message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Scripting.IExecuteYqlResult, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes an ExecuteYqlResult message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns ExecuteYqlResult
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Scripting.ExecuteYqlResult;

            /**
             * Decodes an ExecuteYqlResult message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns ExecuteYqlResult
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Scripting.ExecuteYqlResult;

            /**
             * Verifies an ExecuteYqlResult message.
             * @param message Plain 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 ExecuteYqlResult message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns ExecuteYqlResult
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Scripting.ExecuteYqlResult;

            /**
             * Creates a plain object from an ExecuteYqlResult message. Also converts values to other types if specified.
             * @param message ExecuteYqlResult
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Scripting.ExecuteYqlResult, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this ExecuteYqlResult to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of an ExecuteYqlPartialResponse. */
        interface IExecuteYqlPartialResponse {

            /** ExecuteYqlPartialResponse status */
            status?: (Ydb.StatusIds.StatusCode|null);

            /** ExecuteYqlPartialResponse issues */
            issues?: (Ydb.Issue.IIssueMessage[]|null);

            /** ExecuteYqlPartialResponse result */
            result?: (Ydb.Scripting.IExecuteYqlPartialResult|null);
        }

        /** Represents an ExecuteYqlPartialResponse. */
        class ExecuteYqlPartialResponse implements IExecuteYqlPartialResponse {

            /**
             * Constructs a new ExecuteYqlPartialResponse.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Scripting.IExecuteYqlPartialResponse);

            /** ExecuteYqlPartialResponse status. */
            public status: Ydb.StatusIds.StatusCode;

            /** ExecuteYqlPartialResponse issues. */
            public issues: Ydb.Issue.IIssueMessage[];

            /** ExecuteYqlPartialResponse result. */
            public result?: (Ydb.Scripting.IExecuteYqlPartialResult|null);

            /**
             * Creates a new ExecuteYqlPartialResponse instance using the specified properties.
             * @param [properties] Properties to set
             * @returns ExecuteYqlPartialResponse instance
             */
            public static create(properties?: Ydb.Scripting.IExecuteYqlPartialResponse): Ydb.Scripting.ExecuteYqlPartialResponse;

            /**
             * Encodes the specified ExecuteYqlPartialResponse message. Does not implicitly {@link Ydb.Scripting.ExecuteYqlPartialResponse.verify|verify} messages.
             * @param message ExecuteYqlPartialResponse message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Scripting.IExecuteYqlPartialResponse, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified ExecuteYqlPartialResponse message, length delimited. Does not implicitly {@link Ydb.Scripting.ExecuteYqlPartialResponse.verify|verify} messages.
             * @param message ExecuteYqlPartialResponse message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Scripting.IExecuteYqlPartialResponse, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes an ExecuteYqlPartialResponse message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns ExecuteYqlPartialResponse
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Scripting.ExecuteYqlPartialResponse;

            /**
             * Decodes an ExecuteYqlPartialResponse message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns ExecuteYqlPartialResponse
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Scripting.ExecuteYqlPartialResponse;

            /**
             * Verifies an ExecuteYqlPartialResponse message.
             * @param message Plain 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 ExecuteYqlPartialResponse message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns ExecuteYqlPartialResponse
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Scripting.ExecuteYqlPartialResponse;

            /**
             * Creates a plain object from an ExecuteYqlPartialResponse message. Also converts values to other types if specified.
             * @param message ExecuteYqlPartialResponse
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Scripting.ExecuteYqlPartialResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this ExecuteYqlPartialResponse to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of an ExecuteYqlPartialResult. */
        interface IExecuteYqlPartialResult {

            /** ExecuteYqlPartialResult resultSetIndex */
            resultSetIndex?: (number|null);

            /** ExecuteYqlPartialResult resultSet */
            resultSet?: (Ydb.IResultSet|null);

            /** ExecuteYqlPartialResult queryStats */
            queryStats?: (Ydb.TableStats.IQueryStats|null);
        }

        /** Represents an ExecuteYqlPartialResult. */
        class ExecuteYqlPartialResult implements IExecuteYqlPartialResult {

            /**
             * Constructs a new ExecuteYqlPartialResult.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Scripting.IExecuteYqlPartialResult);

            /** ExecuteYqlPartialResult resultSetIndex. */
            public resultSetIndex: number;

            /** ExecuteYqlPartialResult resultSet. */
            public resultSet?: (Ydb.IResultSet|null);

            /** ExecuteYqlPartialResult queryStats. */
            public queryStats?: (Ydb.TableStats.IQueryStats|null);

            /**
             * Creates a new ExecuteYqlPartialResult instance using the specified properties.
             * @param [properties] Properties to set
             * @returns ExecuteYqlPartialResult instance
             */
            public static create(properties?: Ydb.Scripting.IExecuteYqlPartialResult): Ydb.Scripting.ExecuteYqlPartialResult;

            /**
             * Encodes the specified ExecuteYqlPartialResult message. Does not implicitly {@link Ydb.Scripting.ExecuteYqlPartialResult.verify|verify} messages.
             * @param message ExecuteYqlPartialResult message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Scripting.IExecuteYqlPartialResult, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified ExecuteYqlPartialResult message, length delimited. Does not implicitly {@link Ydb.Scripting.ExecuteYqlPartialResult.verify|verify} messages.
             * @param message ExecuteYqlPartialResult message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Scripting.IExecuteYqlPartialResult, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes an ExecuteYqlPartialResult message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns ExecuteYqlPartialResult
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Scripting.ExecuteYqlPartialResult;

            /**
             * Decodes an ExecuteYqlPartialResult message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns ExecuteYqlPartialResult
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Scripting.ExecuteYqlPartialResult;

            /**
             * Verifies an ExecuteYqlPartialResult message.
             * @param message Plain 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 ExecuteYqlPartialResult message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns ExecuteYqlPartialResult
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Scripting.ExecuteYqlPartialResult;

            /**
             * Creates a plain object from an ExecuteYqlPartialResult message. Also converts values to other types if specified.
             * @param message ExecuteYqlPartialResult
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Scripting.ExecuteYqlPartialResult, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this ExecuteYqlPartialResult to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of an ExplainYqlRequest. */
        interface IExplainYqlRequest {

            /** ExplainYqlRequest operationParams */
            operationParams?: (Ydb.Operations.IOperationParams|null);

            /** ExplainYqlRequest script */
            script?: (string|null);

            /** ExplainYqlRequest mode */
            mode?: (Ydb.Scripting.ExplainYqlRequest.Mode|null);
        }

        /** Represents an ExplainYqlRequest. */
        class ExplainYqlRequest implements IExplainYqlRequest {

            /**
             * Constructs a new ExplainYqlRequest.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Scripting.IExplainYqlRequest);

            /** ExplainYqlRequest operationParams. */
            public operationParams?: (Ydb.Operations.IOperationParams|null);

            /** ExplainYqlRequest script. */
            public script: string;

            /** ExplainYqlRequest mode. */
            public mode: Ydb.Scripting.ExplainYqlRequest.Mode;

            /**
             * Creates a new ExplainYqlRequest instance using the specified properties.
             * @param [properties] Properties to set
             * @returns ExplainYqlRequest instance
             */
            public static create(properties?: Ydb.Scripting.IExplainYqlRequest): Ydb.Scripting.ExplainYqlRequest;

            /**
             * Encodes the specified ExplainYqlRequest message. Does not implicitly {@link Ydb.Scripting.ExplainYqlRequest.verify|verify} messages.
             * @param message ExplainYqlRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Scripting.IExplainYqlRequest, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified ExplainYqlRequest message, length delimited. Does not implicitly {@link Ydb.Scripting.ExplainYqlRequest.verify|verify} messages.
             * @param message ExplainYqlRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Scripting.IExplainYqlRequest, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes an ExplainYqlRequest message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns ExplainYqlRequest
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Scripting.ExplainYqlRequest;

            /**
             * Decodes an ExplainYqlRequest message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns ExplainYqlRequest
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Scripting.ExplainYqlRequest;

            /**
             * Verifies an ExplainYqlRequest message.
             * @param message Plain 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 ExplainYqlRequest message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns ExplainYqlRequest
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Scripting.ExplainYqlRequest;

            /**
             * Creates a plain object from an ExplainYqlRequest message. Also converts values to other types if specified.
             * @param message ExplainYqlRequest
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Scripting.ExplainYqlRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this ExplainYqlRequest to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        namespace ExplainYqlRequest {

            /** Mode enum. */
            enum Mode {
                MODE_UNSPECIFIED = 0,
                VALIDATE = 2,
                PLAN = 3
            }
        }

        /** Properties of an ExplainYqlResponse. */
        interface IExplainYqlResponse {

            /** ExplainYqlResponse operation */
            operation?: (Ydb.Operations.IOperation|null);
        }

        /** Represents an ExplainYqlResponse. */
        class ExplainYqlResponse implements IExplainYqlResponse {

            /**
             * Constructs a new ExplainYqlResponse.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Scripting.IExplainYqlResponse);

            /** ExplainYqlResponse operation. */
            public operation?: (Ydb.Operations.IOperation|null);

            /**
             * Creates a new ExplainYqlResponse instance using the specified properties.
             * @param [properties] Properties to set
             * @returns ExplainYqlResponse instance
             */
            public static create(properties?: Ydb.Scripting.IExplainYqlResponse): Ydb.Scripting.ExplainYqlResponse;

            /**
             * Encodes the specified ExplainYqlResponse message. Does not implicitly {@link Ydb.Scripting.ExplainYqlResponse.verify|verify} messages.
             * @param message ExplainYqlResponse message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Scripting.IExplainYqlResponse, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified ExplainYqlResponse message, length delimited. Does not implicitly {@link Ydb.Scripting.ExplainYqlResponse.verify|verify} messages.
             * @param message ExplainYqlResponse message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Scripting.IExplainYqlResponse, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes an ExplainYqlResponse message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns ExplainYqlResponse
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Scripting.ExplainYqlResponse;

            /**
             * Decodes an ExplainYqlResponse message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns ExplainYqlResponse
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Scripting.ExplainYqlResponse;

            /**
             * Verifies an ExplainYqlResponse message.
             * @param message Plain 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 ExplainYqlResponse message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns ExplainYqlResponse
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Scripting.ExplainYqlResponse;

            /**
             * Creates a plain object from an ExplainYqlResponse message. Also converts values to other types if specified.
             * @param message ExplainYqlResponse
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Scripting.ExplainYqlResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this ExplainYqlResponse to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of an ExplainYqlResult. */
        interface IExplainYqlResult {

            /** ExplainYqlResult parametersTypes */
            parametersTypes?: ({ [k: string]: Ydb.IType }|null);

            /** ExplainYqlResult plan */
            plan?: (string|null);
        }

        /** Represents an ExplainYqlResult. */
        class ExplainYqlResult implements IExplainYqlResult {

            /**
             * Constructs a new ExplainYqlResult.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Scripting.IExplainYqlResult);

            /** ExplainYqlResult parametersTypes. */
            public parametersTypes: { [k: string]: Ydb.IType };

            /** ExplainYqlResult plan. */
            public plan: string;

            /**
             * Creates a new ExplainYqlResult instance using the specified properties.
             * @param [properties] Properties to set
             * @returns ExplainYqlResult instance
             */
            public static create(properties?: Ydb.Scripting.IExplainYqlResult): Ydb.Scripting.ExplainYqlResult;

            /**
             * Encodes the specified ExplainYqlResult message. Does not implicitly {@link Ydb.Scripting.ExplainYqlResult.verify|verify} messages.
             * @param message ExplainYqlResult message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Scripting.IExplainYqlResult, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified ExplainYqlResult message, length delimited. Does not implicitly {@link Ydb.Scripting.ExplainYqlResult.verify|verify} messages.
             * @param message ExplainYqlResult message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Scripting.IExplainYqlResult, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes an ExplainYqlResult message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns ExplainYqlResult
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Scripting.ExplainYqlResult;

            /**
             * Decodes an ExplainYqlResult message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns ExplainYqlResult
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Scripting.ExplainYqlResult;

            /**
             * Verifies an ExplainYqlResult message.
             * @param message Plain 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 ExplainYqlResult message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns ExplainYqlResult
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Scripting.ExplainYqlResult;

            /**
             * Creates a plain object from an ExplainYqlResult message. Also converts values to other types if specified.
             * @param message ExplainYqlResult
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Scripting.ExplainYqlResult, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this ExplainYqlResult to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }
    }

    /** Namespace Table. */
    namespace Table {

        /** Properties of a CreateSessionRequest. */
        interface ICreateSessionRequest {

            /** CreateSessionRequest operationParams */
            operationParams?: (Ydb.Operations.IOperationParams|null);
        }

        /** Represents a CreateSessionRequest. */
        class CreateSessionRequest implements ICreateSessionRequest {

            /**
             * Constructs a new CreateSessionRequest.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Table.ICreateSessionRequest);

            /** CreateSessionRequest operationParams. */
            public operationParams?: (Ydb.Operations.IOperationParams|null);

            /**
             * Creates a new CreateSessionRequest instance using the specified properties.
             * @param [properties] Properties to set
             * @returns CreateSessionRequest instance
             */
            public static create(properties?: Ydb.Table.ICreateSessionRequest): Ydb.Table.CreateSessionRequest;

            /**
             * Encodes the specified CreateSessionRequest message. Does not implicitly {@link Ydb.Table.CreateSessionRequest.verify|verify} messages.
             * @param message CreateSessionRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Table.ICreateSessionRequest, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified CreateSessionRequest message, length delimited. Does not implicitly {@link Ydb.Table.CreateSessionRequest.verify|verify} messages.
             * @param message CreateSessionRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Table.ICreateSessionRequest, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a CreateSessionRequest message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns CreateSessionRequest
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Table.CreateSessionRequest;

            /**
             * Decodes a CreateSessionRequest message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns CreateSessionRequest
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Table.CreateSessionRequest;

            /**
             * Verifies a CreateSessionRequest message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a CreateSessionRequest message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns CreateSessionRequest
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Table.CreateSessionRequest;

            /**
             * Creates a plain object from a CreateSessionRequest message. Also converts values to other types if specified.
             * @param message CreateSessionRequest
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Table.CreateSessionRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this CreateSessionRequest to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a CreateSessionResponse. */
        interface ICreateSessionResponse {

            /** CreateSessionResponse operation */
            operation?: (Ydb.Operations.IOperation|null);
        }

        /** Represents a CreateSessionResponse. */
        class CreateSessionResponse implements ICreateSessionResponse {

            /**
             * Constructs a new CreateSessionResponse.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Table.ICreateSessionResponse);

            /** CreateSessionResponse operation. */
            public operation?: (Ydb.Operations.IOperation|null);

            /**
             * Creates a new CreateSessionResponse instance using the specified properties.
             * @param [properties] Properties to set
             * @returns CreateSessionResponse instance
             */
            public static create(properties?: Ydb.Table.ICreateSessionResponse): Ydb.Table.CreateSessionResponse;

            /**
             * Encodes the specified CreateSessionResponse message. Does not implicitly {@link Ydb.Table.CreateSessionResponse.verify|verify} messages.
             * @param message CreateSessionResponse message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Table.ICreateSessionResponse, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified CreateSessionResponse message, length delimited. Does not implicitly {@link Ydb.Table.CreateSessionResponse.verify|verify} messages.
             * @param message CreateSessionResponse message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Table.ICreateSessionResponse, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a CreateSessionResponse message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns CreateSessionResponse
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Table.CreateSessionResponse;

            /**
             * Decodes a CreateSessionResponse message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns CreateSessionResponse
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Table.CreateSessionResponse;

            /**
             * Verifies a CreateSessionResponse message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a CreateSessionResponse message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns CreateSessionResponse
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Table.CreateSessionResponse;

            /**
             * Creates a plain object from a CreateSessionResponse message. Also converts values to other types if specified.
             * @param message CreateSessionResponse
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Table.CreateSessionResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this CreateSessionResponse to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a CreateSessionResult. */
        interface ICreateSessionResult {

            /** CreateSessionResult sessionId */
            sessionId?: (string|null);
        }

        /** Represents a CreateSessionResult. */
        class CreateSessionResult implements ICreateSessionResult {

            /**
             * Constructs a new CreateSessionResult.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Table.ICreateSessionResult);

            /** CreateSessionResult sessionId. */
            public sessionId: string;

            /**
             * Creates a new CreateSessionResult instance using the specified properties.
             * @param [properties] Properties to set
             * @returns CreateSessionResult instance
             */
            public static create(properties?: Ydb.Table.ICreateSessionResult): Ydb.Table.CreateSessionResult;

            /**
             * Encodes the specified CreateSessionResult message. Does not implicitly {@link Ydb.Table.CreateSessionResult.verify|verify} messages.
             * @param message CreateSessionResult message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Table.ICreateSessionResult, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified CreateSessionResult message, length delimited. Does not implicitly {@link Ydb.Table.CreateSessionResult.verify|verify} messages.
             * @param message CreateSessionResult message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Table.ICreateSessionResult, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a CreateSessionResult message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns CreateSessionResult
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Table.CreateSessionResult;

            /**
             * Decodes a CreateSessionResult message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns CreateSessionResult
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Table.CreateSessionResult;

            /**
             * Verifies a CreateSessionResult message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a CreateSessionResult message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns CreateSessionResult
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Table.CreateSessionResult;

            /**
             * Creates a plain object from a CreateSessionResult message. Also converts values to other types if specified.
             * @param message CreateSessionResult
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Table.CreateSessionResult, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this CreateSessionResult to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a DeleteSessionRequest. */
        interface IDeleteSessionRequest {

            /** DeleteSessionRequest sessionId */
            sessionId?: (string|null);

            /** DeleteSessionRequest operationParams */
            operationParams?: (Ydb.Operations.IOperationParams|null);
        }

        /** Represents a DeleteSessionRequest. */
        class DeleteSessionRequest implements IDeleteSessionRequest {

            /**
             * Constructs a new DeleteSessionRequest.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Table.IDeleteSessionRequest);

            /** DeleteSessionRequest sessionId. */
            public sessionId: string;

            /** DeleteSessionRequest operationParams. */
            public operationParams?: (Ydb.Operations.IOperationParams|null);

            /**
             * Creates a new DeleteSessionRequest instance using the specified properties.
             * @param [properties] Properties to set
             * @returns DeleteSessionRequest instance
             */
            public static create(properties?: Ydb.Table.IDeleteSessionRequest): Ydb.Table.DeleteSessionRequest;

            /**
             * Encodes the specified DeleteSessionRequest message. Does not implicitly {@link Ydb.Table.DeleteSessionRequest.verify|verify} messages.
             * @param message DeleteSessionRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Table.IDeleteSessionRequest, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified DeleteSessionRequest message, length delimited. Does not implicitly {@link Ydb.Table.DeleteSessionRequest.verify|verify} messages.
             * @param message DeleteSessionRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Table.IDeleteSessionRequest, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a DeleteSessionRequest message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns DeleteSessionRequest
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Table.DeleteSessionRequest;

            /**
             * Decodes a DeleteSessionRequest message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns DeleteSessionRequest
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Table.DeleteSessionRequest;

            /**
             * Verifies a DeleteSessionRequest message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a DeleteSessionRequest message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns DeleteSessionRequest
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Table.DeleteSessionRequest;

            /**
             * Creates a plain object from a DeleteSessionRequest message. Also converts values to other types if specified.
             * @param message DeleteSessionRequest
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Table.DeleteSessionRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this DeleteSessionRequest to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a DeleteSessionResponse. */
        interface IDeleteSessionResponse {

            /** DeleteSessionResponse operation */
            operation?: (Ydb.Operations.IOperation|null);
        }

        /** Represents a DeleteSessionResponse. */
        class DeleteSessionResponse implements IDeleteSessionResponse {

            /**
             * Constructs a new DeleteSessionResponse.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Table.IDeleteSessionResponse);

            /** DeleteSessionResponse operation. */
            public operation?: (Ydb.Operations.IOperation|null);

            /**
             * Creates a new DeleteSessionResponse instance using the specified properties.
             * @param [properties] Properties to set
             * @returns DeleteSessionResponse instance
             */
            public static create(properties?: Ydb.Table.IDeleteSessionResponse): Ydb.Table.DeleteSessionResponse;

            /**
             * Encodes the specified DeleteSessionResponse message. Does not implicitly {@link Ydb.Table.DeleteSessionResponse.verify|verify} messages.
             * @param message DeleteSessionResponse message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Table.IDeleteSessionResponse, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified DeleteSessionResponse message, length delimited. Does not implicitly {@link Ydb.Table.DeleteSessionResponse.verify|verify} messages.
             * @param message DeleteSessionResponse message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Table.IDeleteSessionResponse, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a DeleteSessionResponse message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns DeleteSessionResponse
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Table.DeleteSessionResponse;

            /**
             * Decodes a DeleteSessionResponse message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns DeleteSessionResponse
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Table.DeleteSessionResponse;

            /**
             * Verifies a DeleteSessionResponse message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a DeleteSessionResponse message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns DeleteSessionResponse
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Table.DeleteSessionResponse;

            /**
             * Creates a plain object from a DeleteSessionResponse message. Also converts values to other types if specified.
             * @param message DeleteSessionResponse
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Table.DeleteSessionResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this DeleteSessionResponse to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a GlobalIndex. */
        interface IGlobalIndex {
        }

        /** Represents a GlobalIndex. */
        class GlobalIndex implements IGlobalIndex {

            /**
             * Constructs a new GlobalIndex.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Table.IGlobalIndex);

            /**
             * Creates a new GlobalIndex instance using the specified properties.
             * @param [properties] Properties to set
             * @returns GlobalIndex instance
             */
            public static create(properties?: Ydb.Table.IGlobalIndex): Ydb.Table.GlobalIndex;

            /**
             * Encodes the specified GlobalIndex message. Does not implicitly {@link Ydb.Table.GlobalIndex.verify|verify} messages.
             * @param message GlobalIndex message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Table.IGlobalIndex, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified GlobalIndex message, length delimited. Does not implicitly {@link Ydb.Table.GlobalIndex.verify|verify} messages.
             * @param message GlobalIndex message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Table.IGlobalIndex, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a GlobalIndex message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns GlobalIndex
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Table.GlobalIndex;

            /**
             * Decodes a GlobalIndex message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns GlobalIndex
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Table.GlobalIndex;

            /**
             * Verifies a GlobalIndex message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a GlobalIndex message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns GlobalIndex
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Table.GlobalIndex;

            /**
             * Creates a plain object from a GlobalIndex message. Also converts values to other types if specified.
             * @param message GlobalIndex
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Table.GlobalIndex, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this GlobalIndex to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a GlobalAsyncIndex. */
        interface IGlobalAsyncIndex {
        }

        /** Represents a GlobalAsyncIndex. */
        class GlobalAsyncIndex implements IGlobalAsyncIndex {

            /**
             * Constructs a new GlobalAsyncIndex.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Table.IGlobalAsyncIndex);

            /**
             * Creates a new GlobalAsyncIndex instance using the specified properties.
             * @param [properties] Properties to set
             * @returns GlobalAsyncIndex instance
             */
            public static create(properties?: Ydb.Table.IGlobalAsyncIndex): Ydb.Table.GlobalAsyncIndex;

            /**
             * Encodes the specified GlobalAsyncIndex message. Does not implicitly {@link Ydb.Table.GlobalAsyncIndex.verify|verify} messages.
             * @param message GlobalAsyncIndex message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Table.IGlobalAsyncIndex, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified GlobalAsyncIndex message, length delimited. Does not implicitly {@link Ydb.Table.GlobalAsyncIndex.verify|verify} messages.
             * @param message GlobalAsyncIndex message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Table.IGlobalAsyncIndex, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a GlobalAsyncIndex message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns GlobalAsyncIndex
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Table.GlobalAsyncIndex;

            /**
             * Decodes a GlobalAsyncIndex message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns GlobalAsyncIndex
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Table.GlobalAsyncIndex;

            /**
             * Verifies a GlobalAsyncIndex message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a GlobalAsyncIndex message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns GlobalAsyncIndex
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Table.GlobalAsyncIndex;

            /**
             * Creates a plain object from a GlobalAsyncIndex message. Also converts values to other types if specified.
             * @param message GlobalAsyncIndex
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Table.GlobalAsyncIndex, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this GlobalAsyncIndex to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a GlobalUniqueIndex. */
        interface IGlobalUniqueIndex {
        }

        /** Represents a GlobalUniqueIndex. */
        class GlobalUniqueIndex implements IGlobalUniqueIndex {

            /**
             * Constructs a new GlobalUniqueIndex.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Table.IGlobalUniqueIndex);

            /**
             * Creates a new GlobalUniqueIndex instance using the specified properties.
             * @param [properties] Properties to set
             * @returns GlobalUniqueIndex instance
             */
            public static create(properties?: Ydb.Table.IGlobalUniqueIndex): Ydb.Table.GlobalUniqueIndex;

            /**
             * Encodes the specified GlobalUniqueIndex message. Does not implicitly {@link Ydb.Table.GlobalUniqueIndex.verify|verify} messages.
             * @param message GlobalUniqueIndex message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Table.IGlobalUniqueIndex, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified GlobalUniqueIndex message, length delimited. Does not implicitly {@link Ydb.Table.GlobalUniqueIndex.verify|verify} messages.
             * @param message GlobalUniqueIndex message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Table.IGlobalUniqueIndex, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a GlobalUniqueIndex message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns GlobalUniqueIndex
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Table.GlobalUniqueIndex;

            /**
             * Decodes a GlobalUniqueIndex message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns GlobalUniqueIndex
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Table.GlobalUniqueIndex;

            /**
             * Verifies a GlobalUniqueIndex message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a GlobalUniqueIndex message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns GlobalUniqueIndex
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Table.GlobalUniqueIndex;

            /**
             * Creates a plain object from a GlobalUniqueIndex message. Also converts values to other types if specified.
             * @param message GlobalUniqueIndex
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Table.GlobalUniqueIndex, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this GlobalUniqueIndex to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a TableIndex. */
        interface ITableIndex {

            /** TableIndex name */
            name?: (string|null);

            /** TableIndex indexColumns */
            indexColumns?: (string[]|null);

            /** TableIndex globalIndex */
            globalIndex?: (Ydb.Table.IGlobalIndex|null);

            /** TableIndex globalAsyncIndex */
            globalAsyncIndex?: (Ydb.Table.IGlobalAsyncIndex|null);

            /** TableIndex globalUniqueIndex */
            globalUniqueIndex?: (Ydb.Table.IGlobalUniqueIndex|null);

            /** TableIndex dataColumns */
            dataColumns?: (string[]|null);
        }

        /** Represents a TableIndex. */
        class TableIndex implements ITableIndex {

            /**
             * Constructs a new TableIndex.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Table.ITableIndex);

            /** TableIndex name. */
            public name: string;

            /** TableIndex indexColumns. */
            public indexColumns: string[];

            /** TableIndex globalIndex. */
            public globalIndex?: (Ydb.Table.IGlobalIndex|null);

            /** TableIndex globalAsyncIndex. */
            public globalAsyncIndex?: (Ydb.Table.IGlobalAsyncIndex|null);

            /** TableIndex globalUniqueIndex. */
            public globalUniqueIndex?: (Ydb.Table.IGlobalUniqueIndex|null);

            /** TableIndex dataColumns. */
            public dataColumns: string[];

            /** TableIndex type. */
            public type?: ("globalIndex"|"globalAsyncIndex"|"globalUniqueIndex");

            /**
             * Creates a new TableIndex instance using the specified properties.
             * @param [properties] Properties to set
             * @returns TableIndex instance
             */
            public static create(properties?: Ydb.Table.ITableIndex): Ydb.Table.TableIndex;

            /**
             * Encodes the specified TableIndex message. Does not implicitly {@link Ydb.Table.TableIndex.verify|verify} messages.
             * @param message TableIndex message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Table.ITableIndex, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified TableIndex message, length delimited. Does not implicitly {@link Ydb.Table.TableIndex.verify|verify} messages.
             * @param message TableIndex message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Table.ITableIndex, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a TableIndex message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns TableIndex
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Table.TableIndex;

            /**
             * Decodes a TableIndex message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns TableIndex
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Table.TableIndex;

            /**
             * Verifies a TableIndex message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a TableIndex message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns TableIndex
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Table.TableIndex;

            /**
             * Creates a plain object from a TableIndex message. Also converts values to other types if specified.
             * @param message TableIndex
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Table.TableIndex, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this TableIndex to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a TableIndexDescription. */
        interface ITableIndexDescription {

            /** TableIndexDescription name */
            name?: (string|null);

            /** TableIndexDescription indexColumns */
            indexColumns?: (string[]|null);

            /** TableIndexDescription globalIndex */
            globalIndex?: (Ydb.Table.IGlobalIndex|null);

            /** TableIndexDescription globalAsyncIndex */
            globalAsyncIndex?: (Ydb.Table.IGlobalAsyncIndex|null);

            /** TableIndexDescription globalUniqueIndex */
            globalUniqueIndex?: (Ydb.Table.IGlobalUniqueIndex|null);

            /** TableIndexDescription status */
            status?: (Ydb.Table.TableIndexDescription.Status|null);

            /** TableIndexDescription dataColumns */
            dataColumns?: (string[]|null);

            /** TableIndexDescription sizeBytes */
            sizeBytes?: (number|Long|null);
        }

        /** Represents a TableIndexDescription. */
        class TableIndexDescription implements ITableIndexDescription {

            /**
             * Constructs a new TableIndexDescription.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Table.ITableIndexDescription);

            /** TableIndexDescription name. */
            public name: string;

            /** TableIndexDescription indexColumns. */
            public indexColumns: string[];

            /** TableIndexDescription globalIndex. */
            public globalIndex?: (Ydb.Table.IGlobalIndex|null);

            /** TableIndexDescription globalAsyncIndex. */
            public globalAsyncIndex?: (Ydb.Table.IGlobalAsyncIndex|null);

            /** TableIndexDescription globalUniqueIndex. */
            public globalUniqueIndex?: (Ydb.Table.IGlobalUniqueIndex|null);

            /** TableIndexDescription status. */
            public status: Ydb.Table.TableIndexDescription.Status;

            /** TableIndexDescription dataColumns. */
            public dataColumns: string[];

            /** TableIndexDescription sizeBytes. */
            public sizeBytes: (number|Long);

            /** TableIndexDescription type. */
            public type?: ("globalIndex"|"globalAsyncIndex"|"globalUniqueIndex");

            /**
             * Creates a new TableIndexDescription instance using the specified properties.
             * @param [properties] Properties to set
             * @returns TableIndexDescription instance
             */
            public static create(properties?: Ydb.Table.ITableIndexDescription): Ydb.Table.TableIndexDescription;

            /**
             * Encodes the specified TableIndexDescription message. Does not implicitly {@link Ydb.Table.TableIndexDescription.verify|verify} messages.
             * @param message TableIndexDescription message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Table.ITableIndexDescription, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified TableIndexDescription message, length delimited. Does not implicitly {@link Ydb.Table.TableIndexDescription.verify|verify} messages.
             * @param message TableIndexDescription message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Table.ITableIndexDescription, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a TableIndexDescription message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns TableIndexDescription
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Table.TableIndexDescription;

            /**
             * Decodes a TableIndexDescription message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns TableIndexDescription
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Table.TableIndexDescription;

            /**
             * Verifies a TableIndexDescription message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a TableIndexDescription message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns TableIndexDescription
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Table.TableIndexDescription;

            /**
             * Creates a plain object from a TableIndexDescription message. Also converts values to other types if specified.
             * @param message TableIndexDescription
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Table.TableIndexDescription, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this TableIndexDescription to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        namespace TableIndexDescription {

            /** Status enum. */
            enum Status {
                STATUS_UNSPECIFIED = 0,
                STATUS_READY = 1,
                STATUS_BUILDING = 2
            }
        }

        /** Properties of an IndexBuildState. */
        interface IIndexBuildState {
        }

        /** Represents an IndexBuildState. */
        class IndexBuildState implements IIndexBuildState {

            /**
             * Constructs a new IndexBuildState.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Table.IIndexBuildState);

            /**
             * Creates a new IndexBuildState instance using the specified properties.
             * @param [properties] Properties to set
             * @returns IndexBuildState instance
             */
            public static create(properties?: Ydb.Table.IIndexBuildState): Ydb.Table.IndexBuildState;

            /**
             * Encodes the specified IndexBuildState message. Does not implicitly {@link Ydb.Table.IndexBuildState.verify|verify} messages.
             * @param message IndexBuildState message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Table.IIndexBuildState, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified IndexBuildState message, length delimited. Does not implicitly {@link Ydb.Table.IndexBuildState.verify|verify} messages.
             * @param message IndexBuildState message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Table.IIndexBuildState, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes an IndexBuildState message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns IndexBuildState
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Table.IndexBuildState;

            /**
             * Decodes an IndexBuildState message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns IndexBuildState
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Table.IndexBuildState;

            /**
             * Verifies an IndexBuildState message.
             * @param message Plain 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 IndexBuildState message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns IndexBuildState
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Table.IndexBuildState;

            /**
             * Creates a plain object from an IndexBuildState message. Also converts values to other types if specified.
             * @param message IndexBuildState
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Table.IndexBuildState, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this IndexBuildState to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        namespace IndexBuildState {

            /** State enum. */
            enum State {
                STATE_UNSPECIFIED = 0,
                STATE_PREPARING = 1,
                STATE_TRANSFERING_DATA = 2,
                STATE_APPLYING = 3,
                STATE_DONE = 4,
                STATE_CANCELLATION = 5,
                STATE_CANCELLED = 6,
                STATE_REJECTION = 7,
                STATE_REJECTED = 8
            }
        }

        /** Properties of an IndexBuildDescription. */
        interface IIndexBuildDescription {

            /** IndexBuildDescription path */
            path?: (string|null);

            /** IndexBuildDescription index */
            index?: (Ydb.Table.ITableIndex|null);
        }

        /** Represents an IndexBuildDescription. */
        class IndexBuildDescription implements IIndexBuildDescription {

            /**
             * Constructs a new IndexBuildDescription.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Table.IIndexBuildDescription);

            /** IndexBuildDescription path. */
            public path: string;

            /** IndexBuildDescription index. */
            public index?: (Ydb.Table.ITableIndex|null);

            /**
             * Creates a new IndexBuildDescription instance using the specified properties.
             * @param [properties] Properties to set
             * @returns IndexBuildDescription instance
             */
            public static create(properties?: Ydb.Table.IIndexBuildDescription): Ydb.Table.IndexBuildDescription;

            /**
             * Encodes the specified IndexBuildDescription message. Does not implicitly {@link Ydb.Table.IndexBuildDescription.verify|verify} messages.
             * @param message IndexBuildDescription message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Table.IIndexBuildDescription, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified IndexBuildDescription message, length delimited. Does not implicitly {@link Ydb.Table.IndexBuildDescription.verify|verify} messages.
             * @param message IndexBuildDescription message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Table.IIndexBuildDescription, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes an IndexBuildDescription message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns IndexBuildDescription
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Table.IndexBuildDescription;

            /**
             * Decodes an IndexBuildDescription message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns IndexBuildDescription
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Table.IndexBuildDescription;

            /**
             * Verifies an IndexBuildDescription message.
             * @param message Plain 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 IndexBuildDescription message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns IndexBuildDescription
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Table.IndexBuildDescription;

            /**
             * Creates a plain object from an IndexBuildDescription message. Also converts values to other types if specified.
             * @param message IndexBuildDescription
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Table.IndexBuildDescription, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this IndexBuildDescription to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of an IndexBuildMetadata. */
        interface IIndexBuildMetadata {

            /** IndexBuildMetadata description */
            description?: (Ydb.Table.IIndexBuildDescription|null);

            /** IndexBuildMetadata state */
            state?: (Ydb.Table.IndexBuildState.State|null);

            /** IndexBuildMetadata progress */
            progress?: (number|null);
        }

        /** Represents an IndexBuildMetadata. */
        class IndexBuildMetadata implements IIndexBuildMetadata {

            /**
             * Constructs a new IndexBuildMetadata.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Table.IIndexBuildMetadata);

            /** IndexBuildMetadata description. */
            public description?: (Ydb.Table.IIndexBuildDescription|null);

            /** IndexBuildMetadata state. */
            public state: Ydb.Table.IndexBuildState.State;

            /** IndexBuildMetadata progress. */
            public progress: number;

            /**
             * Creates a new IndexBuildMetadata instance using the specified properties.
             * @param [properties] Properties to set
             * @returns IndexBuildMetadata instance
             */
            public static create(properties?: Ydb.Table.IIndexBuildMetadata): Ydb.Table.IndexBuildMetadata;

            /**
             * Encodes the specified IndexBuildMetadata message. Does not implicitly {@link Ydb.Table.IndexBuildMetadata.verify|verify} messages.
             * @param message IndexBuildMetadata message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Table.IIndexBuildMetadata, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified IndexBuildMetadata message, length delimited. Does not implicitly {@link Ydb.Table.IndexBuildMetadata.verify|verify} messages.
             * @param message IndexBuildMetadata message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Table.IIndexBuildMetadata, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes an IndexBuildMetadata message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns IndexBuildMetadata
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Table.IndexBuildMetadata;

            /**
             * Decodes an IndexBuildMetadata message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns IndexBuildMetadata
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Table.IndexBuildMetadata;

            /**
             * Verifies an IndexBuildMetadata message.
             * @param message Plain 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 IndexBuildMetadata message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns IndexBuildMetadata
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Table.IndexBuildMetadata;

            /**
             * Creates a plain object from an IndexBuildMetadata message. Also converts values to other types if specified.
             * @param message IndexBuildMetadata
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Table.IndexBuildMetadata, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this IndexBuildMetadata to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a ChangefeedMode. */
        interface IChangefeedMode {
        }

        /** Represents a ChangefeedMode. */
        class ChangefeedMode implements IChangefeedMode {

            /**
             * Constructs a new ChangefeedMode.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Table.IChangefeedMode);

            /**
             * Creates a new ChangefeedMode instance using the specified properties.
             * @param [properties] Properties to set
             * @returns ChangefeedMode instance
             */
            public static create(properties?: Ydb.Table.IChangefeedMode): Ydb.Table.ChangefeedMode;

            /**
             * Encodes the specified ChangefeedMode message. Does not implicitly {@link Ydb.Table.ChangefeedMode.verify|verify} messages.
             * @param message ChangefeedMode message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Table.IChangefeedMode, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified ChangefeedMode message, length delimited. Does not implicitly {@link Ydb.Table.ChangefeedMode.verify|verify} messages.
             * @param message ChangefeedMode message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Table.IChangefeedMode, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a ChangefeedMode message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns ChangefeedMode
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Table.ChangefeedMode;

            /**
             * Decodes a ChangefeedMode message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns ChangefeedMode
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Table.ChangefeedMode;

            /**
             * Verifies a ChangefeedMode message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a ChangefeedMode message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns ChangefeedMode
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Table.ChangefeedMode;

            /**
             * Creates a plain object from a ChangefeedMode message. Also converts values to other types if specified.
             * @param message ChangefeedMode
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Table.ChangefeedMode, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this ChangefeedMode to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        namespace ChangefeedMode {

            /** Mode enum. */
            enum Mode {
                MODE_UNSPECIFIED = 0,
                MODE_KEYS_ONLY = 1,
                MODE_UPDATES = 2,
                MODE_NEW_IMAGE = 3,
                MODE_OLD_IMAGE = 4,
                MODE_NEW_AND_OLD_IMAGES = 5
            }
        }

        /** Properties of a ChangefeedFormat. */
        interface IChangefeedFormat {
        }

        /** Represents a ChangefeedFormat. */
        class ChangefeedFormat implements IChangefeedFormat {

            /**
             * Constructs a new ChangefeedFormat.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Table.IChangefeedFormat);

            /**
             * Creates a new ChangefeedFormat instance using the specified properties.
             * @param [properties] Properties to set
             * @returns ChangefeedFormat instance
             */
            public static create(properties?: Ydb.Table.IChangefeedFormat): Ydb.Table.ChangefeedFormat;

            /**
             * Encodes the specified ChangefeedFormat message. Does not implicitly {@link Ydb.Table.ChangefeedFormat.verify|verify} messages.
             * @param message ChangefeedFormat message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Table.IChangefeedFormat, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified ChangefeedFormat message, length delimited. Does not implicitly {@link Ydb.Table.ChangefeedFormat.verify|verify} messages.
             * @param message ChangefeedFormat message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Table.IChangefeedFormat, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a ChangefeedFormat message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns ChangefeedFormat
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Table.ChangefeedFormat;

            /**
             * Decodes a ChangefeedFormat message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns ChangefeedFormat
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Table.ChangefeedFormat;

            /**
             * Verifies a ChangefeedFormat message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a ChangefeedFormat message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns ChangefeedFormat
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Table.ChangefeedFormat;

            /**
             * Creates a plain object from a ChangefeedFormat message. Also converts values to other types if specified.
             * @param message ChangefeedFormat
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Table.ChangefeedFormat, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this ChangefeedFormat to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        namespace ChangefeedFormat {

            /** Format enum. */
            enum Format {
                FORMAT_UNSPECIFIED = 0,
                FORMAT_JSON = 1,
                FORMAT_DYNAMODB_STREAMS_JSON = 2,
                FORMAT_DEBEZIUM_JSON = 3
            }
        }

        /** Properties of a Changefeed. */
        interface IChangefeed {

            /** Changefeed name */
            name?: (string|null);

            /** Changefeed mode */
            mode?: (Ydb.Table.ChangefeedMode.Mode|null);

            /** Changefeed format */
            format?: (Ydb.Table.ChangefeedFormat.Format|null);

            /** Changefeed retentionPeriod */
            retentionPeriod?: (google.protobuf.IDuration|null);

            /** Changefeed virtualTimestamps */
            virtualTimestamps?: (boolean|null);

            /** Changefeed initialScan */
            initialScan?: (boolean|null);

            /** Changefeed attributes */
            attributes?: ({ [k: string]: string }|null);

            /** Changefeed awsRegion */
            awsRegion?: (string|null);

            /** Changefeed resolvedTimestampsInterval */
            resolvedTimestampsInterval?: (google.protobuf.IDuration|null);

            /** Changefeed topicPartitioningSettings */
            topicPartitioningSettings?: (Ydb.Topic.IPartitioningSettings|null);
        }

        /** Represents a Changefeed. */
        class Changefeed implements IChangefeed {

            /**
             * Constructs a new Changefeed.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Table.IChangefeed);

            /** Changefeed name. */
            public name: string;

            /** Changefeed mode. */
            public mode: Ydb.Table.ChangefeedMode.Mode;

            /** Changefeed format. */
            public format: Ydb.Table.ChangefeedFormat.Format;

            /** Changefeed retentionPeriod. */
            public retentionPeriod?: (google.protobuf.IDuration|null);

            /** Changefeed virtualTimestamps. */
            public virtualTimestamps: boolean;

            /** Changefeed initialScan. */
            public initialScan: boolean;

            /** Changefeed attributes. */
            public attributes: { [k: string]: string };

            /** Changefeed awsRegion. */
            public awsRegion: string;

            /** Changefeed resolvedTimestampsInterval. */
            public resolvedTimestampsInterval?: (google.protobuf.IDuration|null);

            /** Changefeed topicPartitioningSettings. */
            public topicPartitioningSettings?: (Ydb.Topic.IPartitioningSettings|null);

            /**
             * Creates a new Changefeed instance using the specified properties.
             * @param [properties] Properties to set
             * @returns Changefeed instance
             */
            public static create(properties?: Ydb.Table.IChangefeed): Ydb.Table.Changefeed;

            /**
             * Encodes the specified Changefeed message. Does not implicitly {@link Ydb.Table.Changefeed.verify|verify} messages.
             * @param message Changefeed message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Table.IChangefeed, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified Changefeed message, length delimited. Does not implicitly {@link Ydb.Table.Changefeed.verify|verify} messages.
             * @param message Changefeed message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Table.IChangefeed, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a Changefeed message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns Changefeed
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Table.Changefeed;

            /**
             * Decodes a Changefeed message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns Changefeed
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Table.Changefeed;

            /**
             * Verifies a Changefeed message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a Changefeed message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns Changefeed
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Table.Changefeed;

            /**
             * Creates a plain object from a Changefeed message. Also converts values to other types if specified.
             * @param message Changefeed
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Table.Changefeed, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this Changefeed to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a ChangefeedDescription. */
        interface IChangefeedDescription {

            /** ChangefeedDescription name */
            name?: (string|null);

            /** ChangefeedDescription mode */
            mode?: (Ydb.Table.ChangefeedMode.Mode|null);

            /** ChangefeedDescription format */
            format?: (Ydb.Table.ChangefeedFormat.Format|null);

            /** ChangefeedDescription state */
            state?: (Ydb.Table.ChangefeedDescription.State|null);

            /** ChangefeedDescription virtualTimestamps */
            virtualTimestamps?: (boolean|null);

            /** ChangefeedDescription attributes */
            attributes?: ({ [k: string]: string }|null);

            /** ChangefeedDescription awsRegion */
            awsRegion?: (string|null);

            /** ChangefeedDescription resolvedTimestampsInterval */
            resolvedTimestampsInterval?: (google.protobuf.IDuration|null);
        }

        /** Represents a ChangefeedDescription. */
        class ChangefeedDescription implements IChangefeedDescription {

            /**
             * Constructs a new ChangefeedDescription.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Table.IChangefeedDescription);

            /** ChangefeedDescription name. */
            public name: string;

            /** ChangefeedDescription mode. */
            public mode: Ydb.Table.ChangefeedMode.Mode;

            /** ChangefeedDescription format. */
            public format: Ydb.Table.ChangefeedFormat.Format;

            /** ChangefeedDescription state. */
            public state: Ydb.Table.ChangefeedDescription.State;

            /** ChangefeedDescription virtualTimestamps. */
            public virtualTimestamps: boolean;

            /** ChangefeedDescription attributes. */
            public attributes: { [k: string]: string };

            /** ChangefeedDescription awsRegion. */
            public awsRegion: string;

            /** ChangefeedDescription resolvedTimestampsInterval. */
            public resolvedTimestampsInterval?: (google.protobuf.IDuration|null);

            /**
             * Creates a new ChangefeedDescription instance using the specified properties.
             * @param [properties] Properties to set
             * @returns ChangefeedDescription instance
             */
            public static create(properties?: Ydb.Table.IChangefeedDescription): Ydb.Table.ChangefeedDescription;

            /**
             * Encodes the specified ChangefeedDescription message. Does not implicitly {@link Ydb.Table.ChangefeedDescription.verify|verify} messages.
             * @param message ChangefeedDescription message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Table.IChangefeedDescription, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified ChangefeedDescription message, length delimited. Does not implicitly {@link Ydb.Table.ChangefeedDescription.verify|verify} messages.
             * @param message ChangefeedDescription message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Table.IChangefeedDescription, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a ChangefeedDescription message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns ChangefeedDescription
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Table.ChangefeedDescription;

            /**
             * Decodes a ChangefeedDescription message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns ChangefeedDescription
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Table.ChangefeedDescription;

            /**
             * Verifies a ChangefeedDescription message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a ChangefeedDescription message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns ChangefeedDescription
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Table.ChangefeedDescription;

            /**
             * Creates a plain object from a ChangefeedDescription message. Also converts values to other types if specified.
             * @param message ChangefeedDescription
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Table.ChangefeedDescription, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this ChangefeedDescription to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        namespace ChangefeedDescription {

            /** State enum. */
            enum State {
                STATE_UNSPECIFIED = 0,
                STATE_ENABLED = 1,
                STATE_DISABLED = 2,
                STATE_INITIAL_SCAN = 3
            }
        }

        /** Properties of a StoragePool. */
        interface IStoragePool {

            /** StoragePool media */
            media?: (string|null);
        }

        /** Represents a StoragePool. */
        class StoragePool implements IStoragePool {

            /**
             * Constructs a new StoragePool.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Table.IStoragePool);

            /** StoragePool media. */
            public media: string;

            /**
             * Creates a new StoragePool instance using the specified properties.
             * @param [properties] Properties to set
             * @returns StoragePool instance
             */
            public static create(properties?: Ydb.Table.IStoragePool): Ydb.Table.StoragePool;

            /**
             * Encodes the specified StoragePool message. Does not implicitly {@link Ydb.Table.StoragePool.verify|verify} messages.
             * @param message StoragePool message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Table.IStoragePool, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified StoragePool message, length delimited. Does not implicitly {@link Ydb.Table.StoragePool.verify|verify} messages.
             * @param message StoragePool message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Table.IStoragePool, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a StoragePool message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns StoragePool
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Table.StoragePool;

            /**
             * Decodes a StoragePool message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns StoragePool
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Table.StoragePool;

            /**
             * Verifies a StoragePool message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a StoragePool message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns StoragePool
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Table.StoragePool;

            /**
             * Creates a plain object from a StoragePool message. Also converts values to other types if specified.
             * @param message StoragePool
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Table.StoragePool, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this StoragePool to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a StoragePolicy. */
        interface IStoragePolicy {

            /** StoragePolicy presetName */
            presetName?: (string|null);

            /** StoragePolicy syslog */
            syslog?: (Ydb.Table.IStoragePool|null);

            /** StoragePolicy log */
            log?: (Ydb.Table.IStoragePool|null);

            /** StoragePolicy data */
            data?: (Ydb.Table.IStoragePool|null);

            /** StoragePolicy external */
            external?: (Ydb.Table.IStoragePool|null);

            /** StoragePolicy keepInMemory */
            keepInMemory?: (Ydb.FeatureFlag.Status|null);

            /** StoragePolicy columnFamilies */
            columnFamilies?: (Ydb.Table.IColumnFamilyPolicy[]|null);
        }

        /** Represents a StoragePolicy. */
        class StoragePolicy implements IStoragePolicy {

            /**
             * Constructs a new StoragePolicy.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Table.IStoragePolicy);

            /** StoragePolicy presetName. */
            public presetName: string;

            /** StoragePolicy syslog. */
            public syslog?: (Ydb.Table.IStoragePool|null);

            /** StoragePolicy log. */
            public log?: (Ydb.Table.IStoragePool|null);

            /** StoragePolicy data. */
            public data?: (Ydb.Table.IStoragePool|null);

            /** StoragePolicy external. */
            public external?: (Ydb.Table.IStoragePool|null);

            /** StoragePolicy keepInMemory. */
            public keepInMemory: Ydb.FeatureFlag.Status;

            /** StoragePolicy columnFamilies. */
            public columnFamilies: Ydb.Table.IColumnFamilyPolicy[];

            /**
             * Creates a new StoragePolicy instance using the specified properties.
             * @param [properties] Properties to set
             * @returns StoragePolicy instance
             */
            public static create(properties?: Ydb.Table.IStoragePolicy): Ydb.Table.StoragePolicy;

            /**
             * Encodes the specified StoragePolicy message. Does not implicitly {@link Ydb.Table.StoragePolicy.verify|verify} messages.
             * @param message StoragePolicy message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Table.IStoragePolicy, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified StoragePolicy message, length delimited. Does not implicitly {@link Ydb.Table.StoragePolicy.verify|verify} messages.
             * @param message StoragePolicy message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Table.IStoragePolicy, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a StoragePolicy message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns StoragePolicy
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Table.StoragePolicy;

            /**
             * Decodes a StoragePolicy message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns StoragePolicy
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Table.StoragePolicy;

            /**
             * Verifies a StoragePolicy message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a StoragePolicy message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns StoragePolicy
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Table.StoragePolicy;

            /**
             * Creates a plain object from a StoragePolicy message. Also converts values to other types if specified.
             * @param message StoragePolicy
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Table.StoragePolicy, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this StoragePolicy to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a ColumnFamilyPolicy. */
        interface IColumnFamilyPolicy {

            /** ColumnFamilyPolicy name */
            name?: (string|null);

            /** ColumnFamilyPolicy data */
            data?: (Ydb.Table.IStoragePool|null);

            /** ColumnFamilyPolicy external */
            external?: (Ydb.Table.IStoragePool|null);

            /** ColumnFamilyPolicy keepInMemory */
            keepInMemory?: (Ydb.FeatureFlag.Status|null);

            /** ColumnFamilyPolicy compression */
            compression?: (Ydb.Table.ColumnFamilyPolicy.Compression|null);
        }

        /** Represents a ColumnFamilyPolicy. */
        class ColumnFamilyPolicy implements IColumnFamilyPolicy {

            /**
             * Constructs a new ColumnFamilyPolicy.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Table.IColumnFamilyPolicy);

            /** ColumnFamilyPolicy name. */
            public name: string;

            /** ColumnFamilyPolicy data. */
            public data?: (Ydb.Table.IStoragePool|null);

            /** ColumnFamilyPolicy external. */
            public external?: (Ydb.Table.IStoragePool|null);

            /** ColumnFamilyPolicy keepInMemory. */
            public keepInMemory: Ydb.FeatureFlag.Status;

            /** ColumnFamilyPolicy compression. */
            public compression: Ydb.Table.ColumnFamilyPolicy.Compression;

            /**
             * Creates a new ColumnFamilyPolicy instance using the specified properties.
             * @param [properties] Properties to set
             * @returns ColumnFamilyPolicy instance
             */
            public static create(properties?: Ydb.Table.IColumnFamilyPolicy): Ydb.Table.ColumnFamilyPolicy;

            /**
             * Encodes the specified ColumnFamilyPolicy message. Does not implicitly {@link Ydb.Table.ColumnFamilyPolicy.verify|verify} messages.
             * @param message ColumnFamilyPolicy message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Table.IColumnFamilyPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified ColumnFamilyPolicy message, length delimited. Does not implicitly {@link Ydb.Table.ColumnFamilyPolicy.verify|verify} messages.
             * @param message ColumnFamilyPolicy message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Table.IColumnFamilyPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a ColumnFamilyPolicy message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns ColumnFamilyPolicy
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Table.ColumnFamilyPolicy;

            /**
             * Decodes a ColumnFamilyPolicy message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns ColumnFamilyPolicy
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Table.ColumnFamilyPolicy;

            /**
             * Verifies a ColumnFamilyPolicy message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a ColumnFamilyPolicy message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns ColumnFamilyPolicy
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Table.ColumnFamilyPolicy;

            /**
             * Creates a plain object from a ColumnFamilyPolicy message. Also converts values to other types if specified.
             * @param message ColumnFamilyPolicy
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Table.ColumnFamilyPolicy, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this ColumnFamilyPolicy to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        namespace ColumnFamilyPolicy {

            /** Compression enum. */
            enum Compression {
                COMPRESSION_UNSPECIFIED = 0,
                UNCOMPRESSED = 1,
                COMPRESSED = 2
            }
        }

        /** Properties of a CompactionPolicy. */
        interface ICompactionPolicy {

            /** CompactionPolicy presetName */
            presetName?: (string|null);
        }

        /** Represents a CompactionPolicy. */
        class CompactionPolicy implements ICompactionPolicy {

            /**
             * Constructs a new CompactionPolicy.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Table.ICompactionPolicy);

            /** CompactionPolicy presetName. */
            public presetName: string;

            /**
             * Creates a new CompactionPolicy instance using the specified properties.
             * @param [properties] Properties to set
             * @returns CompactionPolicy instance
             */
            public static create(properties?: Ydb.Table.ICompactionPolicy): Ydb.Table.CompactionPolicy;

            /**
             * Encodes the specified CompactionPolicy message. Does not implicitly {@link Ydb.Table.CompactionPolicy.verify|verify} messages.
             * @param message CompactionPolicy message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Table.ICompactionPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified CompactionPolicy message, length delimited. Does not implicitly {@link Ydb.Table.CompactionPolicy.verify|verify} messages.
             * @param message CompactionPolicy message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Table.ICompactionPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a CompactionPolicy message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns CompactionPolicy
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Table.CompactionPolicy;

            /**
             * Decodes a CompactionPolicy message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns CompactionPolicy
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Table.CompactionPolicy;

            /**
             * Verifies a CompactionPolicy message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a CompactionPolicy message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns CompactionPolicy
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Table.CompactionPolicy;

            /**
             * Creates a plain object from a CompactionPolicy message. Also converts values to other types if specified.
             * @param message CompactionPolicy
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Table.CompactionPolicy, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this CompactionPolicy to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of an ExplicitPartitions. */
        interface IExplicitPartitions {

            /** ExplicitPartitions splitPoints */
            splitPoints?: (Ydb.ITypedValue[]|null);
        }

        /** Represents an ExplicitPartitions. */
        class ExplicitPartitions implements IExplicitPartitions {

            /**
             * Constructs a new ExplicitPartitions.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Table.IExplicitPartitions);

            /** ExplicitPartitions splitPoints. */
            public splitPoints: Ydb.ITypedValue[];

            /**
             * Creates a new ExplicitPartitions instance using the specified properties.
             * @param [properties] Properties to set
             * @returns ExplicitPartitions instance
             */
            public static create(properties?: Ydb.Table.IExplicitPartitions): Ydb.Table.ExplicitPartitions;

            /**
             * Encodes the specified ExplicitPartitions message. Does not implicitly {@link Ydb.Table.ExplicitPartitions.verify|verify} messages.
             * @param message ExplicitPartitions message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Table.IExplicitPartitions, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified ExplicitPartitions message, length delimited. Does not implicitly {@link Ydb.Table.ExplicitPartitions.verify|verify} messages.
             * @param message ExplicitPartitions message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Table.IExplicitPartitions, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes an ExplicitPartitions message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns ExplicitPartitions
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Table.ExplicitPartitions;

            /**
             * Decodes an ExplicitPartitions message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns ExplicitPartitions
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Table.ExplicitPartitions;

            /**
             * Verifies an ExplicitPartitions message.
             * @param message Plain 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 ExplicitPartitions message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns ExplicitPartitions
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Table.ExplicitPartitions;

            /**
             * Creates a plain object from an ExplicitPartitions message. Also converts values to other types if specified.
             * @param message ExplicitPartitions
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Table.ExplicitPartitions, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this ExplicitPartitions to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a PartitionStats. */
        interface IPartitionStats {

            /** PartitionStats rowsEstimate */
            rowsEstimate?: (number|Long|null);

            /** PartitionStats storeSize */
            storeSize?: (number|Long|null);
        }

        /** Represents a PartitionStats. */
        class PartitionStats implements IPartitionStats {

            /**
             * Constructs a new PartitionStats.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Table.IPartitionStats);

            /** PartitionStats rowsEstimate. */
            public rowsEstimate: (number|Long);

            /** PartitionStats storeSize. */
            public storeSize: (number|Long);

            /**
             * Creates a new PartitionStats instance using the specified properties.
             * @param [properties] Properties to set
             * @returns PartitionStats instance
             */
            public static create(properties?: Ydb.Table.IPartitionStats): Ydb.Table.PartitionStats;

            /**
             * Encodes the specified PartitionStats message. Does not implicitly {@link Ydb.Table.PartitionStats.verify|verify} messages.
             * @param message PartitionStats message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Table.IPartitionStats, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified PartitionStats message, length delimited. Does not implicitly {@link Ydb.Table.PartitionStats.verify|verify} messages.
             * @param message PartitionStats message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Table.IPartitionStats, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a PartitionStats message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns PartitionStats
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Table.PartitionStats;

            /**
             * Decodes a PartitionStats message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns PartitionStats
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Table.PartitionStats;

            /**
             * Verifies a PartitionStats message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a PartitionStats message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns PartitionStats
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Table.PartitionStats;

            /**
             * Creates a plain object from a PartitionStats message. Also converts values to other types if specified.
             * @param message PartitionStats
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Table.PartitionStats, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this PartitionStats to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a TableStats. */
        interface ITableStats {

            /** TableStats partitionStats */
            partitionStats?: (Ydb.Table.IPartitionStats[]|null);

            /** TableStats rowsEstimate */
            rowsEstimate?: (number|Long|null);

            /** TableStats storeSize */
            storeSize?: (number|Long|null);

            /** TableStats partitions */
            partitions?: (number|Long|null);

            /** TableStats creationTime */
            creationTime?: (google.protobuf.ITimestamp|null);

            /** TableStats modificationTime */
            modificationTime?: (google.protobuf.ITimestamp|null);
        }

        /** Represents a TableStats. */
        class TableStats implements ITableStats {

            /**
             * Constructs a new TableStats.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Table.ITableStats);

            /** TableStats partitionStats. */
            public partitionStats: Ydb.Table.IPartitionStats[];

            /** TableStats rowsEstimate. */
            public rowsEstimate: (number|Long);

            /** TableStats storeSize. */
            public storeSize: (number|Long);

            /** TableStats partitions. */
            public partitions: (number|Long);

            /** TableStats creationTime. */
            public creationTime?: (google.protobuf.ITimestamp|null);

            /** TableStats modificationTime. */
            public modificationTime?: (google.protobuf.ITimestamp|null);

            /**
             * Creates a new TableStats instance using the specified properties.
             * @param [properties] Properties to set
             * @returns TableStats instance
             */
            public static create(properties?: Ydb.Table.ITableStats): Ydb.Table.TableStats;

            /**
             * Encodes the specified TableStats message. Does not implicitly {@link Ydb.Table.TableStats.verify|verify} messages.
             * @param message TableStats message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Table.ITableStats, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified TableStats message, length delimited. Does not implicitly {@link Ydb.Table.TableStats.verify|verify} messages.
             * @param message TableStats message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Table.ITableStats, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a TableStats message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns TableStats
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Table.TableStats;

            /**
             * Decodes a TableStats message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns TableStats
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Table.TableStats;

            /**
             * Verifies a TableStats message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a TableStats message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns TableStats
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Table.TableStats;

            /**
             * Creates a plain object from a TableStats message. Also converts values to other types if specified.
             * @param message TableStats
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Table.TableStats, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this TableStats to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a PartitioningPolicy. */
        interface IPartitioningPolicy {

            /** PartitioningPolicy presetName */
            presetName?: (string|null);

            /** PartitioningPolicy autoPartitioning */
            autoPartitioning?: (Ydb.Table.PartitioningPolicy.AutoPartitioningPolicy|null);

            /** PartitioningPolicy uniformPartitions */
            uniformPartitions?: (number|Long|null);

            /** PartitioningPolicy explicitPartitions */
            explicitPartitions?: (Ydb.Table.IExplicitPartitions|null);
        }

        /** Represents a PartitioningPolicy. */
        class PartitioningPolicy implements IPartitioningPolicy {

            /**
             * Constructs a new PartitioningPolicy.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Table.IPartitioningPolicy);

            /** PartitioningPolicy presetName. */
            public presetName: string;

            /** PartitioningPolicy autoPartitioning. */
            public autoPartitioning: Ydb.Table.PartitioningPolicy.AutoPartitioningPolicy;

            /** PartitioningPolicy uniformPartitions. */
            public uniformPartitions?: (number|Long|null);

            /** PartitioningPolicy explicitPartitions. */
            public explicitPartitions?: (Ydb.Table.IExplicitPartitions|null);

            /** PartitioningPolicy partitions. */
            public partitions?: ("uniformPartitions"|"explicitPartitions");

            /**
             * Creates a new PartitioningPolicy instance using the specified properties.
             * @param [properties] Properties to set
             * @returns PartitioningPolicy instance
             */
            public static create(properties?: Ydb.Table.IPartitioningPolicy): Ydb.Table.PartitioningPolicy;

            /**
             * Encodes the specified PartitioningPolicy message. Does not implicitly {@link Ydb.Table.PartitioningPolicy.verify|verify} messages.
             * @param message PartitioningPolicy message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Table.IPartitioningPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified PartitioningPolicy message, length delimited. Does not implicitly {@link Ydb.Table.PartitioningPolicy.verify|verify} messages.
             * @param message PartitioningPolicy message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Table.IPartitioningPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a PartitioningPolicy message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns PartitioningPolicy
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Table.PartitioningPolicy;

            /**
             * Decodes a PartitioningPolicy message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns PartitioningPolicy
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Table.PartitioningPolicy;

            /**
             * Verifies a PartitioningPolicy message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a PartitioningPolicy message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns PartitioningPolicy
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Table.PartitioningPolicy;

            /**
             * Creates a plain object from a PartitioningPolicy message. Also converts values to other types if specified.
             * @param message PartitioningPolicy
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Table.PartitioningPolicy, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this PartitioningPolicy to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        namespace PartitioningPolicy {

            /** AutoPartitioningPolicy enum. */
            enum AutoPartitioningPolicy {
                AUTO_PARTITIONING_POLICY_UNSPECIFIED = 0,
                DISABLED = 1,
                AUTO_SPLIT = 2,
                AUTO_SPLIT_MERGE = 3
            }
        }

        /** Properties of an ExecutionPolicy. */
        interface IExecutionPolicy {

            /** ExecutionPolicy presetName */
            presetName?: (string|null);
        }

        /** Represents an ExecutionPolicy. */
        class ExecutionPolicy implements IExecutionPolicy {

            /**
             * Constructs a new ExecutionPolicy.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Table.IExecutionPolicy);

            /** ExecutionPolicy presetName. */
            public presetName: string;

            /**
             * Creates a new ExecutionPolicy instance using the specified properties.
             * @param [properties] Properties to set
             * @returns ExecutionPolicy instance
             */
            public static create(properties?: Ydb.Table.IExecutionPolicy): Ydb.Table.ExecutionPolicy;

            /**
             * Encodes the specified ExecutionPolicy message. Does not implicitly {@link Ydb.Table.ExecutionPolicy.verify|verify} messages.
             * @param message ExecutionPolicy message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Table.IExecutionPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified ExecutionPolicy message, length delimited. Does not implicitly {@link Ydb.Table.ExecutionPolicy.verify|verify} messages.
             * @param message ExecutionPolicy message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Table.IExecutionPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes an ExecutionPolicy message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns ExecutionPolicy
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Table.ExecutionPolicy;

            /**
             * Decodes an ExecutionPolicy message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns ExecutionPolicy
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Table.ExecutionPolicy;

            /**
             * Verifies an ExecutionPolicy message.
             * @param message Plain 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 ExecutionPolicy message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns ExecutionPolicy
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Table.ExecutionPolicy;

            /**
             * Creates a plain object from an ExecutionPolicy message. Also converts values to other types if specified.
             * @param message ExecutionPolicy
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Table.ExecutionPolicy, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this ExecutionPolicy to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a ReplicationPolicy. */
        interface IReplicationPolicy {

            /** ReplicationPolicy presetName */
            presetName?: (string|null);

            /** ReplicationPolicy replicasCount */
            replicasCount?: (number|null);

            /** ReplicationPolicy createPerAvailabilityZone */
            createPerAvailabilityZone?: (Ydb.FeatureFlag.Status|null);

            /** ReplicationPolicy allowPromotion */
            allowPromotion?: (Ydb.FeatureFlag.Status|null);
        }

        /** Represents a ReplicationPolicy. */
        class ReplicationPolicy implements IReplicationPolicy {

            /**
             * Constructs a new ReplicationPolicy.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Table.IReplicationPolicy);

            /** ReplicationPolicy presetName. */
            public presetName: string;

            /** ReplicationPolicy replicasCount. */
            public replicasCount: number;

            /** ReplicationPolicy createPerAvailabilityZone. */
            public createPerAvailabilityZone: Ydb.FeatureFlag.Status;

            /** ReplicationPolicy allowPromotion. */
            public allowPromotion: Ydb.FeatureFlag.Status;

            /**
             * Creates a new ReplicationPolicy instance using the specified properties.
             * @param [properties] Properties to set
             * @returns ReplicationPolicy instance
             */
            public static create(properties?: Ydb.Table.IReplicationPolicy): Ydb.Table.ReplicationPolicy;

            /**
             * Encodes the specified ReplicationPolicy message. Does not implicitly {@link Ydb.Table.ReplicationPolicy.verify|verify} messages.
             * @param message ReplicationPolicy message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Table.IReplicationPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified ReplicationPolicy message, length delimited. Does not implicitly {@link Ydb.Table.ReplicationPolicy.verify|verify} messages.
             * @param message ReplicationPolicy message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Table.IReplicationPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a ReplicationPolicy message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns ReplicationPolicy
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Table.ReplicationPolicy;

            /**
             * Decodes a ReplicationPolicy message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns ReplicationPolicy
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Table.ReplicationPolicy;

            /**
             * Verifies a ReplicationPolicy message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a ReplicationPolicy message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns ReplicationPolicy
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Table.ReplicationPolicy;

            /**
             * Creates a plain object from a ReplicationPolicy message. Also converts values to other types if specified.
             * @param message ReplicationPolicy
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Table.ReplicationPolicy, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this ReplicationPolicy to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a CachingPolicy. */
        interface ICachingPolicy {

            /** CachingPolicy presetName */
            presetName?: (string|null);
        }

        /** Represents a CachingPolicy. */
        class CachingPolicy implements ICachingPolicy {

            /**
             * Constructs a new CachingPolicy.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Table.ICachingPolicy);

            /** CachingPolicy presetName. */
            public presetName: string;

            /**
             * Creates a new CachingPolicy instance using the specified properties.
             * @param [properties] Properties to set
             * @returns CachingPolicy instance
             */
            public static create(properties?: Ydb.Table.ICachingPolicy): Ydb.Table.CachingPolicy;

            /**
             * Encodes the specified CachingPolicy message. Does not implicitly {@link Ydb.Table.CachingPolicy.verify|verify} messages.
             * @param message CachingPolicy message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Table.ICachingPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified CachingPolicy message, length delimited. Does not implicitly {@link Ydb.Table.CachingPolicy.verify|verify} messages.
             * @param message CachingPolicy message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Table.ICachingPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a CachingPolicy message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns CachingPolicy
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Table.CachingPolicy;

            /**
             * Decodes a CachingPolicy message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns CachingPolicy
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Table.CachingPolicy;

            /**
             * Verifies a CachingPolicy message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a CachingPolicy message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns CachingPolicy
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Table.CachingPolicy;

            /**
             * Creates a plain object from a CachingPolicy message. Also converts values to other types if specified.
             * @param message CachingPolicy
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Table.CachingPolicy, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this CachingPolicy to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a TableProfile. */
        interface ITableProfile {

            /** TableProfile presetName */
            presetName?: (string|null);

            /** TableProfile storagePolicy */
            storagePolicy?: (Ydb.Table.IStoragePolicy|null);

            /** TableProfile compactionPolicy */
            compactionPolicy?: (Ydb.Table.ICompactionPolicy|null);

            /** TableProfile partitioningPolicy */
            partitioningPolicy?: (Ydb.Table.IPartitioningPolicy|null);

            /** TableProfile executionPolicy */
            executionPolicy?: (Ydb.Table.IExecutionPolicy|null);

            /** TableProfile replicationPolicy */
            replicationPolicy?: (Ydb.Table.IReplicationPolicy|null);

            /** TableProfile cachingPolicy */
            cachingPolicy?: (Ydb.Table.ICachingPolicy|null);
        }

        /** Represents a TableProfile. */
        class TableProfile implements ITableProfile {

            /**
             * Constructs a new TableProfile.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Table.ITableProfile);

            /** TableProfile presetName. */
            public presetName: string;

            /** TableProfile storagePolicy. */
            public storagePolicy?: (Ydb.Table.IStoragePolicy|null);

            /** TableProfile compactionPolicy. */
            public compactionPolicy?: (Ydb.Table.ICompactionPolicy|null);

            /** TableProfile partitioningPolicy. */
            public partitioningPolicy?: (Ydb.Table.IPartitioningPolicy|null);

            /** TableProfile executionPolicy. */
            public executionPolicy?: (Ydb.Table.IExecutionPolicy|null);

            /** TableProfile replicationPolicy. */
            public replicationPolicy?: (Ydb.Table.IReplicationPolicy|null);

            /** TableProfile cachingPolicy. */
            public cachingPolicy?: (Ydb.Table.ICachingPolicy|null);

            /**
             * Creates a new TableProfile instance using the specified properties.
             * @param [properties] Properties to set
             * @returns TableProfile instance
             */
            public static create(properties?: Ydb.Table.ITableProfile): Ydb.Table.TableProfile;

            /**
             * Encodes the specified TableProfile message. Does not implicitly {@link Ydb.Table.TableProfile.verify|verify} messages.
             * @param message TableProfile message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Table.ITableProfile, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified TableProfile message, length delimited. Does not implicitly {@link Ydb.Table.TableProfile.verify|verify} messages.
             * @param message TableProfile message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Table.ITableProfile, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a TableProfile message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns TableProfile
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Table.TableProfile;

            /**
             * Decodes a TableProfile message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns TableProfile
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Table.TableProfile;

            /**
             * Verifies a TableProfile message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a TableProfile message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns TableProfile
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Table.TableProfile;

            /**
             * Creates a plain object from a TableProfile message. Also converts values to other types if specified.
             * @param message TableProfile
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Table.TableProfile, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this TableProfile to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a SequenceDescription. */
        interface ISequenceDescription {

            /** SequenceDescription name */
            name?: (string|null);

            /** SequenceDescription minValue */
            minValue?: (number|Long|null);

            /** SequenceDescription maxValue */
            maxValue?: (number|Long|null);

            /** SequenceDescription startValue */
            startValue?: (number|Long|null);

            /** SequenceDescription cache */
            cache?: (number|Long|null);

            /** SequenceDescription increment */
            increment?: (number|Long|null);

            /** SequenceDescription cycle */
            cycle?: (boolean|null);

            /** SequenceDescription setVal */
            setVal?: (Ydb.Table.SequenceDescription.ISetVal|null);
        }

        /** Represents a SequenceDescription. */
        class SequenceDescription implements ISequenceDescription {

            /**
             * Constructs a new SequenceDescription.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Table.ISequenceDescription);

            /** SequenceDescription name. */
            public name?: (string|null);

            /** SequenceDescription minValue. */
            public minValue?: (number|Long|null);

            /** SequenceDescription maxValue. */
            public maxValue?: (number|Long|null);

            /** SequenceDescription startValue. */
            public startValue?: (number|Long|null);

            /** SequenceDescription cache. */
            public cache?: (number|Long|null);

            /** SequenceDescription increment. */
            public increment?: (number|Long|null);

            /** SequenceDescription cycle. */
            public cycle?: (boolean|null);

            /** SequenceDescription setVal. */
            public setVal?: (Ydb.Table.SequenceDescription.ISetVal|null);

            /** SequenceDescription _name. */
            public _name?: "name";

            /** SequenceDescription _minValue. */
            public _minValue?: "minValue";

            /** SequenceDescription _maxValue. */
            public _maxValue?: "maxValue";

            /** SequenceDescription _startValue. */
            public _startValue?: "startValue";

            /** SequenceDescription _cache. */
            public _cache?: "cache";

            /** SequenceDescription _increment. */
            public _increment?: "increment";

            /** SequenceDescription _cycle. */
            public _cycle?: "cycle";

            /** SequenceDescription _setVal. */
            public _setVal?: "setVal";

            /**
             * Creates a new SequenceDescription instance using the specified properties.
             * @param [properties] Properties to set
             * @returns SequenceDescription instance
             */
            public static create(properties?: Ydb.Table.ISequenceDescription): Ydb.Table.SequenceDescription;

            /**
             * Encodes the specified SequenceDescription message. Does not implicitly {@link Ydb.Table.SequenceDescription.verify|verify} messages.
             * @param message SequenceDescription message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Table.ISequenceDescription, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified SequenceDescription message, length delimited. Does not implicitly {@link Ydb.Table.SequenceDescription.verify|verify} messages.
             * @param message SequenceDescription message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Table.ISequenceDescription, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a SequenceDescription message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns SequenceDescription
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Table.SequenceDescription;

            /**
             * Decodes a SequenceDescription message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns SequenceDescription
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Table.SequenceDescription;

            /**
             * Verifies a SequenceDescription message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a SequenceDescription message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns SequenceDescription
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Table.SequenceDescription;

            /**
             * Creates a plain object from a SequenceDescription message. Also converts values to other types if specified.
             * @param message SequenceDescription
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Table.SequenceDescription, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this SequenceDescription to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        namespace SequenceDescription {

            /** Properties of a SetVal. */
            interface ISetVal {

                /** SetVal nextValue */
                nextValue?: (number|Long|null);

                /** SetVal nextUsed */
                nextUsed?: (boolean|null);
            }

            /** Represents a SetVal. */
            class SetVal implements ISetVal {

                /**
                 * Constructs a new SetVal.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: Ydb.Table.SequenceDescription.ISetVal);

                /** SetVal nextValue. */
                public nextValue?: (number|Long|null);

                /** SetVal nextUsed. */
                public nextUsed?: (boolean|null);

                /** SetVal _nextValue. */
                public _nextValue?: "nextValue";

                /** SetVal _nextUsed. */
                public _nextUsed?: "nextUsed";

                /**
                 * Creates a new SetVal instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns SetVal instance
                 */
                public static create(properties?: Ydb.Table.SequenceDescription.ISetVal): Ydb.Table.SequenceDescription.SetVal;

                /**
                 * Encodes the specified SetVal message. Does not implicitly {@link Ydb.Table.SequenceDescription.SetVal.verify|verify} messages.
                 * @param message SetVal message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: Ydb.Table.SequenceDescription.ISetVal, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified SetVal message, length delimited. Does not implicitly {@link Ydb.Table.SequenceDescription.SetVal.verify|verify} messages.
                 * @param message SetVal message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: Ydb.Table.SequenceDescription.ISetVal, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a SetVal message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns SetVal
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Table.SequenceDescription.SetVal;

                /**
                 * Decodes a SetVal message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns SetVal
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Table.SequenceDescription.SetVal;

                /**
                 * Verifies a SetVal message.
                 * @param message Plain object to verify
                 * @returns `null` if valid, otherwise the reason why it is not
                 */
                public static verify(message: { [k: string]: any }): (string|null);

                /**
                 * Creates a SetVal message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns SetVal
                 */
                public static fromObject(object: { [k: string]: any }): Ydb.Table.SequenceDescription.SetVal;

                /**
                 * Creates a plain object from a SetVal message. Also converts values to other types if specified.
                 * @param message SetVal
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: Ydb.Table.SequenceDescription.SetVal, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this SetVal to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };
            }
        }

        /** Properties of a ColumnMeta. */
        interface IColumnMeta {

            /** ColumnMeta name */
            name?: (string|null);

            /** ColumnMeta type */
            type?: (Ydb.IType|null);

            /** ColumnMeta family */
            family?: (string|null);

            /** ColumnMeta notNull */
            notNull?: (boolean|null);

            /** ColumnMeta fromLiteral */
            fromLiteral?: (Ydb.ITypedValue|null);

            /** ColumnMeta fromSequence */
            fromSequence?: (Ydb.Table.ISequenceDescription|null);
        }

        /** Represents a ColumnMeta. */
        class ColumnMeta implements IColumnMeta {

            /**
             * Constructs a new ColumnMeta.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Table.IColumnMeta);

            /** ColumnMeta name. */
            public name: string;

            /** ColumnMeta type. */
            public type?: (Ydb.IType|null);

            /** ColumnMeta family. */
            public family: string;

            /** ColumnMeta notNull. */
            public notNull?: (boolean|null);

            /** ColumnMeta fromLiteral. */
            public fromLiteral?: (Ydb.ITypedValue|null);

            /** ColumnMeta fromSequence. */
            public fromSequence?: (Ydb.Table.ISequenceDescription|null);

            /** ColumnMeta _notNull. */
            public _notNull?: "notNull";

            /** ColumnMeta defaultValue. */
            public defaultValue?: ("fromLiteral"|"fromSequence");

            /**
             * Creates a new ColumnMeta instance using the specified properties.
             * @param [properties] Properties to set
             * @returns ColumnMeta instance
             */
            public static create(properties?: Ydb.Table.IColumnMeta): Ydb.Table.ColumnMeta;

            /**
             * Encodes the specified ColumnMeta message. Does not implicitly {@link Ydb.Table.ColumnMeta.verify|verify} messages.
             * @param message ColumnMeta message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Table.IColumnMeta, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified ColumnMeta message, length delimited. Does not implicitly {@link Ydb.Table.ColumnMeta.verify|verify} messages.
             * @param message ColumnMeta message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Table.IColumnMeta, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a ColumnMeta message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns ColumnMeta
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Table.ColumnMeta;

            /**
             * Decodes a ColumnMeta message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns ColumnMeta
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Table.ColumnMeta;

            /**
             * Verifies a ColumnMeta message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a ColumnMeta message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns ColumnMeta
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Table.ColumnMeta;

            /**
             * Creates a plain object from a ColumnMeta message. Also converts values to other types if specified.
             * @param message ColumnMeta
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Table.ColumnMeta, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this ColumnMeta to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a DateTypeColumnModeSettings. */
        interface IDateTypeColumnModeSettings {

            /** DateTypeColumnModeSettings columnName */
            columnName?: (string|null);

            /** DateTypeColumnModeSettings expireAfterSeconds */
            expireAfterSeconds?: (number|null);
        }

        /** Represents a DateTypeColumnModeSettings. */
        class DateTypeColumnModeSettings implements IDateTypeColumnModeSettings {

            /**
             * Constructs a new DateTypeColumnModeSettings.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Table.IDateTypeColumnModeSettings);

            /** DateTypeColumnModeSettings columnName. */
            public columnName: string;

            /** DateTypeColumnModeSettings expireAfterSeconds. */
            public expireAfterSeconds: number;

            /**
             * Creates a new DateTypeColumnModeSettings instance using the specified properties.
             * @param [properties] Properties to set
             * @returns DateTypeColumnModeSettings instance
             */
            public static create(properties?: Ydb.Table.IDateTypeColumnModeSettings): Ydb.Table.DateTypeColumnModeSettings;

            /**
             * Encodes the specified DateTypeColumnModeSettings message. Does not implicitly {@link Ydb.Table.DateTypeColumnModeSettings.verify|verify} messages.
             * @param message DateTypeColumnModeSettings message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Table.IDateTypeColumnModeSettings, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified DateTypeColumnModeSettings message, length delimited. Does not implicitly {@link Ydb.Table.DateTypeColumnModeSettings.verify|verify} messages.
             * @param message DateTypeColumnModeSettings message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Table.IDateTypeColumnModeSettings, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a DateTypeColumnModeSettings message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns DateTypeColumnModeSettings
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Table.DateTypeColumnModeSettings;

            /**
             * Decodes a DateTypeColumnModeSettings message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns DateTypeColumnModeSettings
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Table.DateTypeColumnModeSettings;

            /**
             * Verifies a DateTypeColumnModeSettings message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a DateTypeColumnModeSettings message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns DateTypeColumnModeSettings
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Table.DateTypeColumnModeSettings;

            /**
             * Creates a plain object from a DateTypeColumnModeSettings message. Also converts values to other types if specified.
             * @param message DateTypeColumnModeSettings
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Table.DateTypeColumnModeSettings, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this DateTypeColumnModeSettings to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a ValueSinceUnixEpochModeSettings. */
        interface IValueSinceUnixEpochModeSettings {

            /** ValueSinceUnixEpochModeSettings columnName */
            columnName?: (string|null);

            /** ValueSinceUnixEpochModeSettings columnUnit */
            columnUnit?: (Ydb.Table.ValueSinceUnixEpochModeSettings.Unit|null);

            /** ValueSinceUnixEpochModeSettings expireAfterSeconds */
            expireAfterSeconds?: (number|null);
        }

        /** Represents a ValueSinceUnixEpochModeSettings. */
        class ValueSinceUnixEpochModeSettings implements IValueSinceUnixEpochModeSettings {

            /**
             * Constructs a new ValueSinceUnixEpochModeSettings.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Table.IValueSinceUnixEpochModeSettings);

            /** ValueSinceUnixEpochModeSettings columnName. */
            public columnName: string;

            /** ValueSinceUnixEpochModeSettings columnUnit. */
            public columnUnit: Ydb.Table.ValueSinceUnixEpochModeSettings.Unit;

            /** ValueSinceUnixEpochModeSettings expireAfterSeconds. */
            public expireAfterSeconds: number;

            /**
             * Creates a new ValueSinceUnixEpochModeSettings instance using the specified properties.
             * @param [properties] Properties to set
             * @returns ValueSinceUnixEpochModeSettings instance
             */
            public static create(properties?: Ydb.Table.IValueSinceUnixEpochModeSettings): Ydb.Table.ValueSinceUnixEpochModeSettings;

            /**
             * Encodes the specified ValueSinceUnixEpochModeSettings message. Does not implicitly {@link Ydb.Table.ValueSinceUnixEpochModeSettings.verify|verify} messages.
             * @param message ValueSinceUnixEpochModeSettings message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Table.IValueSinceUnixEpochModeSettings, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified ValueSinceUnixEpochModeSettings message, length delimited. Does not implicitly {@link Ydb.Table.ValueSinceUnixEpochModeSettings.verify|verify} messages.
             * @param message ValueSinceUnixEpochModeSettings message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Table.IValueSinceUnixEpochModeSettings, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a ValueSinceUnixEpochModeSettings message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns ValueSinceUnixEpochModeSettings
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Table.ValueSinceUnixEpochModeSettings;

            /**
             * Decodes a ValueSinceUnixEpochModeSettings message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns ValueSinceUnixEpochModeSettings
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Table.ValueSinceUnixEpochModeSettings;

            /**
             * Verifies a ValueSinceUnixEpochModeSettings message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a ValueSinceUnixEpochModeSettings message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns ValueSinceUnixEpochModeSettings
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Table.ValueSinceUnixEpochModeSettings;

            /**
             * Creates a plain object from a ValueSinceUnixEpochModeSettings message. Also converts values to other types if specified.
             * @param message ValueSinceUnixEpochModeSettings
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Table.ValueSinceUnixEpochModeSettings, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this ValueSinceUnixEpochModeSettings to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        namespace ValueSinceUnixEpochModeSettings {

            /** Unit enum. */
            enum Unit {
                UNIT_UNSPECIFIED = 0,
                UNIT_SECONDS = 1,
                UNIT_MILLISECONDS = 2,
                UNIT_MICROSECONDS = 3,
                UNIT_NANOSECONDS = 4
            }
        }

        /** Properties of a TtlSettings. */
        interface ITtlSettings {

            /** TtlSettings dateTypeColumn */
            dateTypeColumn?: (Ydb.Table.IDateTypeColumnModeSettings|null);

            /** TtlSettings valueSinceUnixEpoch */
            valueSinceUnixEpoch?: (Ydb.Table.IValueSinceUnixEpochModeSettings|null);

            /** TtlSettings runIntervalSeconds */
            runIntervalSeconds?: (number|null);
        }

        /** Represents a TtlSettings. */
        class TtlSettings implements ITtlSettings {

            /**
             * Constructs a new TtlSettings.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Table.ITtlSettings);

            /** TtlSettings dateTypeColumn. */
            public dateTypeColumn?: (Ydb.Table.IDateTypeColumnModeSettings|null);

            /** TtlSettings valueSinceUnixEpoch. */
            public valueSinceUnixEpoch?: (Ydb.Table.IValueSinceUnixEpochModeSettings|null);

            /** TtlSettings runIntervalSeconds. */
            public runIntervalSeconds: number;

            /** TtlSettings mode. */
            public mode?: ("dateTypeColumn"|"valueSinceUnixEpoch");

            /**
             * Creates a new TtlSettings instance using the specified properties.
             * @param [properties] Properties to set
             * @returns TtlSettings instance
             */
            public static create(properties?: Ydb.Table.ITtlSettings): Ydb.Table.TtlSettings;

            /**
             * Encodes the specified TtlSettings message. Does not implicitly {@link Ydb.Table.TtlSettings.verify|verify} messages.
             * @param message TtlSettings message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Table.ITtlSettings, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified TtlSettings message, length delimited. Does not implicitly {@link Ydb.Table.TtlSettings.verify|verify} messages.
             * @param message TtlSettings message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Table.ITtlSettings, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a TtlSettings message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns TtlSettings
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Table.TtlSettings;

            /**
             * Decodes a TtlSettings message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns TtlSettings
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Table.TtlSettings;

            /**
             * Verifies a TtlSettings message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a TtlSettings message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns TtlSettings
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Table.TtlSettings;

            /**
             * Creates a plain object from a TtlSettings message. Also converts values to other types if specified.
             * @param message TtlSettings
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Table.TtlSettings, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this TtlSettings to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a StorageSettings. */
        interface IStorageSettings {

            /** StorageSettings tabletCommitLog0 */
            tabletCommitLog0?: (Ydb.Table.IStoragePool|null);

            /** StorageSettings tabletCommitLog1 */
            tabletCommitLog1?: (Ydb.Table.IStoragePool|null);

            /** StorageSettings external */
            external?: (Ydb.Table.IStoragePool|null);

            /** StorageSettings storeExternalBlobs */
            storeExternalBlobs?: (Ydb.FeatureFlag.Status|null);
        }

        /** Represents a StorageSettings. */
        class StorageSettings implements IStorageSettings {

            /**
             * Constructs a new StorageSettings.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Table.IStorageSettings);

            /** StorageSettings tabletCommitLog0. */
            public tabletCommitLog0?: (Ydb.Table.IStoragePool|null);

            /** StorageSettings tabletCommitLog1. */
            public tabletCommitLog1?: (Ydb.Table.IStoragePool|null);

            /** StorageSettings external. */
            public external?: (Ydb.Table.IStoragePool|null);

            /** StorageSettings storeExternalBlobs. */
            public storeExternalBlobs: Ydb.FeatureFlag.Status;

            /**
             * Creates a new StorageSettings instance using the specified properties.
             * @param [properties] Properties to set
             * @returns StorageSettings instance
             */
            public static create(properties?: Ydb.Table.IStorageSettings): Ydb.Table.StorageSettings;

            /**
             * Encodes the specified StorageSettings message. Does not implicitly {@link Ydb.Table.StorageSettings.verify|verify} messages.
             * @param message StorageSettings message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Table.IStorageSettings, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified StorageSettings message, length delimited. Does not implicitly {@link Ydb.Table.StorageSettings.verify|verify} messages.
             * @param message StorageSettings message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Table.IStorageSettings, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a StorageSettings message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns StorageSettings
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Table.StorageSettings;

            /**
             * Decodes a StorageSettings message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns StorageSettings
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Table.StorageSettings;

            /**
             * Verifies a StorageSettings message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a StorageSettings message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns StorageSettings
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Table.StorageSettings;

            /**
             * Creates a plain object from a StorageSettings message. Also converts values to other types if specified.
             * @param message StorageSettings
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Table.StorageSettings, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this StorageSettings to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a ColumnFamily. */
        interface IColumnFamily {

            /** ColumnFamily name */
            name?: (string|null);

            /** ColumnFamily data */
            data?: (Ydb.Table.IStoragePool|null);

            /** ColumnFamily compression */
            compression?: (Ydb.Table.ColumnFamily.Compression|null);

            /** ColumnFamily keepInMemory */
            keepInMemory?: (Ydb.FeatureFlag.Status|null);
        }

        /** Represents a ColumnFamily. */
        class ColumnFamily implements IColumnFamily {

            /**
             * Constructs a new ColumnFamily.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Table.IColumnFamily);

            /** ColumnFamily name. */
            public name: string;

            /** ColumnFamily data. */
            public data?: (Ydb.Table.IStoragePool|null);

            /** ColumnFamily compression. */
            public compression: Ydb.Table.ColumnFamily.Compression;

            /** ColumnFamily keepInMemory. */
            public keepInMemory: Ydb.FeatureFlag.Status;

            /**
             * Creates a new ColumnFamily instance using the specified properties.
             * @param [properties] Properties to set
             * @returns ColumnFamily instance
             */
            public static create(properties?: Ydb.Table.IColumnFamily): Ydb.Table.ColumnFamily;

            /**
             * Encodes the specified ColumnFamily message. Does not implicitly {@link Ydb.Table.ColumnFamily.verify|verify} messages.
             * @param message ColumnFamily message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Table.IColumnFamily, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified ColumnFamily message, length delimited. Does not implicitly {@link Ydb.Table.ColumnFamily.verify|verify} messages.
             * @param message ColumnFamily message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Table.IColumnFamily, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a ColumnFamily message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns ColumnFamily
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Table.ColumnFamily;

            /**
             * Decodes a ColumnFamily message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns ColumnFamily
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Table.ColumnFamily;

            /**
             * Verifies a ColumnFamily message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a ColumnFamily message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns ColumnFamily
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Table.ColumnFamily;

            /**
             * Creates a plain object from a ColumnFamily message. Also converts values to other types if specified.
             * @param message ColumnFamily
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Table.ColumnFamily, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this ColumnFamily to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        namespace ColumnFamily {

            /** Compression enum. */
            enum Compression {
                COMPRESSION_UNSPECIFIED = 0,
                COMPRESSION_NONE = 1,
                COMPRESSION_LZ4 = 2
            }
        }

        /** Properties of a PartitioningSettings. */
        interface IPartitioningSettings {

            /** PartitioningSettings partitionBy */
            partitionBy?: (string[]|null);

            /** PartitioningSettings partitioningBySize */
            partitioningBySize?: (Ydb.FeatureFlag.Status|null);

            /** PartitioningSettings partitionSizeMb */
            partitionSizeMb?: (number|Long|null);

            /** PartitioningSettings partitioningByLoad */
            partitioningByLoad?: (Ydb.FeatureFlag.Status|null);

            /** PartitioningSettings minPartitionsCount */
            minPartitionsCount?: (number|Long|null);

            /** PartitioningSettings maxPartitionsCount */
            maxPartitionsCount?: (number|Long|null);
        }

        /** Represents a PartitioningSettings. */
        class PartitioningSettings implements IPartitioningSettings {

            /**
             * Constructs a new PartitioningSettings.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Table.IPartitioningSettings);

            /** PartitioningSettings partitionBy. */
            public partitionBy: string[];

            /** PartitioningSettings partitioningBySize. */
            public partitioningBySize: Ydb.FeatureFlag.Status;

            /** PartitioningSettings partitionSizeMb. */
            public partitionSizeMb: (number|Long);

            /** PartitioningSettings partitioningByLoad. */
            public partitioningByLoad: Ydb.FeatureFlag.Status;

            /** PartitioningSettings minPartitionsCount. */
            public minPartitionsCount: (number|Long);

            /** PartitioningSettings maxPartitionsCount. */
            public maxPartitionsCount: (number|Long);

            /**
             * Creates a new PartitioningSettings instance using the specified properties.
             * @param [properties] Properties to set
             * @returns PartitioningSettings instance
             */
            public static create(properties?: Ydb.Table.IPartitioningSettings): Ydb.Table.PartitioningSettings;

            /**
             * Encodes the specified PartitioningSettings message. Does not implicitly {@link Ydb.Table.PartitioningSettings.verify|verify} messages.
             * @param message PartitioningSettings message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Table.IPartitioningSettings, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified PartitioningSettings message, length delimited. Does not implicitly {@link Ydb.Table.PartitioningSettings.verify|verify} messages.
             * @param message PartitioningSettings message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Table.IPartitioningSettings, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a PartitioningSettings message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns PartitioningSettings
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Table.PartitioningSettings;

            /**
             * Decodes a PartitioningSettings message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns PartitioningSettings
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Table.PartitioningSettings;

            /**
             * Verifies a PartitioningSettings message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a PartitioningSettings message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns PartitioningSettings
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Table.PartitioningSettings;

            /**
             * Creates a plain object from a PartitioningSettings message. Also converts values to other types if specified.
             * @param message PartitioningSettings
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Table.PartitioningSettings, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this PartitioningSettings to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of an AzReadReplicasSettings. */
        interface IAzReadReplicasSettings {

            /** AzReadReplicasSettings name */
            name?: (string|null);

            /** AzReadReplicasSettings readReplicasCount */
            readReplicasCount?: (number|Long|null);
        }

        /** Represents an AzReadReplicasSettings. */
        class AzReadReplicasSettings implements IAzReadReplicasSettings {

            /**
             * Constructs a new AzReadReplicasSettings.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Table.IAzReadReplicasSettings);

            /** AzReadReplicasSettings name. */
            public name: string;

            /** AzReadReplicasSettings readReplicasCount. */
            public readReplicasCount: (number|Long);

            /**
             * Creates a new AzReadReplicasSettings instance using the specified properties.
             * @param [properties] Properties to set
             * @returns AzReadReplicasSettings instance
             */
            public static create(properties?: Ydb.Table.IAzReadReplicasSettings): Ydb.Table.AzReadReplicasSettings;

            /**
             * Encodes the specified AzReadReplicasSettings message. Does not implicitly {@link Ydb.Table.AzReadReplicasSettings.verify|verify} messages.
             * @param message AzReadReplicasSettings message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Table.IAzReadReplicasSettings, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified AzReadReplicasSettings message, length delimited. Does not implicitly {@link Ydb.Table.AzReadReplicasSettings.verify|verify} messages.
             * @param message AzReadReplicasSettings message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Table.IAzReadReplicasSettings, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes an AzReadReplicasSettings message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns AzReadReplicasSettings
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Table.AzReadReplicasSettings;

            /**
             * Decodes an AzReadReplicasSettings message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns AzReadReplicasSettings
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Table.AzReadReplicasSettings;

            /**
             * Verifies an AzReadReplicasSettings message.
             * @param message Plain 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 AzReadReplicasSettings message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns AzReadReplicasSettings
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Table.AzReadReplicasSettings;

            /**
             * Creates a plain object from an AzReadReplicasSettings message. Also converts values to other types if specified.
             * @param message AzReadReplicasSettings
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Table.AzReadReplicasSettings, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this AzReadReplicasSettings to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a ClusterReplicasSettings. */
        interface IClusterReplicasSettings {

            /** ClusterReplicasSettings azReadReplicasSettings */
            azReadReplicasSettings?: (Ydb.Table.IAzReadReplicasSettings[]|null);
        }

        /** Represents a ClusterReplicasSettings. */
        class ClusterReplicasSettings implements IClusterReplicasSettings {

            /**
             * Constructs a new ClusterReplicasSettings.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Table.IClusterReplicasSettings);

            /** ClusterReplicasSettings azReadReplicasSettings. */
            public azReadReplicasSettings: Ydb.Table.IAzReadReplicasSettings[];

            /**
             * Creates a new ClusterReplicasSettings instance using the specified properties.
             * @param [properties] Properties to set
             * @returns ClusterReplicasSettings instance
             */
            public static create(properties?: Ydb.Table.IClusterReplicasSettings): Ydb.Table.ClusterReplicasSettings;

            /**
             * Encodes the specified ClusterReplicasSettings message. Does not implicitly {@link Ydb.Table.ClusterReplicasSettings.verify|verify} messages.
             * @param message ClusterReplicasSettings message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Table.IClusterReplicasSettings, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified ClusterReplicasSettings message, length delimited. Does not implicitly {@link Ydb.Table.ClusterReplicasSettings.verify|verify} messages.
             * @param message ClusterReplicasSettings message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Table.IClusterReplicasSettings, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a ClusterReplicasSettings message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns ClusterReplicasSettings
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Table.ClusterReplicasSettings;

            /**
             * Decodes a ClusterReplicasSettings message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns ClusterReplicasSettings
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Table.ClusterReplicasSettings;

            /**
             * Verifies a ClusterReplicasSettings message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a ClusterReplicasSettings message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns ClusterReplicasSettings
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Table.ClusterReplicasSettings;

            /**
             * Creates a plain object from a ClusterReplicasSettings message. Also converts values to other types if specified.
             * @param message ClusterReplicasSettings
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Table.ClusterReplicasSettings, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this ClusterReplicasSettings to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a ReadReplicasSettings. */
        interface IReadReplicasSettings {

            /** ReadReplicasSettings perAzReadReplicasCount */
            perAzReadReplicasCount?: (number|Long|null);

            /** ReadReplicasSettings anyAzReadReplicasCount */
            anyAzReadReplicasCount?: (number|Long|null);
        }

        /** Represents a ReadReplicasSettings. */
        class ReadReplicasSettings implements IReadReplicasSettings {

            /**
             * Constructs a new ReadReplicasSettings.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Table.IReadReplicasSettings);

            /** ReadReplicasSettings perAzReadReplicasCount. */
            public perAzReadReplicasCount?: (number|Long|null);

            /** ReadReplicasSettings anyAzReadReplicasCount. */
            public anyAzReadReplicasCount?: (number|Long|null);

            /** ReadReplicasSettings settings. */
            public settings?: ("perAzReadReplicasCount"|"anyAzReadReplicasCount");

            /**
             * Creates a new ReadReplicasSettings instance using the specified properties.
             * @param [properties] Properties to set
             * @returns ReadReplicasSettings instance
             */
            public static create(properties?: Ydb.Table.IReadReplicasSettings): Ydb.Table.ReadReplicasSettings;

            /**
             * Encodes the specified ReadReplicasSettings message. Does not implicitly {@link Ydb.Table.ReadReplicasSettings.verify|verify} messages.
             * @param message ReadReplicasSettings message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Table.IReadReplicasSettings, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified ReadReplicasSettings message, length delimited. Does not implicitly {@link Ydb.Table.ReadReplicasSettings.verify|verify} messages.
             * @param message ReadReplicasSettings message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Table.IReadReplicasSettings, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a ReadReplicasSettings message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns ReadReplicasSettings
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Table.ReadReplicasSettings;

            /**
             * Decodes a ReadReplicasSettings message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns ReadReplicasSettings
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Table.ReadReplicasSettings;

            /**
             * Verifies a ReadReplicasSettings message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a ReadReplicasSettings message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns ReadReplicasSettings
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Table.ReadReplicasSettings;

            /**
             * Creates a plain object from a ReadReplicasSettings message. Also converts values to other types if specified.
             * @param message ReadReplicasSettings
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Table.ReadReplicasSettings, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this ReadReplicasSettings to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** StoreType enum. */
        enum StoreType {
            STORE_TYPE_UNSPECIFIED = 0,
            STORE_TYPE_ROW = 1,
            STORE_TYPE_COLUMN = 2
        }

        /** Properties of a CreateTableRequest. */
        interface ICreateTableRequest {

            /** CreateTableRequest sessionId */
            sessionId?: (string|null);

            /** CreateTableRequest path */
            path?: (string|null);

            /** CreateTableRequest columns */
            columns?: (Ydb.Table.IColumnMeta[]|null);

            /** CreateTableRequest primaryKey */
            primaryKey?: (string[]|null);

            /** CreateTableRequest profile */
            profile?: (Ydb.Table.ITableProfile|null);

            /** CreateTableRequest operationParams */
            operationParams?: (Ydb.Operations.IOperationParams|null);

            /** CreateTableRequest indexes */
            indexes?: (Ydb.Table.ITableIndex[]|null);

            /** CreateTableRequest ttlSettings */
            ttlSettings?: (Ydb.Table.ITtlSettings|null);

            /** CreateTableRequest storageSettings */
            storageSettings?: (Ydb.Table.IStorageSettings|null);

            /** CreateTableRequest columnFamilies */
            columnFamilies?: (Ydb.Table.IColumnFamily[]|null);

            /** CreateTableRequest attributes */
            attributes?: ({ [k: string]: string }|null);

            /** CreateTableRequest compactionPolicy */
            compactionPolicy?: (string|null);

            /** CreateTableRequest uniformPartitions */
            uniformPartitions?: (number|Long|null);

            /** CreateTableRequest partitionAtKeys */
            partitionAtKeys?: (Ydb.Table.IExplicitPartitions|null);

            /** CreateTableRequest partitioningSettings */
            partitioningSettings?: (Ydb.Table.IPartitioningSettings|null);

            /** CreateTableRequest keyBloomFilter */
            keyBloomFilter?: (Ydb.FeatureFlag.Status|null);

            /** CreateTableRequest readReplicasSettings */
            readReplicasSettings?: (Ydb.Table.IReadReplicasSettings|null);

            /** CreateTableRequest tiering */
            tiering?: (string|null);

            /** CreateTableRequest temporary */
            temporary?: (boolean|null);

            /** CreateTableRequest storeType */
            storeType?: (Ydb.Table.StoreType|null);
        }

        /** Represents a CreateTableRequest. */
        class CreateTableRequest implements ICreateTableRequest {

            /**
             * Constructs a new CreateTableRequest.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Table.ICreateTableRequest);

            /** CreateTableRequest sessionId. */
            public sessionId: string;

            /** CreateTableRequest path. */
            public path: string;

            /** CreateTableRequest columns. */
            public columns: Ydb.Table.IColumnMeta[];

            /** CreateTableRequest primaryKey. */
            public primaryKey: string[];

            /** CreateTableRequest profile. */
            public profile?: (Ydb.Table.ITableProfile|null);

            /** CreateTableRequest operationParams. */
            public operationParams?: (Ydb.Operations.IOperationParams|null);

            /** CreateTableRequest indexes. */
            public indexes: Ydb.Table.ITableIndex[];

            /** CreateTableRequest ttlSettings. */
            public ttlSettings?: (Ydb.Table.ITtlSettings|null);

            /** CreateTableRequest storageSettings. */
            public storageSettings?: (Ydb.Table.IStorageSettings|null);

            /** CreateTableRequest columnFamilies. */
            public columnFamilies: Ydb.Table.IColumnFamily[];

            /** CreateTableRequest attributes. */
            public attributes: { [k: string]: string };

            /** CreateTableRequest compactionPolicy. */
            public compactionPolicy: string;

            /** CreateTableRequest uniformPartitions. */
            public uniformPartitions?: (number|Long|null);

            /** CreateTableRequest partitionAtKeys. */
            public partitionAtKeys?: (Ydb.Table.IExplicitPartitions|null);

            /** CreateTableRequest partitioningSettings. */
            public partitioningSettings?: (Ydb.Table.IPartitioningSettings|null);

            /** CreateTableRequest keyBloomFilter. */
            public keyBloomFilter: Ydb.FeatureFlag.Status;

            /** CreateTableRequest readReplicasSettings. */
            public readReplicasSettings?: (Ydb.Table.IReadReplicasSettings|null);

            /** CreateTableRequest tiering. */
            public tiering: string;

            /** CreateTableRequest temporary. */
            public temporary: boolean;

            /** CreateTableRequest storeType. */
            public storeType: Ydb.Table.StoreType;

            /** CreateTableRequest partitions. */
            public partitions?: ("uniformPartitions"|"partitionAtKeys");

            /**
             * Creates a new CreateTableRequest instance using the specified properties.
             * @param [properties] Properties to set
             * @returns CreateTableRequest instance
             */
            public static create(properties?: Ydb.Table.ICreateTableRequest): Ydb.Table.CreateTableRequest;

            /**
             * Encodes the specified CreateTableRequest message. Does not implicitly {@link Ydb.Table.CreateTableRequest.verify|verify} messages.
             * @param message CreateTableRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Table.ICreateTableRequest, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified CreateTableRequest message, length delimited. Does not implicitly {@link Ydb.Table.CreateTableRequest.verify|verify} messages.
             * @param message CreateTableRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Table.ICreateTableRequest, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a CreateTableRequest message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns CreateTableRequest
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Table.CreateTableRequest;

            /**
             * Decodes a CreateTableRequest message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns CreateTableRequest
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Table.CreateTableRequest;

            /**
             * Verifies a CreateTableRequest message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a CreateTableRequest message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns CreateTableRequest
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Table.CreateTableRequest;

            /**
             * Creates a plain object from a CreateTableRequest message. Also converts values to other types if specified.
             * @param message CreateTableRequest
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Table.CreateTableRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this CreateTableRequest to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a CreateTableResponse. */
        interface ICreateTableResponse {

            /** CreateTableResponse operation */
            operation?: (Ydb.Operations.IOperation|null);
        }

        /** Represents a CreateTableResponse. */
        class CreateTableResponse implements ICreateTableResponse {

            /**
             * Constructs a new CreateTableResponse.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Table.ICreateTableResponse);

            /** CreateTableResponse operation. */
            public operation?: (Ydb.Operations.IOperation|null);

            /**
             * Creates a new CreateTableResponse instance using the specified properties.
             * @param [properties] Properties to set
             * @returns CreateTableResponse instance
             */
            public static create(properties?: Ydb.Table.ICreateTableResponse): Ydb.Table.CreateTableResponse;

            /**
             * Encodes the specified CreateTableResponse message. Does not implicitly {@link Ydb.Table.CreateTableResponse.verify|verify} messages.
             * @param message CreateTableResponse message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Table.ICreateTableResponse, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified CreateTableResponse message, length delimited. Does not implicitly {@link Ydb.Table.CreateTableResponse.verify|verify} messages.
             * @param message CreateTableResponse message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Table.ICreateTableResponse, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a CreateTableResponse message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns CreateTableResponse
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Table.CreateTableResponse;

            /**
             * Decodes a CreateTableResponse message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns CreateTableResponse
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Table.CreateTableResponse;

            /**
             * Verifies a CreateTableResponse message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a CreateTableResponse message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns CreateTableResponse
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Table.CreateTableResponse;

            /**
             * Creates a plain object from a CreateTableResponse message. Also converts values to other types if specified.
             * @param message CreateTableResponse
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Table.CreateTableResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this CreateTableResponse to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a DropTableRequest. */
        interface IDropTableRequest {

            /** DropTableRequest sessionId */
            sessionId?: (string|null);

            /** DropTableRequest path */
            path?: (string|null);

            /** DropTableRequest operationParams */
            operationParams?: (Ydb.Operations.IOperationParams|null);
        }

        /** Represents a DropTableRequest. */
        class DropTableRequest implements IDropTableRequest {

            /**
             * Constructs a new DropTableRequest.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Table.IDropTableRequest);

            /** DropTableRequest sessionId. */
            public sessionId: string;

            /** DropTableRequest path. */
            public path: string;

            /** DropTableRequest operationParams. */
            public operationParams?: (Ydb.Operations.IOperationParams|null);

            /**
             * Creates a new DropTableRequest instance using the specified properties.
             * @param [properties] Properties to set
             * @returns DropTableRequest instance
             */
            public static create(properties?: Ydb.Table.IDropTableRequest): Ydb.Table.DropTableRequest;

            /**
             * Encodes the specified DropTableRequest message. Does not implicitly {@link Ydb.Table.DropTableRequest.verify|verify} messages.
             * @param message DropTableRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Table.IDropTableRequest, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified DropTableRequest message, length delimited. Does not implicitly {@link Ydb.Table.DropTableRequest.verify|verify} messages.
             * @param message DropTableRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Table.IDropTableRequest, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a DropTableRequest message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns DropTableRequest
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Table.DropTableRequest;

            /**
             * Decodes a DropTableRequest message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns DropTableRequest
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Table.DropTableRequest;

            /**
             * Verifies a DropTableRequest message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a DropTableRequest message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns DropTableRequest
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Table.DropTableRequest;

            /**
             * Creates a plain object from a DropTableRequest message. Also converts values to other types if specified.
             * @param message DropTableRequest
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Table.DropTableRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this DropTableRequest to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a DropTableResponse. */
        interface IDropTableResponse {

            /** DropTableResponse operation */
            operation?: (Ydb.Operations.IOperation|null);
        }

        /** Represents a DropTableResponse. */
        class DropTableResponse implements IDropTableResponse {

            /**
             * Constructs a new DropTableResponse.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Table.IDropTableResponse);

            /** DropTableResponse operation. */
            public operation?: (Ydb.Operations.IOperation|null);

            /**
             * Creates a new DropTableResponse instance using the specified properties.
             * @param [properties] Properties to set
             * @returns DropTableResponse instance
             */
            public static create(properties?: Ydb.Table.IDropTableResponse): Ydb.Table.DropTableResponse;

            /**
             * Encodes the specified DropTableResponse message. Does not implicitly {@link Ydb.Table.DropTableResponse.verify|verify} messages.
             * @param message DropTableResponse message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Table.IDropTableResponse, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified DropTableResponse message, length delimited. Does not implicitly {@link Ydb.Table.DropTableResponse.verify|verify} messages.
             * @param message DropTableResponse message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Table.IDropTableResponse, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a DropTableResponse message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns DropTableResponse
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Table.DropTableResponse;

            /**
             * Decodes a DropTableResponse message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns DropTableResponse
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Table.DropTableResponse;

            /**
             * Verifies a DropTableResponse message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a DropTableResponse message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns DropTableResponse
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Table.DropTableResponse;

            /**
             * Creates a plain object from a DropTableResponse message. Also converts values to other types if specified.
             * @param message DropTableResponse
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Table.DropTableResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this DropTableResponse to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a RenameIndexItem. */
        interface IRenameIndexItem {

            /** RenameIndexItem sourceName */
            sourceName?: (string|null);

            /** RenameIndexItem destinationName */
            destinationName?: (string|null);

            /** RenameIndexItem replaceDestination */
            replaceDestination?: (boolean|null);
        }

        /** Represents a RenameIndexItem. */
        class RenameIndexItem implements IRenameIndexItem {

            /**
             * Constructs a new RenameIndexItem.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Table.IRenameIndexItem);

            /** RenameIndexItem sourceName. */
            public sourceName: string;

            /** RenameIndexItem destinationName. */
            public destinationName: string;

            /** RenameIndexItem replaceDestination. */
            public replaceDestination: boolean;

            /**
             * Creates a new RenameIndexItem instance using the specified properties.
             * @param [properties] Properties to set
             * @returns RenameIndexItem instance
             */
            public static create(properties?: Ydb.Table.IRenameIndexItem): Ydb.Table.RenameIndexItem;

            /**
             * Encodes the specified RenameIndexItem message. Does not implicitly {@link Ydb.Table.RenameIndexItem.verify|verify} messages.
             * @param message RenameIndexItem message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Table.IRenameIndexItem, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified RenameIndexItem message, length delimited. Does not implicitly {@link Ydb.Table.RenameIndexItem.verify|verify} messages.
             * @param message RenameIndexItem message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Table.IRenameIndexItem, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a RenameIndexItem message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns RenameIndexItem
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Table.RenameIndexItem;

            /**
             * Decodes a RenameIndexItem message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns RenameIndexItem
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Table.RenameIndexItem;

            /**
             * Verifies a RenameIndexItem message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a RenameIndexItem message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns RenameIndexItem
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Table.RenameIndexItem;

            /**
             * Creates a plain object from a RenameIndexItem message. Also converts values to other types if specified.
             * @param message RenameIndexItem
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Table.RenameIndexItem, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this RenameIndexItem to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of an AlterTableRequest. */
        interface IAlterTableRequest {

            /** AlterTableRequest sessionId */
            sessionId?: (string|null);

            /** AlterTableRequest path */
            path?: (string|null);

            /** AlterTableRequest addColumns */
            addColumns?: (Ydb.Table.IColumnMeta[]|null);

            /** AlterTableRequest dropColumns */
            dropColumns?: (string[]|null);

            /** AlterTableRequest operationParams */
            operationParams?: (Ydb.Operations.IOperationParams|null);

            /** AlterTableRequest alterColumns */
            alterColumns?: (Ydb.Table.IColumnMeta[]|null);

            /** AlterTableRequest setTtlSettings */
            setTtlSettings?: (Ydb.Table.ITtlSettings|null);

            /** AlterTableRequest dropTtlSettings */
            dropTtlSettings?: (google.protobuf.IEmpty|null);

            /** AlterTableRequest addIndexes */
            addIndexes?: (Ydb.Table.ITableIndex[]|null);

            /** AlterTableRequest dropIndexes */
            dropIndexes?: (string[]|null);

            /** AlterTableRequest alterStorageSettings */
            alterStorageSettings?: (Ydb.Table.IStorageSettings|null);

            /** AlterTableRequest addColumnFamilies */
            addColumnFamilies?: (Ydb.Table.IColumnFamily[]|null);

            /** AlterTableRequest alterColumnFamilies */
            alterColumnFamilies?: (Ydb.Table.IColumnFamily[]|null);

            /** AlterTableRequest alterAttributes */
            alterAttributes?: ({ [k: string]: string }|null);

            /** AlterTableRequest setCompactionPolicy */
            setCompactionPolicy?: (string|null);

            /** AlterTableRequest alterPartitioningSettings */
            alterPartitioningSettings?: (Ydb.Table.IPartitioningSettings|null);

            /** AlterTableRequest setKeyBloomFilter */
            setKeyBloomFilter?: (Ydb.FeatureFlag.Status|null);

            /** AlterTableRequest setReadReplicasSettings */
            setReadReplicasSettings?: (Ydb.Table.IReadReplicasSettings|null);

            /** AlterTableRequest addChangefeeds */
            addChangefeeds?: (Ydb.Table.IChangefeed[]|null);

            /** AlterTableRequest dropChangefeeds */
            dropChangefeeds?: (string[]|null);

            /** AlterTableRequest renameIndexes */
            renameIndexes?: (Ydb.Table.IRenameIndexItem[]|null);

            /** AlterTableRequest setTiering */
            setTiering?: (string|null);

            /** AlterTableRequest dropTiering */
            dropTiering?: (google.protobuf.IEmpty|null);
        }

        /** Represents an AlterTableRequest. */
        class AlterTableRequest implements IAlterTableRequest {

            /**
             * Constructs a new AlterTableRequest.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Table.IAlterTableRequest);

            /** AlterTableRequest sessionId. */
            public sessionId: string;

            /** AlterTableRequest path. */
            public path: string;

            /** AlterTableRequest addColumns. */
            public addColumns: Ydb.Table.IColumnMeta[];

            /** AlterTableRequest dropColumns. */
            public dropColumns: string[];

            /** AlterTableRequest operationParams. */
            public operationParams?: (Ydb.Operations.IOperationParams|null);

            /** AlterTableRequest alterColumns. */
            public alterColumns: Ydb.Table.IColumnMeta[];

            /** AlterTableRequest setTtlSettings. */
            public setTtlSettings?: (Ydb.Table.ITtlSettings|null);

            /** AlterTableRequest dropTtlSettings. */
            public dropTtlSettings?: (google.protobuf.IEmpty|null);

            /** AlterTableRequest addIndexes. */
            public addIndexes: Ydb.Table.ITableIndex[];

            /** AlterTableRequest dropIndexes. */
            public dropIndexes: string[];

            /** AlterTableRequest alterStorageSettings. */
            public alterStorageSettings?: (Ydb.Table.IStorageSettings|null);

            /** AlterTableRequest addColumnFamilies. */
            public addColumnFamilies: Ydb.Table.IColumnFamily[];

            /** AlterTableRequest alterColumnFamilies. */
            public alterColumnFamilies: Ydb.Table.IColumnFamily[];

            /** AlterTableRequest alterAttributes. */
            public alterAttributes: { [k: string]: string };

            /** AlterTableRequest setCompactionPolicy. */
            public setCompactionPolicy: string;

            /** AlterTableRequest alterPartitioningSettings. */
            public alterPartitioningSettings?: (Ydb.Table.IPartitioningSettings|null);

            /** AlterTableRequest setKeyBloomFilter. */
            public setKeyBloomFilter: Ydb.FeatureFlag.Status;

            /** AlterTableRequest setReadReplicasSettings. */
            public setReadReplicasSettings?: (Ydb.Table.IReadReplicasSettings|null);

            /** AlterTableRequest addChangefeeds. */
            public addChangefeeds: Ydb.Table.IChangefeed[];

            /** AlterTableRequest dropChangefeeds. */
            public dropChangefeeds: string[];

            /** AlterTableRequest renameIndexes. */
            public renameIndexes: Ydb.Table.IRenameIndexItem[];

            /** AlterTableRequest setTiering. */
            public setTiering?: (string|null);

            /** AlterTableRequest dropTiering. */
            public dropTiering?: (google.protobuf.IEmpty|null);

            /** AlterTableRequest ttlAction. */
            public ttlAction?: ("setTtlSettings"|"dropTtlSettings");

            /** AlterTableRequest tieringAction. */
            public tieringAction?: ("setTiering"|"dropTiering");

            /**
             * Creates a new AlterTableRequest instance using the specified properties.
             * @param [properties] Properties to set
             * @returns AlterTableRequest instance
             */
            public static create(properties?: Ydb.Table.IAlterTableRequest): Ydb.Table.AlterTableRequest;

            /**
             * Encodes the specified AlterTableRequest message. Does not implicitly {@link Ydb.Table.AlterTableRequest.verify|verify} messages.
             * @param message AlterTableRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Table.IAlterTableRequest, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified AlterTableRequest message, length delimited. Does not implicitly {@link Ydb.Table.AlterTableRequest.verify|verify} messages.
             * @param message AlterTableRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Table.IAlterTableRequest, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes an AlterTableRequest message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns AlterTableRequest
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Table.AlterTableRequest;

            /**
             * Decodes an AlterTableRequest message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns AlterTableRequest
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Table.AlterTableRequest;

            /**
             * Verifies an AlterTableRequest message.
             * @param message Plain 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 AlterTableRequest message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns AlterTableRequest
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Table.AlterTableRequest;

            /**
             * Creates a plain object from an AlterTableRequest message. Also converts values to other types if specified.
             * @param message AlterTableRequest
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Table.AlterTableRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this AlterTableRequest to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of an AlterTableResponse. */
        interface IAlterTableResponse {

            /** AlterTableResponse operation */
            operation?: (Ydb.Operations.IOperation|null);
        }

        /** Represents an AlterTableResponse. */
        class AlterTableResponse implements IAlterTableResponse {

            /**
             * Constructs a new AlterTableResponse.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Table.IAlterTableResponse);

            /** AlterTableResponse operation. */
            public operation?: (Ydb.Operations.IOperation|null);

            /**
             * Creates a new AlterTableResponse instance using the specified properties.
             * @param [properties] Properties to set
             * @returns AlterTableResponse instance
             */
            public static create(properties?: Ydb.Table.IAlterTableResponse): Ydb.Table.AlterTableResponse;

            /**
             * Encodes the specified AlterTableResponse message. Does not implicitly {@link Ydb.Table.AlterTableResponse.verify|verify} messages.
             * @param message AlterTableResponse message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Table.IAlterTableResponse, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified AlterTableResponse message, length delimited. Does not implicitly {@link Ydb.Table.AlterTableResponse.verify|verify} messages.
             * @param message AlterTableResponse message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Table.IAlterTableResponse, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes an AlterTableResponse message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns AlterTableResponse
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Table.AlterTableResponse;

            /**
             * Decodes an AlterTableResponse message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns AlterTableResponse
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Table.AlterTableResponse;

            /**
             * Verifies an AlterTableResponse message.
             * @param message Plain 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 AlterTableResponse message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns AlterTableResponse
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Table.AlterTableResponse;

            /**
             * Creates a plain object from an AlterTableResponse message. Also converts values to other types if specified.
             * @param message AlterTableResponse
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Table.AlterTableResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this AlterTableResponse to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a CopyTableRequest. */
        interface ICopyTableRequest {

            /** CopyTableRequest sessionId */
            sessionId?: (string|null);

            /** CopyTableRequest sourcePath */
            sourcePath?: (string|null);

            /** CopyTableRequest destinationPath */
            destinationPath?: (string|null);

            /** CopyTableRequest operationParams */
            operationParams?: (Ydb.Operations.IOperationParams|null);
        }

        /** Represents a CopyTableRequest. */
        class CopyTableRequest implements ICopyTableRequest {

            /**
             * Constructs a new CopyTableRequest.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Table.ICopyTableRequest);

            /** CopyTableRequest sessionId. */
            public sessionId: string;

            /** CopyTableRequest sourcePath. */
            public sourcePath: string;

            /** CopyTableRequest destinationPath. */
            public destinationPath: string;

            /** CopyTableRequest operationParams. */
            public operationParams?: (Ydb.Operations.IOperationParams|null);

            /**
             * Creates a new CopyTableRequest instance using the specified properties.
             * @param [properties] Properties to set
             * @returns CopyTableRequest instance
             */
            public static create(properties?: Ydb.Table.ICopyTableRequest): Ydb.Table.CopyTableRequest;

            /**
             * Encodes the specified CopyTableRequest message. Does not implicitly {@link Ydb.Table.CopyTableRequest.verify|verify} messages.
             * @param message CopyTableRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Table.ICopyTableRequest, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified CopyTableRequest message, length delimited. Does not implicitly {@link Ydb.Table.CopyTableRequest.verify|verify} messages.
             * @param message CopyTableRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Table.ICopyTableRequest, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a CopyTableRequest message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns CopyTableRequest
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Table.CopyTableRequest;

            /**
             * Decodes a CopyTableRequest message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns CopyTableRequest
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Table.CopyTableRequest;

            /**
             * Verifies a CopyTableRequest message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a CopyTableRequest message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns CopyTableRequest
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Table.CopyTableRequest;

            /**
             * Creates a plain object from a CopyTableRequest message. Also converts values to other types if specified.
             * @param message CopyTableRequest
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Table.CopyTableRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this CopyTableRequest to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a CopyTableResponse. */
        interface ICopyTableResponse {

            /** CopyTableResponse operation */
            operation?: (Ydb.Operations.IOperation|null);
        }

        /** Represents a CopyTableResponse. */
        class CopyTableResponse implements ICopyTableResponse {

            /**
             * Constructs a new CopyTableResponse.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Table.ICopyTableResponse);

            /** CopyTableResponse operation. */
            public operation?: (Ydb.Operations.IOperation|null);

            /**
             * Creates a new CopyTableResponse instance using the specified properties.
             * @param [properties] Properties to set
             * @returns CopyTableResponse instance
             */
            public static create(properties?: Ydb.Table.ICopyTableResponse): Ydb.Table.CopyTableResponse;

            /**
             * Encodes the specified CopyTableResponse message. Does not implicitly {@link Ydb.Table.CopyTableResponse.verify|verify} messages.
             * @param message CopyTableResponse message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Table.ICopyTableResponse, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified CopyTableResponse message, length delimited. Does not implicitly {@link Ydb.Table.CopyTableResponse.verify|verify} messages.
             * @param message CopyTableResponse message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Table.ICopyTableResponse, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a CopyTableResponse message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns CopyTableResponse
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Table.CopyTableResponse;

            /**
             * Decodes a CopyTableResponse message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns CopyTableResponse
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Table.CopyTableResponse;

            /**
             * Verifies a CopyTableResponse message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a CopyTableResponse message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns CopyTableResponse
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Table.CopyTableResponse;

            /**
             * Creates a plain object from a CopyTableResponse message. Also converts values to other types if specified.
             * @param message CopyTableResponse
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Table.CopyTableResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this CopyTableResponse to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a CopyTableItem. */
        interface ICopyTableItem {

            /** CopyTableItem sourcePath */
            sourcePath?: (string|null);

            /** CopyTableItem destinationPath */
            destinationPath?: (string|null);

            /** CopyTableItem omitIndexes */
            omitIndexes?: (boolean|null);
        }

        /** Represents a CopyTableItem. */
        class CopyTableItem implements ICopyTableItem {

            /**
             * Constructs a new CopyTableItem.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Table.ICopyTableItem);

            /** CopyTableItem sourcePath. */
            public sourcePath: string;

            /** CopyTableItem destinationPath. */
            public destinationPath: string;

            /** CopyTableItem omitIndexes. */
            public omitIndexes: boolean;

            /**
             * Creates a new CopyTableItem instance using the specified properties.
             * @param [properties] Properties to set
             * @returns CopyTableItem instance
             */
            public static create(properties?: Ydb.Table.ICopyTableItem): Ydb.Table.CopyTableItem;

            /**
             * Encodes the specified CopyTableItem message. Does not implicitly {@link Ydb.Table.CopyTableItem.verify|verify} messages.
             * @param message CopyTableItem message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Table.ICopyTableItem, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified CopyTableItem message, length delimited. Does not implicitly {@link Ydb.Table.CopyTableItem.verify|verify} messages.
             * @param message CopyTableItem message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Table.ICopyTableItem, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a CopyTableItem message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns CopyTableItem
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Table.CopyTableItem;

            /**
             * Decodes a CopyTableItem message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns CopyTableItem
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Table.CopyTableItem;

            /**
             * Verifies a CopyTableItem message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a CopyTableItem message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns CopyTableItem
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Table.CopyTableItem;

            /**
             * Creates a plain object from a CopyTableItem message. Also converts values to other types if specified.
             * @param message CopyTableItem
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Table.CopyTableItem, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this CopyTableItem to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a CopyTablesRequest. */
        interface ICopyTablesRequest {

            /** CopyTablesRequest operationParams */
            operationParams?: (Ydb.Operations.IOperationParams|null);

            /** CopyTablesRequest sessionId */
            sessionId?: (string|null);

            /** CopyTablesRequest tables */
            tables?: (Ydb.Table.ICopyTableItem[]|null);
        }

        /** Represents a CopyTablesRequest. */
        class CopyTablesRequest implements ICopyTablesRequest {

            /**
             * Constructs a new CopyTablesRequest.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Table.ICopyTablesRequest);

            /** CopyTablesRequest operationParams. */
            public operationParams?: (Ydb.Operations.IOperationParams|null);

            /** CopyTablesRequest sessionId. */
            public sessionId: string;

            /** CopyTablesRequest tables. */
            public tables: Ydb.Table.ICopyTableItem[];

            /**
             * Creates a new CopyTablesRequest instance using the specified properties.
             * @param [properties] Properties to set
             * @returns CopyTablesRequest instance
             */
            public static create(properties?: Ydb.Table.ICopyTablesRequest): Ydb.Table.CopyTablesRequest;

            /**
             * Encodes the specified CopyTablesRequest message. Does not implicitly {@link Ydb.Table.CopyTablesRequest.verify|verify} messages.
             * @param message CopyTablesRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Table.ICopyTablesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified CopyTablesRequest message, length delimited. Does not implicitly {@link Ydb.Table.CopyTablesRequest.verify|verify} messages.
             * @param message CopyTablesRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Table.ICopyTablesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a CopyTablesRequest message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns CopyTablesRequest
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Table.CopyTablesRequest;

            /**
             * Decodes a CopyTablesRequest message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns CopyTablesRequest
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Table.CopyTablesRequest;

            /**
             * Verifies a CopyTablesRequest message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a CopyTablesRequest message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns CopyTablesRequest
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Table.CopyTablesRequest;

            /**
             * Creates a plain object from a CopyTablesRequest message. Also converts values to other types if specified.
             * @param message CopyTablesRequest
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Table.CopyTablesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this CopyTablesRequest to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a CopyTablesResponse. */
        interface ICopyTablesResponse {

            /** CopyTablesResponse operation */
            operation?: (Ydb.Operations.IOperation|null);
        }

        /** Represents a CopyTablesResponse. */
        class CopyTablesResponse implements ICopyTablesResponse {

            /**
             * Constructs a new CopyTablesResponse.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Table.ICopyTablesResponse);

            /** CopyTablesResponse operation. */
            public operation?: (Ydb.Operations.IOperation|null);

            /**
             * Creates a new CopyTablesResponse instance using the specified properties.
             * @param [properties] Properties to set
             * @returns CopyTablesResponse instance
             */
            public static create(properties?: Ydb.Table.ICopyTablesResponse): Ydb.Table.CopyTablesResponse;

            /**
             * Encodes the specified CopyTablesResponse message. Does not implicitly {@link Ydb.Table.CopyTablesResponse.verify|verify} messages.
             * @param message CopyTablesResponse message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Table.ICopyTablesResponse, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified CopyTablesResponse message, length delimited. Does not implicitly {@link Ydb.Table.CopyTablesResponse.verify|verify} messages.
             * @param message CopyTablesResponse message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Table.ICopyTablesResponse, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a CopyTablesResponse message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns CopyTablesResponse
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Table.CopyTablesResponse;

            /**
             * Decodes a CopyTablesResponse message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns CopyTablesResponse
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Table.CopyTablesResponse;

            /**
             * Verifies a CopyTablesResponse message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a CopyTablesResponse message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns CopyTablesResponse
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Table.CopyTablesResponse;

            /**
             * Creates a plain object from a CopyTablesResponse message. Also converts values to other types if specified.
             * @param message CopyTablesResponse
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Table.CopyTablesResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this CopyTablesResponse to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a RenameTableItem. */
        interface IRenameTableItem {

            /** RenameTableItem sourcePath */
            sourcePath?: (string|null);

            /** RenameTableItem destinationPath */
            destinationPath?: (string|null);

            /** RenameTableItem replaceDestination */
            replaceDestination?: (boolean|null);
        }

        /** Represents a RenameTableItem. */
        class RenameTableItem implements IRenameTableItem {

            /**
             * Constructs a new RenameTableItem.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Table.IRenameTableItem);

            /** RenameTableItem sourcePath. */
            public sourcePath: string;

            /** RenameTableItem destinationPath. */
            public destinationPath: string;

            /** RenameTableItem replaceDestination. */
            public replaceDestination: boolean;

            /**
             * Creates a new RenameTableItem instance using the specified properties.
             * @param [properties] Properties to set
             * @returns RenameTableItem instance
             */
            public static create(properties?: Ydb.Table.IRenameTableItem): Ydb.Table.RenameTableItem;

            /**
             * Encodes the specified RenameTableItem message. Does not implicitly {@link Ydb.Table.RenameTableItem.verify|verify} messages.
             * @param message RenameTableItem message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Table.IRenameTableItem, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified RenameTableItem message, length delimited. Does not implicitly {@link Ydb.Table.RenameTableItem.verify|verify} messages.
             * @param message RenameTableItem message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Table.IRenameTableItem, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a RenameTableItem message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns RenameTableItem
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Table.RenameTableItem;

            /**
             * Decodes a RenameTableItem message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns RenameTableItem
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Table.RenameTableItem;

            /**
             * Verifies a RenameTableItem message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a RenameTableItem message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns RenameTableItem
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Table.RenameTableItem;

            /**
             * Creates a plain object from a RenameTableItem message. Also converts values to other types if specified.
             * @param message RenameTableItem
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Table.RenameTableItem, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this RenameTableItem to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a RenameTablesRequest. */
        interface IRenameTablesRequest {

            /** RenameTablesRequest operationParams */
            operationParams?: (Ydb.Operations.IOperationParams|null);

            /** RenameTablesRequest sessionId */
            sessionId?: (string|null);

            /** RenameTablesRequest tables */
            tables?: (Ydb.Table.IRenameTableItem[]|null);
        }

        /** Represents a RenameTablesRequest. */
        class RenameTablesRequest implements IRenameTablesRequest {

            /**
             * Constructs a new RenameTablesRequest.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Table.IRenameTablesRequest);

            /** RenameTablesRequest operationParams. */
            public operationParams?: (Ydb.Operations.IOperationParams|null);

            /** RenameTablesRequest sessionId. */
            public sessionId: string;

            /** RenameTablesRequest tables. */
            public tables: Ydb.Table.IRenameTableItem[];

            /**
             * Creates a new RenameTablesRequest instance using the specified properties.
             * @param [properties] Properties to set
             * @returns RenameTablesRequest instance
             */
            public static create(properties?: Ydb.Table.IRenameTablesRequest): Ydb.Table.RenameTablesRequest;

            /**
             * Encodes the specified RenameTablesRequest message. Does not implicitly {@link Ydb.Table.RenameTablesRequest.verify|verify} messages.
             * @param message RenameTablesRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Table.IRenameTablesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified RenameTablesRequest message, length delimited. Does not implicitly {@link Ydb.Table.RenameTablesRequest.verify|verify} messages.
             * @param message RenameTablesRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Table.IRenameTablesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a RenameTablesRequest message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns RenameTablesRequest
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Table.RenameTablesRequest;

            /**
             * Decodes a RenameTablesRequest message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns RenameTablesRequest
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Table.RenameTablesRequest;

            /**
             * Verifies a RenameTablesRequest message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a RenameTablesRequest message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns RenameTablesRequest
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Table.RenameTablesRequest;

            /**
             * Creates a plain object from a RenameTablesRequest message. Also converts values to other types if specified.
             * @param message RenameTablesRequest
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Table.RenameTablesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this RenameTablesRequest to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a RenameTablesResponse. */
        interface IRenameTablesResponse {

            /** RenameTablesResponse operation */
            operation?: (Ydb.Operations.IOperation|null);
        }

        /** Represents a RenameTablesResponse. */
        class RenameTablesResponse implements IRenameTablesResponse {

            /**
             * Constructs a new RenameTablesResponse.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Table.IRenameTablesResponse);

            /** RenameTablesResponse operation. */
            public operation?: (Ydb.Operations.IOperation|null);

            /**
             * Creates a new RenameTablesResponse instance using the specified properties.
             * @param [properties] Properties to set
             * @returns RenameTablesResponse instance
             */
            public static create(properties?: Ydb.Table.IRenameTablesResponse): Ydb.Table.RenameTablesResponse;

            /**
             * Encodes the specified RenameTablesResponse message. Does not implicitly {@link Ydb.Table.RenameTablesResponse.verify|verify} messages.
             * @param message RenameTablesResponse message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Table.IRenameTablesResponse, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified RenameTablesResponse message, length delimited. Does not implicitly {@link Ydb.Table.RenameTablesResponse.verify|verify} messages.
             * @param message RenameTablesResponse message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Table.IRenameTablesResponse, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a RenameTablesResponse message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns RenameTablesResponse
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Table.RenameTablesResponse;

            /**
             * Decodes a RenameTablesResponse message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns RenameTablesResponse
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Table.RenameTablesResponse;

            /**
             * Verifies a RenameTablesResponse message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a RenameTablesResponse message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns RenameTablesResponse
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Table.RenameTablesResponse;

            /**
             * Creates a plain object from a RenameTablesResponse message. Also converts values to other types if specified.
             * @param message RenameTablesResponse
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Table.RenameTablesResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this RenameTablesResponse to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a DescribeTableRequest. */
        interface IDescribeTableRequest {

            /** DescribeTableRequest sessionId */
            sessionId?: (string|null);

            /** DescribeTableRequest path */
            path?: (string|null);

            /** DescribeTableRequest operationParams */
            operationParams?: (Ydb.Operations.IOperationParams|null);

            /** DescribeTableRequest includeShardKeyBounds */
            includeShardKeyBounds?: (boolean|null);

            /** DescribeTableRequest includeTableStats */
            includeTableStats?: (boolean|null);

            /** DescribeTableRequest includePartitionStats */
            includePartitionStats?: (boolean|null);
        }

        /** Represents a DescribeTableRequest. */
        class DescribeTableRequest implements IDescribeTableRequest {

            /**
             * Constructs a new DescribeTableRequest.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Table.IDescribeTableRequest);

            /** DescribeTableRequest sessionId. */
            public sessionId: string;

            /** DescribeTableRequest path. */
            public path: string;

            /** DescribeTableRequest operationParams. */
            public operationParams?: (Ydb.Operations.IOperationParams|null);

            /** DescribeTableRequest includeShardKeyBounds. */
            public includeShardKeyBounds: boolean;

            /** DescribeTableRequest includeTableStats. */
            public includeTableStats: boolean;

            /** DescribeTableRequest includePartitionStats. */
            public includePartitionStats: boolean;

            /**
             * Creates a new DescribeTableRequest instance using the specified properties.
             * @param [properties] Properties to set
             * @returns DescribeTableRequest instance
             */
            public static create(properties?: Ydb.Table.IDescribeTableRequest): Ydb.Table.DescribeTableRequest;

            /**
             * Encodes the specified DescribeTableRequest message. Does not implicitly {@link Ydb.Table.DescribeTableRequest.verify|verify} messages.
             * @param message DescribeTableRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Table.IDescribeTableRequest, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified DescribeTableRequest message, length delimited. Does not implicitly {@link Ydb.Table.DescribeTableRequest.verify|verify} messages.
             * @param message DescribeTableRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Table.IDescribeTableRequest, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a DescribeTableRequest message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns DescribeTableRequest
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Table.DescribeTableRequest;

            /**
             * Decodes a DescribeTableRequest message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns DescribeTableRequest
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Table.DescribeTableRequest;

            /**
             * Verifies a DescribeTableRequest message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a DescribeTableRequest message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns DescribeTableRequest
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Table.DescribeTableRequest;

            /**
             * Creates a plain object from a DescribeTableRequest message. Also converts values to other types if specified.
             * @param message DescribeTableRequest
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Table.DescribeTableRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this DescribeTableRequest to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a DescribeTableResponse. */
        interface IDescribeTableResponse {

            /** DescribeTableResponse operation */
            operation?: (Ydb.Operations.IOperation|null);
        }

        /** Represents a DescribeTableResponse. */
        class DescribeTableResponse implements IDescribeTableResponse {

            /**
             * Constructs a new DescribeTableResponse.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Table.IDescribeTableResponse);

            /** DescribeTableResponse operation. */
            public operation?: (Ydb.Operations.IOperation|null);

            /**
             * Creates a new DescribeTableResponse instance using the specified properties.
             * @param [properties] Properties to set
             * @returns DescribeTableResponse instance
             */
            public static create(properties?: Ydb.Table.IDescribeTableResponse): Ydb.Table.DescribeTableResponse;

            /**
             * Encodes the specified DescribeTableResponse message. Does not implicitly {@link Ydb.Table.DescribeTableResponse.verify|verify} messages.
             * @param message DescribeTableResponse message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Table.IDescribeTableResponse, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified DescribeTableResponse message, length delimited. Does not implicitly {@link Ydb.Table.DescribeTableResponse.verify|verify} messages.
             * @param message DescribeTableResponse message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Table.IDescribeTableResponse, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a DescribeTableResponse message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns DescribeTableResponse
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Table.DescribeTableResponse;

            /**
             * Decodes a DescribeTableResponse message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns DescribeTableResponse
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Table.DescribeTableResponse;

            /**
             * Verifies a DescribeTableResponse message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a DescribeTableResponse message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns DescribeTableResponse
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Table.DescribeTableResponse;

            /**
             * Creates a plain object from a DescribeTableResponse message. Also converts values to other types if specified.
             * @param message DescribeTableResponse
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Table.DescribeTableResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this DescribeTableResponse to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a DescribeTableResult. */
        interface IDescribeTableResult {

            /** DescribeTableResult self */
            self?: (Ydb.Scheme.IEntry|null);

            /** DescribeTableResult columns */
            columns?: (Ydb.Table.IColumnMeta[]|null);

            /** DescribeTableResult primaryKey */
            primaryKey?: (string[]|null);

            /** DescribeTableResult shardKeyBounds */
            shardKeyBounds?: (Ydb.ITypedValue[]|null);

            /** DescribeTableResult indexes */
            indexes?: (Ydb.Table.ITableIndexDescription[]|null);

            /** DescribeTableResult tableStats */
            tableStats?: (Ydb.Table.ITableStats|null);

            /** DescribeTableResult ttlSettings */
            ttlSettings?: (Ydb.Table.ITtlSettings|null);

            /** DescribeTableResult storageSettings */
            storageSettings?: (Ydb.Table.IStorageSettings|null);

            /** DescribeTableResult columnFamilies */
            columnFamilies?: (Ydb.Table.IColumnFamily[]|null);

            /** DescribeTableResult attributes */
            attributes?: ({ [k: string]: string }|null);

            /** DescribeTableResult partitioningSettings */
            partitioningSettings?: (Ydb.Table.IPartitioningSettings|null);

            /** DescribeTableResult keyBloomFilter */
            keyBloomFilter?: (Ydb.FeatureFlag.Status|null);

            /** DescribeTableResult readReplicasSettings */
            readReplicasSettings?: (Ydb.Table.IReadReplicasSettings|null);

            /** DescribeTableResult changefeeds */
            changefeeds?: (Ydb.Table.IChangefeedDescription[]|null);

            /** DescribeTableResult tiering */
            tiering?: (string|null);

            /** DescribeTableResult temporary */
            temporary?: (boolean|null);

            /** DescribeTableResult storeType */
            storeType?: (Ydb.Table.StoreType|null);
        }

        /** Represents a DescribeTableResult. */
        class DescribeTableResult implements IDescribeTableResult {

            /**
             * Constructs a new DescribeTableResult.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Table.IDescribeTableResult);

            /** DescribeTableResult self. */
            public self?: (Ydb.Scheme.IEntry|null);

            /** DescribeTableResult columns. */
            public columns: Ydb.Table.IColumnMeta[];

            /** DescribeTableResult primaryKey. */
            public primaryKey: string[];

            /** DescribeTableResult shardKeyBounds. */
            public shardKeyBounds: Ydb.ITypedValue[];

            /** DescribeTableResult indexes. */
            public indexes: Ydb.Table.ITableIndexDescription[];

            /** DescribeTableResult tableStats. */
            public tableStats?: (Ydb.Table.ITableStats|null);

            /** DescribeTableResult ttlSettings. */
            public ttlSettings?: (Ydb.Table.ITtlSettings|null);

            /** DescribeTableResult storageSettings. */
            public storageSettings?: (Ydb.Table.IStorageSettings|null);

            /** DescribeTableResult columnFamilies. */
            public columnFamilies: Ydb.Table.IColumnFamily[];

            /** DescribeTableResult attributes. */
            public attributes: { [k: string]: string };

            /** DescribeTableResult partitioningSettings. */
            public partitioningSettings?: (Ydb.Table.IPartitioningSettings|null);

            /** DescribeTableResult keyBloomFilter. */
            public keyBloomFilter: Ydb.FeatureFlag.Status;

            /** DescribeTableResult readReplicasSettings. */
            public readReplicasSettings?: (Ydb.Table.IReadReplicasSettings|null);

            /** DescribeTableResult changefeeds. */
            public changefeeds: Ydb.Table.IChangefeedDescription[];

            /** DescribeTableResult tiering. */
            public tiering: string;

            /** DescribeTableResult temporary. */
            public temporary: boolean;

            /** DescribeTableResult storeType. */
            public storeType: Ydb.Table.StoreType;

            /**
             * Creates a new DescribeTableResult instance using the specified properties.
             * @param [properties] Properties to set
             * @returns DescribeTableResult instance
             */
            public static create(properties?: Ydb.Table.IDescribeTableResult): Ydb.Table.DescribeTableResult;

            /**
             * Encodes the specified DescribeTableResult message. Does not implicitly {@link Ydb.Table.DescribeTableResult.verify|verify} messages.
             * @param message DescribeTableResult message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Table.IDescribeTableResult, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified DescribeTableResult message, length delimited. Does not implicitly {@link Ydb.Table.DescribeTableResult.verify|verify} messages.
             * @param message DescribeTableResult message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Table.IDescribeTableResult, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a DescribeTableResult message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns DescribeTableResult
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Table.DescribeTableResult;

            /**
             * Decodes a DescribeTableResult message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns DescribeTableResult
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Table.DescribeTableResult;

            /**
             * Verifies a DescribeTableResult message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a DescribeTableResult message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns DescribeTableResult
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Table.DescribeTableResult;

            /**
             * Creates a plain object from a DescribeTableResult message. Also converts values to other types if specified.
             * @param message DescribeTableResult
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Table.DescribeTableResult, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this DescribeTableResult to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a Query. */
        interface IQuery {

            /** Query yqlText */
            yqlText?: (string|null);

            /** Query id */
            id?: (string|null);
        }

        /** Represents a Query. */
        class Query implements IQuery {

            /**
             * Constructs a new Query.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Table.IQuery);

            /** Query yqlText. */
            public yqlText?: (string|null);

            /** Query id. */
            public id?: (string|null);

            /** Query query. */
            public query?: ("yqlText"|"id");

            /**
             * Creates a new Query instance using the specified properties.
             * @param [properties] Properties to set
             * @returns Query instance
             */
            public static create(properties?: Ydb.Table.IQuery): Ydb.Table.Query;

            /**
             * Encodes the specified Query message. Does not implicitly {@link Ydb.Table.Query.verify|verify} messages.
             * @param message Query message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Table.IQuery, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified Query message, length delimited. Does not implicitly {@link Ydb.Table.Query.verify|verify} messages.
             * @param message Query message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Table.IQuery, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a Query message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns Query
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Table.Query;

            /**
             * Decodes a Query message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns Query
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Table.Query;

            /**
             * Verifies a Query message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a Query message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns Query
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Table.Query;

            /**
             * Creates a plain object from a Query message. Also converts values to other types if specified.
             * @param message Query
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Table.Query, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this Query to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a SerializableModeSettings. */
        interface ISerializableModeSettings {
        }

        /** Represents a SerializableModeSettings. */
        class SerializableModeSettings implements ISerializableModeSettings {

            /**
             * Constructs a new SerializableModeSettings.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Table.ISerializableModeSettings);

            /**
             * Creates a new SerializableModeSettings instance using the specified properties.
             * @param [properties] Properties to set
             * @returns SerializableModeSettings instance
             */
            public static create(properties?: Ydb.Table.ISerializableModeSettings): Ydb.Table.SerializableModeSettings;

            /**
             * Encodes the specified SerializableModeSettings message. Does not implicitly {@link Ydb.Table.SerializableModeSettings.verify|verify} messages.
             * @param message SerializableModeSettings message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Table.ISerializableModeSettings, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified SerializableModeSettings message, length delimited. Does not implicitly {@link Ydb.Table.SerializableModeSettings.verify|verify} messages.
             * @param message SerializableModeSettings message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Table.ISerializableModeSettings, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a SerializableModeSettings message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns SerializableModeSettings
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Table.SerializableModeSettings;

            /**
             * Decodes a SerializableModeSettings message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns SerializableModeSettings
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Table.SerializableModeSettings;

            /**
             * Verifies a SerializableModeSettings message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a SerializableModeSettings message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns SerializableModeSettings
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Table.SerializableModeSettings;

            /**
             * Creates a plain object from a SerializableModeSettings message. Also converts values to other types if specified.
             * @param message SerializableModeSettings
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Table.SerializableModeSettings, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this SerializableModeSettings to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of an OnlineModeSettings. */
        interface IOnlineModeSettings {

            /** OnlineModeSettings allowInconsistentReads */
            allowInconsistentReads?: (boolean|null);
        }

        /** Represents an OnlineModeSettings. */
        class OnlineModeSettings implements IOnlineModeSettings {

            /**
             * Constructs a new OnlineModeSettings.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Table.IOnlineModeSettings);

            /** OnlineModeSettings allowInconsistentReads. */
            public allowInconsistentReads: boolean;

            /**
             * Creates a new OnlineModeSettings instance using the specified properties.
             * @param [properties] Properties to set
             * @returns OnlineModeSettings instance
             */
            public static create(properties?: Ydb.Table.IOnlineModeSettings): Ydb.Table.OnlineModeSettings;

            /**
             * Encodes the specified OnlineModeSettings message. Does not implicitly {@link Ydb.Table.OnlineModeSettings.verify|verify} messages.
             * @param message OnlineModeSettings message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Table.IOnlineModeSettings, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified OnlineModeSettings message, length delimited. Does not implicitly {@link Ydb.Table.OnlineModeSettings.verify|verify} messages.
             * @param message OnlineModeSettings message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Table.IOnlineModeSettings, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes an OnlineModeSettings message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns OnlineModeSettings
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Table.OnlineModeSettings;

            /**
             * Decodes an OnlineModeSettings message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns OnlineModeSettings
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Table.OnlineModeSettings;

            /**
             * Verifies an OnlineModeSettings message.
             * @param message Plain 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 OnlineModeSettings message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns OnlineModeSettings
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Table.OnlineModeSettings;

            /**
             * Creates a plain object from an OnlineModeSettings message. Also converts values to other types if specified.
             * @param message OnlineModeSettings
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Table.OnlineModeSettings, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this OnlineModeSettings to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a StaleModeSettings. */
        interface IStaleModeSettings {
        }

        /** Represents a StaleModeSettings. */
        class StaleModeSettings implements IStaleModeSettings {

            /**
             * Constructs a new StaleModeSettings.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Table.IStaleModeSettings);

            /**
             * Creates a new StaleModeSettings instance using the specified properties.
             * @param [properties] Properties to set
             * @returns StaleModeSettings instance
             */
            public static create(properties?: Ydb.Table.IStaleModeSettings): Ydb.Table.StaleModeSettings;

            /**
             * Encodes the specified StaleModeSettings message. Does not implicitly {@link Ydb.Table.StaleModeSettings.verify|verify} messages.
             * @param message StaleModeSettings message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Table.IStaleModeSettings, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified StaleModeSettings message, length delimited. Does not implicitly {@link Ydb.Table.StaleModeSettings.verify|verify} messages.
             * @param message StaleModeSettings message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Table.IStaleModeSettings, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a StaleModeSettings message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns StaleModeSettings
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Table.StaleModeSettings;

            /**
             * Decodes a StaleModeSettings message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns StaleModeSettings
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Table.StaleModeSettings;

            /**
             * Verifies a StaleModeSettings message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a StaleModeSettings message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns StaleModeSettings
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Table.StaleModeSettings;

            /**
             * Creates a plain object from a StaleModeSettings message. Also converts values to other types if specified.
             * @param message StaleModeSettings
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Table.StaleModeSettings, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this StaleModeSettings to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a SnapshotModeSettings. */
        interface ISnapshotModeSettings {
        }

        /** Represents a SnapshotModeSettings. */
        class SnapshotModeSettings implements ISnapshotModeSettings {

            /**
             * Constructs a new SnapshotModeSettings.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Table.ISnapshotModeSettings);

            /**
             * Creates a new SnapshotModeSettings instance using the specified properties.
             * @param [properties] Properties to set
             * @returns SnapshotModeSettings instance
             */
            public static create(properties?: Ydb.Table.ISnapshotModeSettings): Ydb.Table.SnapshotModeSettings;

            /**
             * Encodes the specified SnapshotModeSettings message. Does not implicitly {@link Ydb.Table.SnapshotModeSettings.verify|verify} messages.
             * @param message SnapshotModeSettings message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Table.ISnapshotModeSettings, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified SnapshotModeSettings message, length delimited. Does not implicitly {@link Ydb.Table.SnapshotModeSettings.verify|verify} messages.
             * @param message SnapshotModeSettings message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Table.ISnapshotModeSettings, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a SnapshotModeSettings message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns SnapshotModeSettings
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Table.SnapshotModeSettings;

            /**
             * Decodes a SnapshotModeSettings message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns SnapshotModeSettings
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Table.SnapshotModeSettings;

            /**
             * Verifies a SnapshotModeSettings message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a SnapshotModeSettings message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns SnapshotModeSettings
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Table.SnapshotModeSettings;

            /**
             * Creates a plain object from a SnapshotModeSettings message. Also converts values to other types if specified.
             * @param message SnapshotModeSettings
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Table.SnapshotModeSettings, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this SnapshotModeSettings to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a TransactionSettings. */
        interface ITransactionSettings {

            /** TransactionSettings serializableReadWrite */
            serializableReadWrite?: (Ydb.Table.ISerializableModeSettings|null);

            /** TransactionSettings onlineReadOnly */
            onlineReadOnly?: (Ydb.Table.IOnlineModeSettings|null);

            /** TransactionSettings staleReadOnly */
            staleReadOnly?: (Ydb.Table.IStaleModeSettings|null);

            /** TransactionSettings snapshotReadOnly */
            snapshotReadOnly?: (Ydb.Table.ISnapshotModeSettings|null);
        }

        /** Represents a TransactionSettings. */
        class TransactionSettings implements ITransactionSettings {

            /**
             * Constructs a new TransactionSettings.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Table.ITransactionSettings);

            /** TransactionSettings serializableReadWrite. */
            public serializableReadWrite?: (Ydb.Table.ISerializableModeSettings|null);

            /** TransactionSettings onlineReadOnly. */
            public onlineReadOnly?: (Ydb.Table.IOnlineModeSettings|null);

            /** TransactionSettings staleReadOnly. */
            public staleReadOnly?: (Ydb.Table.IStaleModeSettings|null);

            /** TransactionSettings snapshotReadOnly. */
            public snapshotReadOnly?: (Ydb.Table.ISnapshotModeSettings|null);

            /** TransactionSettings txMode. */
            public txMode?: ("serializableReadWrite"|"onlineReadOnly"|"staleReadOnly"|"snapshotReadOnly");

            /**
             * Creates a new TransactionSettings instance using the specified properties.
             * @param [properties] Properties to set
             * @returns TransactionSettings instance
             */
            public static create(properties?: Ydb.Table.ITransactionSettings): Ydb.Table.TransactionSettings;

            /**
             * Encodes the specified TransactionSettings message. Does not implicitly {@link Ydb.Table.TransactionSettings.verify|verify} messages.
             * @param message TransactionSettings message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Table.ITransactionSettings, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified TransactionSettings message, length delimited. Does not implicitly {@link Ydb.Table.TransactionSettings.verify|verify} messages.
             * @param message TransactionSettings message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Table.ITransactionSettings, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a TransactionSettings message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns TransactionSettings
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Table.TransactionSettings;

            /**
             * Decodes a TransactionSettings message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns TransactionSettings
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Table.TransactionSettings;

            /**
             * Verifies a TransactionSettings message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a TransactionSettings message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns TransactionSettings
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Table.TransactionSettings;

            /**
             * Creates a plain object from a TransactionSettings message. Also converts values to other types if specified.
             * @param message TransactionSettings
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Table.TransactionSettings, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this TransactionSettings to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a TransactionControl. */
        interface ITransactionControl {

            /** TransactionControl txId */
            txId?: (string|null);

            /** TransactionControl beginTx */
            beginTx?: (Ydb.Table.ITransactionSettings|null);

            /** TransactionControl commitTx */
            commitTx?: (boolean|null);
        }

        /** Represents a TransactionControl. */
        class TransactionControl implements ITransactionControl {

            /**
             * Constructs a new TransactionControl.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Table.ITransactionControl);

            /** TransactionControl txId. */
            public txId?: (string|null);

            /** TransactionControl beginTx. */
            public beginTx?: (Ydb.Table.ITransactionSettings|null);

            /** TransactionControl commitTx. */
            public commitTx: boolean;

            /** TransactionControl txSelector. */
            public txSelector?: ("txId"|"beginTx");

            /**
             * Creates a new TransactionControl instance using the specified properties.
             * @param [properties] Properties to set
             * @returns TransactionControl instance
             */
            public static create(properties?: Ydb.Table.ITransactionControl): Ydb.Table.TransactionControl;

            /**
             * Encodes the specified TransactionControl message. Does not implicitly {@link Ydb.Table.TransactionControl.verify|verify} messages.
             * @param message TransactionControl message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Table.ITransactionControl, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified TransactionControl message, length delimited. Does not implicitly {@link Ydb.Table.TransactionControl.verify|verify} messages.
             * @param message TransactionControl message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Table.ITransactionControl, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a TransactionControl message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns TransactionControl
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Table.TransactionControl;

            /**
             * Decodes a TransactionControl message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns TransactionControl
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Table.TransactionControl;

            /**
             * Verifies a TransactionControl message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a TransactionControl message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns TransactionControl
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Table.TransactionControl;

            /**
             * Creates a plain object from a TransactionControl message. Also converts values to other types if specified.
             * @param message TransactionControl
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Table.TransactionControl, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this TransactionControl to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a QueryCachePolicy. */
        interface IQueryCachePolicy {

            /** QueryCachePolicy keepInCache */
            keepInCache?: (boolean|null);
        }

        /** Represents a QueryCachePolicy. */
        class QueryCachePolicy implements IQueryCachePolicy {

            /**
             * Constructs a new QueryCachePolicy.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Table.IQueryCachePolicy);

            /** QueryCachePolicy keepInCache. */
            public keepInCache: boolean;

            /**
             * Creates a new QueryCachePolicy instance using the specified properties.
             * @param [properties] Properties to set
             * @returns QueryCachePolicy instance
             */
            public static create(properties?: Ydb.Table.IQueryCachePolicy): Ydb.Table.QueryCachePolicy;

            /**
             * Encodes the specified QueryCachePolicy message. Does not implicitly {@link Ydb.Table.QueryCachePolicy.verify|verify} messages.
             * @param message QueryCachePolicy message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Table.IQueryCachePolicy, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified QueryCachePolicy message, length delimited. Does not implicitly {@link Ydb.Table.QueryCachePolicy.verify|verify} messages.
             * @param message QueryCachePolicy message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Table.IQueryCachePolicy, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a QueryCachePolicy message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns QueryCachePolicy
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Table.QueryCachePolicy;

            /**
             * Decodes a QueryCachePolicy message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns QueryCachePolicy
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Table.QueryCachePolicy;

            /**
             * Verifies a QueryCachePolicy message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a QueryCachePolicy message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns QueryCachePolicy
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Table.QueryCachePolicy;

            /**
             * Creates a plain object from a QueryCachePolicy message. Also converts values to other types if specified.
             * @param message QueryCachePolicy
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Table.QueryCachePolicy, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this QueryCachePolicy to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a QueryStatsCollection. */
        interface IQueryStatsCollection {
        }

        /** Represents a QueryStatsCollection. */
        class QueryStatsCollection implements IQueryStatsCollection {

            /**
             * Constructs a new QueryStatsCollection.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Table.IQueryStatsCollection);

            /**
             * Creates a new QueryStatsCollection instance using the specified properties.
             * @param [properties] Properties to set
             * @returns QueryStatsCollection instance
             */
            public static create(properties?: Ydb.Table.IQueryStatsCollection): Ydb.Table.QueryStatsCollection;

            /**
             * Encodes the specified QueryStatsCollection message. Does not implicitly {@link Ydb.Table.QueryStatsCollection.verify|verify} messages.
             * @param message QueryStatsCollection message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Table.IQueryStatsCollection, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified QueryStatsCollection message, length delimited. Does not implicitly {@link Ydb.Table.QueryStatsCollection.verify|verify} messages.
             * @param message QueryStatsCollection message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Table.IQueryStatsCollection, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a QueryStatsCollection message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns QueryStatsCollection
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Table.QueryStatsCollection;

            /**
             * Decodes a QueryStatsCollection message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns QueryStatsCollection
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Table.QueryStatsCollection;

            /**
             * Verifies a QueryStatsCollection message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a QueryStatsCollection message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns QueryStatsCollection
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Table.QueryStatsCollection;

            /**
             * Creates a plain object from a QueryStatsCollection message. Also converts values to other types if specified.
             * @param message QueryStatsCollection
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Table.QueryStatsCollection, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this QueryStatsCollection to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        namespace QueryStatsCollection {

            /** Mode enum. */
            enum Mode {
                STATS_COLLECTION_UNSPECIFIED = 0,
                STATS_COLLECTION_NONE = 1,
                STATS_COLLECTION_BASIC = 2,
                STATS_COLLECTION_FULL = 3,
                STATS_COLLECTION_PROFILE = 4
            }
        }

        /** Properties of an ExecuteDataQueryRequest. */
        interface IExecuteDataQueryRequest {

            /** ExecuteDataQueryRequest sessionId */
            sessionId?: (string|null);

            /** ExecuteDataQueryRequest txControl */
            txControl?: (Ydb.Table.ITransactionControl|null);

            /** ExecuteDataQueryRequest query */
            query?: (Ydb.Table.IQuery|null);

            /** ExecuteDataQueryRequest parameters */
            parameters?: ({ [k: string]: Ydb.ITypedValue }|null);

            /** ExecuteDataQueryRequest queryCachePolicy */
            queryCachePolicy?: (Ydb.Table.IQueryCachePolicy|null);

            /** ExecuteDataQueryRequest operationParams */
            operationParams?: (Ydb.Operations.IOperationParams|null);

            /** ExecuteDataQueryRequest collectStats */
            collectStats?: (Ydb.Table.QueryStatsCollection.Mode|null);
        }

        /** Represents an ExecuteDataQueryRequest. */
        class ExecuteDataQueryRequest implements IExecuteDataQueryRequest {

            /**
             * Constructs a new ExecuteDataQueryRequest.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Table.IExecuteDataQueryRequest);

            /** ExecuteDataQueryRequest sessionId. */
            public sessionId: string;

            /** ExecuteDataQueryRequest txControl. */
            public txControl?: (Ydb.Table.ITransactionControl|null);

            /** ExecuteDataQueryRequest query. */
            public query?: (Ydb.Table.IQuery|null);

            /** ExecuteDataQueryRequest parameters. */
            public parameters: { [k: string]: Ydb.ITypedValue };

            /** ExecuteDataQueryRequest queryCachePolicy. */
            public queryCachePolicy?: (Ydb.Table.IQueryCachePolicy|null);

            /** ExecuteDataQueryRequest operationParams. */
            public operationParams?: (Ydb.Operations.IOperationParams|null);

            /** ExecuteDataQueryRequest collectStats. */
            public collectStats: Ydb.Table.QueryStatsCollection.Mode;

            /**
             * Creates a new ExecuteDataQueryRequest instance using the specified properties.
             * @param [properties] Properties to set
             * @returns ExecuteDataQueryRequest instance
             */
            public static create(properties?: Ydb.Table.IExecuteDataQueryRequest): Ydb.Table.ExecuteDataQueryRequest;

            /**
             * Encodes the specified ExecuteDataQueryRequest message. Does not implicitly {@link Ydb.Table.ExecuteDataQueryRequest.verify|verify} messages.
             * @param message ExecuteDataQueryRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Table.IExecuteDataQueryRequest, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified ExecuteDataQueryRequest message, length delimited. Does not implicitly {@link Ydb.Table.ExecuteDataQueryRequest.verify|verify} messages.
             * @param message ExecuteDataQueryRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Table.IExecuteDataQueryRequest, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes an ExecuteDataQueryRequest message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns ExecuteDataQueryRequest
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Table.ExecuteDataQueryRequest;

            /**
             * Decodes an ExecuteDataQueryRequest message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns ExecuteDataQueryRequest
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Table.ExecuteDataQueryRequest;

            /**
             * Verifies an ExecuteDataQueryRequest message.
             * @param message Plain 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 ExecuteDataQueryRequest message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns ExecuteDataQueryRequest
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Table.ExecuteDataQueryRequest;

            /**
             * Creates a plain object from an ExecuteDataQueryRequest message. Also converts values to other types if specified.
             * @param message ExecuteDataQueryRequest
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Table.ExecuteDataQueryRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this ExecuteDataQueryRequest to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of an ExecuteDataQueryResponse. */
        interface IExecuteDataQueryResponse {

            /** ExecuteDataQueryResponse operation */
            operation?: (Ydb.Operations.IOperation|null);
        }

        /** Represents an ExecuteDataQueryResponse. */
        class ExecuteDataQueryResponse implements IExecuteDataQueryResponse {

            /**
             * Constructs a new ExecuteDataQueryResponse.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Table.IExecuteDataQueryResponse);

            /** ExecuteDataQueryResponse operation. */
            public operation?: (Ydb.Operations.IOperation|null);

            /**
             * Creates a new ExecuteDataQueryResponse instance using the specified properties.
             * @param [properties] Properties to set
             * @returns ExecuteDataQueryResponse instance
             */
            public static create(properties?: Ydb.Table.IExecuteDataQueryResponse): Ydb.Table.ExecuteDataQueryResponse;

            /**
             * Encodes the specified ExecuteDataQueryResponse message. Does not implicitly {@link Ydb.Table.ExecuteDataQueryResponse.verify|verify} messages.
             * @param message ExecuteDataQueryResponse message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Table.IExecuteDataQueryResponse, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified ExecuteDataQueryResponse message, length delimited. Does not implicitly {@link Ydb.Table.ExecuteDataQueryResponse.verify|verify} messages.
             * @param message ExecuteDataQueryResponse message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Table.IExecuteDataQueryResponse, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes an ExecuteDataQueryResponse message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns ExecuteDataQueryResponse
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Table.ExecuteDataQueryResponse;

            /**
             * Decodes an ExecuteDataQueryResponse message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns ExecuteDataQueryResponse
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Table.ExecuteDataQueryResponse;

            /**
             * Verifies an ExecuteDataQueryResponse message.
             * @param message Plain 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 ExecuteDataQueryResponse message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns ExecuteDataQueryResponse
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Table.ExecuteDataQueryResponse;

            /**
             * Creates a plain object from an ExecuteDataQueryResponse message. Also converts values to other types if specified.
             * @param message ExecuteDataQueryResponse
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Table.ExecuteDataQueryResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this ExecuteDataQueryResponse to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of an ExecuteSchemeQueryRequest. */
        interface IExecuteSchemeQueryRequest {

            /** ExecuteSchemeQueryRequest sessionId */
            sessionId?: (string|null);

            /** ExecuteSchemeQueryRequest yqlText */
            yqlText?: (string|null);

            /** ExecuteSchemeQueryRequest operationParams */
            operationParams?: (Ydb.Operations.IOperationParams|null);
        }

        /** Represents an ExecuteSchemeQueryRequest. */
        class ExecuteSchemeQueryRequest implements IExecuteSchemeQueryRequest {

            /**
             * Constructs a new ExecuteSchemeQueryRequest.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Table.IExecuteSchemeQueryRequest);

            /** ExecuteSchemeQueryRequest sessionId. */
            public sessionId: string;

            /** ExecuteSchemeQueryRequest yqlText. */
            public yqlText: string;

            /** ExecuteSchemeQueryRequest operationParams. */
            public operationParams?: (Ydb.Operations.IOperationParams|null);

            /**
             * Creates a new ExecuteSchemeQueryRequest instance using the specified properties.
             * @param [properties] Properties to set
             * @returns ExecuteSchemeQueryRequest instance
             */
            public static create(properties?: Ydb.Table.IExecuteSchemeQueryRequest): Ydb.Table.ExecuteSchemeQueryRequest;

            /**
             * Encodes the specified ExecuteSchemeQueryRequest message. Does not implicitly {@link Ydb.Table.ExecuteSchemeQueryRequest.verify|verify} messages.
             * @param message ExecuteSchemeQueryRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Table.IExecuteSchemeQueryRequest, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified ExecuteSchemeQueryRequest message, length delimited. Does not implicitly {@link Ydb.Table.ExecuteSchemeQueryRequest.verify|verify} messages.
             * @param message ExecuteSchemeQueryRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Table.IExecuteSchemeQueryRequest, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes an ExecuteSchemeQueryRequest message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns ExecuteSchemeQueryRequest
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Table.ExecuteSchemeQueryRequest;

            /**
             * Decodes an ExecuteSchemeQueryRequest message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns ExecuteSchemeQueryRequest
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Table.ExecuteSchemeQueryRequest;

            /**
             * Verifies an ExecuteSchemeQueryRequest message.
             * @param message Plain 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 ExecuteSchemeQueryRequest message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns ExecuteSchemeQueryRequest
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Table.ExecuteSchemeQueryRequest;

            /**
             * Creates a plain object from an ExecuteSchemeQueryRequest message. Also converts values to other types if specified.
             * @param message ExecuteSchemeQueryRequest
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Table.ExecuteSchemeQueryRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this ExecuteSchemeQueryRequest to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of an ExecuteSchemeQueryResponse. */
        interface IExecuteSchemeQueryResponse {

            /** ExecuteSchemeQueryResponse operation */
            operation?: (Ydb.Operations.IOperation|null);
        }

        /** Represents an ExecuteSchemeQueryResponse. */
        class ExecuteSchemeQueryResponse implements IExecuteSchemeQueryResponse {

            /**
             * Constructs a new ExecuteSchemeQueryResponse.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Table.IExecuteSchemeQueryResponse);

            /** ExecuteSchemeQueryResponse operation. */
            public operation?: (Ydb.Operations.IOperation|null);

            /**
             * Creates a new ExecuteSchemeQueryResponse instance using the specified properties.
             * @param [properties] Properties to set
             * @returns ExecuteSchemeQueryResponse instance
             */
            public static create(properties?: Ydb.Table.IExecuteSchemeQueryResponse): Ydb.Table.ExecuteSchemeQueryResponse;

            /**
             * Encodes the specified ExecuteSchemeQueryResponse message. Does not implicitly {@link Ydb.Table.ExecuteSchemeQueryResponse.verify|verify} messages.
             * @param message ExecuteSchemeQueryResponse message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Table.IExecuteSchemeQueryResponse, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified ExecuteSchemeQueryResponse message, length delimited. Does not implicitly {@link Ydb.Table.ExecuteSchemeQueryResponse.verify|verify} messages.
             * @param message ExecuteSchemeQueryResponse message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Table.IExecuteSchemeQueryResponse, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes an ExecuteSchemeQueryResponse message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns ExecuteSchemeQueryResponse
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Table.ExecuteSchemeQueryResponse;

            /**
             * Decodes an ExecuteSchemeQueryResponse message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns ExecuteSchemeQueryResponse
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Table.ExecuteSchemeQueryResponse;

            /**
             * Verifies an ExecuteSchemeQueryResponse message.
             * @param message Plain 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 ExecuteSchemeQueryResponse message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns ExecuteSchemeQueryResponse
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Table.ExecuteSchemeQueryResponse;

            /**
             * Creates a plain object from an ExecuteSchemeQueryResponse message. Also converts values to other types if specified.
             * @param message ExecuteSchemeQueryResponse
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Table.ExecuteSchemeQueryResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this ExecuteSchemeQueryResponse to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a TransactionMeta. */
        interface ITransactionMeta {

            /** TransactionMeta id */
            id?: (string|null);
        }

        /** Represents a TransactionMeta. */
        class TransactionMeta implements ITransactionMeta {

            /**
             * Constructs a new TransactionMeta.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Table.ITransactionMeta);

            /** TransactionMeta id. */
            public id: string;

            /**
             * Creates a new TransactionMeta instance using the specified properties.
             * @param [properties] Properties to set
             * @returns TransactionMeta instance
             */
            public static create(properties?: Ydb.Table.ITransactionMeta): Ydb.Table.TransactionMeta;

            /**
             * Encodes the specified TransactionMeta message. Does not implicitly {@link Ydb.Table.TransactionMeta.verify|verify} messages.
             * @param message TransactionMeta message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Table.ITransactionMeta, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified TransactionMeta message, length delimited. Does not implicitly {@link Ydb.Table.TransactionMeta.verify|verify} messages.
             * @param message TransactionMeta message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Table.ITransactionMeta, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a TransactionMeta message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns TransactionMeta
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Table.TransactionMeta;

            /**
             * Decodes a TransactionMeta message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns TransactionMeta
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Table.TransactionMeta;

            /**
             * Verifies a TransactionMeta message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a TransactionMeta message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns TransactionMeta
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Table.TransactionMeta;

            /**
             * Creates a plain object from a TransactionMeta message. Also converts values to other types if specified.
             * @param message TransactionMeta
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Table.TransactionMeta, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this TransactionMeta to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a QueryMeta. */
        interface IQueryMeta {

            /** QueryMeta id */
            id?: (string|null);

            /** QueryMeta parametersTypes */
            parametersTypes?: ({ [k: string]: Ydb.IType }|null);
        }

        /** Represents a QueryMeta. */
        class QueryMeta implements IQueryMeta {

            /**
             * Constructs a new QueryMeta.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Table.IQueryMeta);

            /** QueryMeta id. */
            public id: string;

            /** QueryMeta parametersTypes. */
            public parametersTypes: { [k: string]: Ydb.IType };

            /**
             * Creates a new QueryMeta instance using the specified properties.
             * @param [properties] Properties to set
             * @returns QueryMeta instance
             */
            public static create(properties?: Ydb.Table.IQueryMeta): Ydb.Table.QueryMeta;

            /**
             * Encodes the specified QueryMeta message. Does not implicitly {@link Ydb.Table.QueryMeta.verify|verify} messages.
             * @param message QueryMeta message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Table.IQueryMeta, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified QueryMeta message, length delimited. Does not implicitly {@link Ydb.Table.QueryMeta.verify|verify} messages.
             * @param message QueryMeta message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Table.IQueryMeta, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a QueryMeta message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns QueryMeta
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Table.QueryMeta;

            /**
             * Decodes a QueryMeta message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns QueryMeta
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Table.QueryMeta;

            /**
             * Verifies a QueryMeta message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a QueryMeta message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns QueryMeta
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Table.QueryMeta;

            /**
             * Creates a plain object from a QueryMeta message. Also converts values to other types if specified.
             * @param message QueryMeta
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Table.QueryMeta, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this QueryMeta to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of an ExecuteQueryResult. */
        interface IExecuteQueryResult {

            /** ExecuteQueryResult resultSets */
            resultSets?: (Ydb.IResultSet[]|null);

            /** ExecuteQueryResult txMeta */
            txMeta?: (Ydb.Table.ITransactionMeta|null);

            /** ExecuteQueryResult queryMeta */
            queryMeta?: (Ydb.Table.IQueryMeta|null);

            /** ExecuteQueryResult queryStats */
            queryStats?: (Ydb.TableStats.IQueryStats|null);
        }

        /** Represents an ExecuteQueryResult. */
        class ExecuteQueryResult implements IExecuteQueryResult {

            /**
             * Constructs a new ExecuteQueryResult.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Table.IExecuteQueryResult);

            /** ExecuteQueryResult resultSets. */
            public resultSets: Ydb.IResultSet[];

            /** ExecuteQueryResult txMeta. */
            public txMeta?: (Ydb.Table.ITransactionMeta|null);

            /** ExecuteQueryResult queryMeta. */
            public queryMeta?: (Ydb.Table.IQueryMeta|null);

            /** ExecuteQueryResult queryStats. */
            public queryStats?: (Ydb.TableStats.IQueryStats|null);

            /**
             * Creates a new ExecuteQueryResult instance using the specified properties.
             * @param [properties] Properties to set
             * @returns ExecuteQueryResult instance
             */
            public static create(properties?: Ydb.Table.IExecuteQueryResult): Ydb.Table.ExecuteQueryResult;

            /**
             * Encodes the specified ExecuteQueryResult message. Does not implicitly {@link Ydb.Table.ExecuteQueryResult.verify|verify} messages.
             * @param message ExecuteQueryResult message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Table.IExecuteQueryResult, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified ExecuteQueryResult message, length delimited. Does not implicitly {@link Ydb.Table.ExecuteQueryResult.verify|verify} messages.
             * @param message ExecuteQueryResult message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Table.IExecuteQueryResult, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes an ExecuteQueryResult message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns ExecuteQueryResult
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Table.ExecuteQueryResult;

            /**
             * Decodes an ExecuteQueryResult message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns ExecuteQueryResult
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Table.ExecuteQueryResult;

            /**
             * Verifies an ExecuteQueryResult message.
             * @param message Plain 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 ExecuteQueryResult message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns ExecuteQueryResult
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Table.ExecuteQueryResult;

            /**
             * Creates a plain object from an ExecuteQueryResult message. Also converts values to other types if specified.
             * @param message ExecuteQueryResult
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Table.ExecuteQueryResult, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this ExecuteQueryResult to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of an ExplainDataQueryRequest. */
        interface IExplainDataQueryRequest {

            /** ExplainDataQueryRequest sessionId */
            sessionId?: (string|null);

            /** ExplainDataQueryRequest yqlText */
            yqlText?: (string|null);

            /** ExplainDataQueryRequest operationParams */
            operationParams?: (Ydb.Operations.IOperationParams|null);

            /** ExplainDataQueryRequest collectFullDiagnostics */
            collectFullDiagnostics?: (boolean|null);
        }

        /** Represents an ExplainDataQueryRequest. */
        class ExplainDataQueryRequest implements IExplainDataQueryRequest {

            /**
             * Constructs a new ExplainDataQueryRequest.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Table.IExplainDataQueryRequest);

            /** ExplainDataQueryRequest sessionId. */
            public sessionId: string;

            /** ExplainDataQueryRequest yqlText. */
            public yqlText: string;

            /** ExplainDataQueryRequest operationParams. */
            public operationParams?: (Ydb.Operations.IOperationParams|null);

            /** ExplainDataQueryRequest collectFullDiagnostics. */
            public collectFullDiagnostics: boolean;

            /**
             * Creates a new ExplainDataQueryRequest instance using the specified properties.
             * @param [properties] Properties to set
             * @returns ExplainDataQueryRequest instance
             */
            public static create(properties?: Ydb.Table.IExplainDataQueryRequest): Ydb.Table.ExplainDataQueryRequest;

            /**
             * Encodes the specified ExplainDataQueryRequest message. Does not implicitly {@link Ydb.Table.ExplainDataQueryRequest.verify|verify} messages.
             * @param message ExplainDataQueryRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Table.IExplainDataQueryRequest, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified ExplainDataQueryRequest message, length delimited. Does not implicitly {@link Ydb.Table.ExplainDataQueryRequest.verify|verify} messages.
             * @param message ExplainDataQueryRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Table.IExplainDataQueryRequest, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes an ExplainDataQueryRequest message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns ExplainDataQueryRequest
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Table.ExplainDataQueryRequest;

            /**
             * Decodes an ExplainDataQueryRequest message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns ExplainDataQueryRequest
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Table.ExplainDataQueryRequest;

            /**
             * Verifies an ExplainDataQueryRequest message.
             * @param message Plain 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 ExplainDataQueryRequest message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns ExplainDataQueryRequest
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Table.ExplainDataQueryRequest;

            /**
             * Creates a plain object from an ExplainDataQueryRequest message. Also converts values to other types if specified.
             * @param message ExplainDataQueryRequest
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Table.ExplainDataQueryRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this ExplainDataQueryRequest to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of an ExplainDataQueryResponse. */
        interface IExplainDataQueryResponse {

            /** ExplainDataQueryResponse operation */
            operation?: (Ydb.Operations.IOperation|null);
        }

        /** Represents an ExplainDataQueryResponse. */
        class ExplainDataQueryResponse implements IExplainDataQueryResponse {

            /**
             * Constructs a new ExplainDataQueryResponse.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Table.IExplainDataQueryResponse);

            /** ExplainDataQueryResponse operation. */
            public operation?: (Ydb.Operations.IOperation|null);

            /**
             * Creates a new ExplainDataQueryResponse instance using the specified properties.
             * @param [properties] Properties to set
             * @returns ExplainDataQueryResponse instance
             */
            public static create(properties?: Ydb.Table.IExplainDataQueryResponse): Ydb.Table.ExplainDataQueryResponse;

            /**
             * Encodes the specified ExplainDataQueryResponse message. Does not implicitly {@link Ydb.Table.ExplainDataQueryResponse.verify|verify} messages.
             * @param message ExplainDataQueryResponse message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Table.IExplainDataQueryResponse, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified ExplainDataQueryResponse message, length delimited. Does not implicitly {@link Ydb.Table.ExplainDataQueryResponse.verify|verify} messages.
             * @param message ExplainDataQueryResponse message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Table.IExplainDataQueryResponse, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes an ExplainDataQueryResponse message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns ExplainDataQueryResponse
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Table.ExplainDataQueryResponse;

            /**
             * Decodes an ExplainDataQueryResponse message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns ExplainDataQueryResponse
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Table.ExplainDataQueryResponse;

            /**
             * Verifies an ExplainDataQueryResponse message.
             * @param message Plain 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 ExplainDataQueryResponse message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns ExplainDataQueryResponse
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Table.ExplainDataQueryResponse;

            /**
             * Creates a plain object from an ExplainDataQueryResponse message. Also converts values to other types if specified.
             * @param message ExplainDataQueryResponse
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Table.ExplainDataQueryResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this ExplainDataQueryResponse to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of an ExplainQueryResult. */
        interface IExplainQueryResult {

            /** ExplainQueryResult queryAst */
            queryAst?: (string|null);

            /** ExplainQueryResult queryPlan */
            queryPlan?: (string|null);

            /** ExplainQueryResult queryFullDiagnostics */
            queryFullDiagnostics?: (string|null);
        }

        /** Represents an ExplainQueryResult. */
        class ExplainQueryResult implements IExplainQueryResult {

            /**
             * Constructs a new ExplainQueryResult.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Table.IExplainQueryResult);

            /** ExplainQueryResult queryAst. */
            public queryAst: string;

            /** ExplainQueryResult queryPlan. */
            public queryPlan: string;

            /** ExplainQueryResult queryFullDiagnostics. */
            public queryFullDiagnostics: string;

            /**
             * Creates a new ExplainQueryResult instance using the specified properties.
             * @param [properties] Properties to set
             * @returns ExplainQueryResult instance
             */
            public static create(properties?: Ydb.Table.IExplainQueryResult): Ydb.Table.ExplainQueryResult;

            /**
             * Encodes the specified ExplainQueryResult message. Does not implicitly {@link Ydb.Table.ExplainQueryResult.verify|verify} messages.
             * @param message ExplainQueryResult message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Table.IExplainQueryResult, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified ExplainQueryResult message, length delimited. Does not implicitly {@link Ydb.Table.ExplainQueryResult.verify|verify} messages.
             * @param message ExplainQueryResult message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Table.IExplainQueryResult, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes an ExplainQueryResult message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns ExplainQueryResult
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Table.ExplainQueryResult;

            /**
             * Decodes an ExplainQueryResult message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns ExplainQueryResult
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Table.ExplainQueryResult;

            /**
             * Verifies an ExplainQueryResult message.
             * @param message Plain 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 ExplainQueryResult message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns ExplainQueryResult
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Table.ExplainQueryResult;

            /**
             * Creates a plain object from an ExplainQueryResult message. Also converts values to other types if specified.
             * @param message ExplainQueryResult
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Table.ExplainQueryResult, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this ExplainQueryResult to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a PrepareDataQueryRequest. */
        interface IPrepareDataQueryRequest {

            /** PrepareDataQueryRequest sessionId */
            sessionId?: (string|null);

            /** PrepareDataQueryRequest yqlText */
            yqlText?: (string|null);

            /** PrepareDataQueryRequest operationParams */
            operationParams?: (Ydb.Operations.IOperationParams|null);
        }

        /** Represents a PrepareDataQueryRequest. */
        class PrepareDataQueryRequest implements IPrepareDataQueryRequest {

            /**
             * Constructs a new PrepareDataQueryRequest.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Table.IPrepareDataQueryRequest);

            /** PrepareDataQueryRequest sessionId. */
            public sessionId: string;

            /** PrepareDataQueryRequest yqlText. */
            public yqlText: string;

            /** PrepareDataQueryRequest operationParams. */
            public operationParams?: (Ydb.Operations.IOperationParams|null);

            /**
             * Creates a new PrepareDataQueryRequest instance using the specified properties.
             * @param [properties] Properties to set
             * @returns PrepareDataQueryRequest instance
             */
            public static create(properties?: Ydb.Table.IPrepareDataQueryRequest): Ydb.Table.PrepareDataQueryRequest;

            /**
             * Encodes the specified PrepareDataQueryRequest message. Does not implicitly {@link Ydb.Table.PrepareDataQueryRequest.verify|verify} messages.
             * @param message PrepareDataQueryRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Table.IPrepareDataQueryRequest, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified PrepareDataQueryRequest message, length delimited. Does not implicitly {@link Ydb.Table.PrepareDataQueryRequest.verify|verify} messages.
             * @param message PrepareDataQueryRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Table.IPrepareDataQueryRequest, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a PrepareDataQueryRequest message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns PrepareDataQueryRequest
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Table.PrepareDataQueryRequest;

            /**
             * Decodes a PrepareDataQueryRequest message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns PrepareDataQueryRequest
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Table.PrepareDataQueryRequest;

            /**
             * Verifies a PrepareDataQueryRequest message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a PrepareDataQueryRequest message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns PrepareDataQueryRequest
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Table.PrepareDataQueryRequest;

            /**
             * Creates a plain object from a PrepareDataQueryRequest message. Also converts values to other types if specified.
             * @param message PrepareDataQueryRequest
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Table.PrepareDataQueryRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this PrepareDataQueryRequest to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a PrepareDataQueryResponse. */
        interface IPrepareDataQueryResponse {

            /** PrepareDataQueryResponse operation */
            operation?: (Ydb.Operations.IOperation|null);
        }

        /** Represents a PrepareDataQueryResponse. */
        class PrepareDataQueryResponse implements IPrepareDataQueryResponse {

            /**
             * Constructs a new PrepareDataQueryResponse.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Table.IPrepareDataQueryResponse);

            /** PrepareDataQueryResponse operation. */
            public operation?: (Ydb.Operations.IOperation|null);

            /**
             * Creates a new PrepareDataQueryResponse instance using the specified properties.
             * @param [properties] Properties to set
             * @returns PrepareDataQueryResponse instance
             */
            public static create(properties?: Ydb.Table.IPrepareDataQueryResponse): Ydb.Table.PrepareDataQueryResponse;

            /**
             * Encodes the specified PrepareDataQueryResponse message. Does not implicitly {@link Ydb.Table.PrepareDataQueryResponse.verify|verify} messages.
             * @param message PrepareDataQueryResponse message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Table.IPrepareDataQueryResponse, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified PrepareDataQueryResponse message, length delimited. Does not implicitly {@link Ydb.Table.PrepareDataQueryResponse.verify|verify} messages.
             * @param message PrepareDataQueryResponse message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Table.IPrepareDataQueryResponse, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a PrepareDataQueryResponse message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns PrepareDataQueryResponse
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Table.PrepareDataQueryResponse;

            /**
             * Decodes a PrepareDataQueryResponse message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns PrepareDataQueryResponse
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Table.PrepareDataQueryResponse;

            /**
             * Verifies a PrepareDataQueryResponse message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a PrepareDataQueryResponse message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns PrepareDataQueryResponse
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Table.PrepareDataQueryResponse;

            /**
             * Creates a plain object from a PrepareDataQueryResponse message. Also converts values to other types if specified.
             * @param message PrepareDataQueryResponse
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Table.PrepareDataQueryResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this PrepareDataQueryResponse to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a PrepareQueryResult. */
        interface IPrepareQueryResult {

            /** PrepareQueryResult queryId */
            queryId?: (string|null);

            /** PrepareQueryResult parametersTypes */
            parametersTypes?: ({ [k: string]: Ydb.IType }|null);
        }

        /** Represents a PrepareQueryResult. */
        class PrepareQueryResult implements IPrepareQueryResult {

            /**
             * Constructs a new PrepareQueryResult.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Table.IPrepareQueryResult);

            /** PrepareQueryResult queryId. */
            public queryId: string;

            /** PrepareQueryResult parametersTypes. */
            public parametersTypes: { [k: string]: Ydb.IType };

            /**
             * Creates a new PrepareQueryResult instance using the specified properties.
             * @param [properties] Properties to set
             * @returns PrepareQueryResult instance
             */
            public static create(properties?: Ydb.Table.IPrepareQueryResult): Ydb.Table.PrepareQueryResult;

            /**
             * Encodes the specified PrepareQueryResult message. Does not implicitly {@link Ydb.Table.PrepareQueryResult.verify|verify} messages.
             * @param message PrepareQueryResult message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Table.IPrepareQueryResult, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified PrepareQueryResult message, length delimited. Does not implicitly {@link Ydb.Table.PrepareQueryResult.verify|verify} messages.
             * @param message PrepareQueryResult message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Table.IPrepareQueryResult, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a PrepareQueryResult message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns PrepareQueryResult
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Table.PrepareQueryResult;

            /**
             * Decodes a PrepareQueryResult message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns PrepareQueryResult
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Table.PrepareQueryResult;

            /**
             * Verifies a PrepareQueryResult message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a PrepareQueryResult message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns PrepareQueryResult
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Table.PrepareQueryResult;

            /**
             * Creates a plain object from a PrepareQueryResult message. Also converts values to other types if specified.
             * @param message PrepareQueryResult
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Table.PrepareQueryResult, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this PrepareQueryResult to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a KeepAliveRequest. */
        interface IKeepAliveRequest {

            /** KeepAliveRequest sessionId */
            sessionId?: (string|null);

            /** KeepAliveRequest operationParams */
            operationParams?: (Ydb.Operations.IOperationParams|null);
        }

        /** Represents a KeepAliveRequest. */
        class KeepAliveRequest implements IKeepAliveRequest {

            /**
             * Constructs a new KeepAliveRequest.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Table.IKeepAliveRequest);

            /** KeepAliveRequest sessionId. */
            public sessionId: string;

            /** KeepAliveRequest operationParams. */
            public operationParams?: (Ydb.Operations.IOperationParams|null);

            /**
             * Creates a new KeepAliveRequest instance using the specified properties.
             * @param [properties] Properties to set
             * @returns KeepAliveRequest instance
             */
            public static create(properties?: Ydb.Table.IKeepAliveRequest): Ydb.Table.KeepAliveRequest;

            /**
             * Encodes the specified KeepAliveRequest message. Does not implicitly {@link Ydb.Table.KeepAliveRequest.verify|verify} messages.
             * @param message KeepAliveRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Table.IKeepAliveRequest, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified KeepAliveRequest message, length delimited. Does not implicitly {@link Ydb.Table.KeepAliveRequest.verify|verify} messages.
             * @param message KeepAliveRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Table.IKeepAliveRequest, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a KeepAliveRequest message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns KeepAliveRequest
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Table.KeepAliveRequest;

            /**
             * Decodes a KeepAliveRequest message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns KeepAliveRequest
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Table.KeepAliveRequest;

            /**
             * Verifies a KeepAliveRequest message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a KeepAliveRequest message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns KeepAliveRequest
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Table.KeepAliveRequest;

            /**
             * Creates a plain object from a KeepAliveRequest message. Also converts values to other types if specified.
             * @param message KeepAliveRequest
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Table.KeepAliveRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this KeepAliveRequest to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a KeepAliveResponse. */
        interface IKeepAliveResponse {

            /** KeepAliveResponse operation */
            operation?: (Ydb.Operations.IOperation|null);
        }

        /** Represents a KeepAliveResponse. */
        class KeepAliveResponse implements IKeepAliveResponse {

            /**
             * Constructs a new KeepAliveResponse.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Table.IKeepAliveResponse);

            /** KeepAliveResponse operation. */
            public operation?: (Ydb.Operations.IOperation|null);

            /**
             * Creates a new KeepAliveResponse instance using the specified properties.
             * @param [properties] Properties to set
             * @returns KeepAliveResponse instance
             */
            public static create(properties?: Ydb.Table.IKeepAliveResponse): Ydb.Table.KeepAliveResponse;

            /**
             * Encodes the specified KeepAliveResponse message. Does not implicitly {@link Ydb.Table.KeepAliveResponse.verify|verify} messages.
             * @param message KeepAliveResponse message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Table.IKeepAliveResponse, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified KeepAliveResponse message, length delimited. Does not implicitly {@link Ydb.Table.KeepAliveResponse.verify|verify} messages.
             * @param message KeepAliveResponse message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Table.IKeepAliveResponse, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a KeepAliveResponse message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns KeepAliveResponse
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Table.KeepAliveResponse;

            /**
             * Decodes a KeepAliveResponse message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns KeepAliveResponse
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Table.KeepAliveResponse;

            /**
             * Verifies a KeepAliveResponse message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a KeepAliveResponse message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns KeepAliveResponse
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Table.KeepAliveResponse;

            /**
             * Creates a plain object from a KeepAliveResponse message. Also converts values to other types if specified.
             * @param message KeepAliveResponse
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Table.KeepAliveResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this KeepAliveResponse to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a KeepAliveResult. */
        interface IKeepAliveResult {

            /** KeepAliveResult sessionStatus */
            sessionStatus?: (Ydb.Table.KeepAliveResult.SessionStatus|null);
        }

        /** Represents a KeepAliveResult. */
        class KeepAliveResult implements IKeepAliveResult {

            /**
             * Constructs a new KeepAliveResult.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Table.IKeepAliveResult);

            /** KeepAliveResult sessionStatus. */
            public sessionStatus: Ydb.Table.KeepAliveResult.SessionStatus;

            /**
             * Creates a new KeepAliveResult instance using the specified properties.
             * @param [properties] Properties to set
             * @returns KeepAliveResult instance
             */
            public static create(properties?: Ydb.Table.IKeepAliveResult): Ydb.Table.KeepAliveResult;

            /**
             * Encodes the specified KeepAliveResult message. Does not implicitly {@link Ydb.Table.KeepAliveResult.verify|verify} messages.
             * @param message KeepAliveResult message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Table.IKeepAliveResult, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified KeepAliveResult message, length delimited. Does not implicitly {@link Ydb.Table.KeepAliveResult.verify|verify} messages.
             * @param message KeepAliveResult message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Table.IKeepAliveResult, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a KeepAliveResult message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns KeepAliveResult
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Table.KeepAliveResult;

            /**
             * Decodes a KeepAliveResult message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns KeepAliveResult
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Table.KeepAliveResult;

            /**
             * Verifies a KeepAliveResult message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a KeepAliveResult message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns KeepAliveResult
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Table.KeepAliveResult;

            /**
             * Creates a plain object from a KeepAliveResult message. Also converts values to other types if specified.
             * @param message KeepAliveResult
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Table.KeepAliveResult, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this KeepAliveResult to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        namespace KeepAliveResult {

            /** SessionStatus enum. */
            enum SessionStatus {
                SESSION_STATUS_UNSPECIFIED = 0,
                SESSION_STATUS_READY = 1,
                SESSION_STATUS_BUSY = 2
            }
        }

        /** Properties of a BeginTransactionRequest. */
        interface IBeginTransactionRequest {

            /** BeginTransactionRequest sessionId */
            sessionId?: (string|null);

            /** BeginTransactionRequest txSettings */
            txSettings?: (Ydb.Table.ITransactionSettings|null);

            /** BeginTransactionRequest operationParams */
            operationParams?: (Ydb.Operations.IOperationParams|null);
        }

        /** Represents a BeginTransactionRequest. */
        class BeginTransactionRequest implements IBeginTransactionRequest {

            /**
             * Constructs a new BeginTransactionRequest.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Table.IBeginTransactionRequest);

            /** BeginTransactionRequest sessionId. */
            public sessionId: string;

            /** BeginTransactionRequest txSettings. */
            public txSettings?: (Ydb.Table.ITransactionSettings|null);

            /** BeginTransactionRequest operationParams. */
            public operationParams?: (Ydb.Operations.IOperationParams|null);

            /**
             * Creates a new BeginTransactionRequest instance using the specified properties.
             * @param [properties] Properties to set
             * @returns BeginTransactionRequest instance
             */
            public static create(properties?: Ydb.Table.IBeginTransactionRequest): Ydb.Table.BeginTransactionRequest;

            /**
             * Encodes the specified BeginTransactionRequest message. Does not implicitly {@link Ydb.Table.BeginTransactionRequest.verify|verify} messages.
             * @param message BeginTransactionRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Table.IBeginTransactionRequest, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified BeginTransactionRequest message, length delimited. Does not implicitly {@link Ydb.Table.BeginTransactionRequest.verify|verify} messages.
             * @param message BeginTransactionRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Table.IBeginTransactionRequest, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a BeginTransactionRequest message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns BeginTransactionRequest
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Table.BeginTransactionRequest;

            /**
             * Decodes a BeginTransactionRequest message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns BeginTransactionRequest
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Table.BeginTransactionRequest;

            /**
             * Verifies a BeginTransactionRequest message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a BeginTransactionRequest message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns BeginTransactionRequest
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Table.BeginTransactionRequest;

            /**
             * Creates a plain object from a BeginTransactionRequest message. Also converts values to other types if specified.
             * @param message BeginTransactionRequest
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Table.BeginTransactionRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this BeginTransactionRequest to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a BeginTransactionResponse. */
        interface IBeginTransactionResponse {

            /** BeginTransactionResponse operation */
            operation?: (Ydb.Operations.IOperation|null);
        }

        /** Represents a BeginTransactionResponse. */
        class BeginTransactionResponse implements IBeginTransactionResponse {

            /**
             * Constructs a new BeginTransactionResponse.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Table.IBeginTransactionResponse);

            /** BeginTransactionResponse operation. */
            public operation?: (Ydb.Operations.IOperation|null);

            /**
             * Creates a new BeginTransactionResponse instance using the specified properties.
             * @param [properties] Properties to set
             * @returns BeginTransactionResponse instance
             */
            public static create(properties?: Ydb.Table.IBeginTransactionResponse): Ydb.Table.BeginTransactionResponse;

            /**
             * Encodes the specified BeginTransactionResponse message. Does not implicitly {@link Ydb.Table.BeginTransactionResponse.verify|verify} messages.
             * @param message BeginTransactionResponse message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Table.IBeginTransactionResponse, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified BeginTransactionResponse message, length delimited. Does not implicitly {@link Ydb.Table.BeginTransactionResponse.verify|verify} messages.
             * @param message BeginTransactionResponse message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Table.IBeginTransactionResponse, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a BeginTransactionResponse message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns BeginTransactionResponse
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Table.BeginTransactionResponse;

            /**
             * Decodes a BeginTransactionResponse message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns BeginTransactionResponse
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Table.BeginTransactionResponse;

            /**
             * Verifies a BeginTransactionResponse message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a BeginTransactionResponse message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns BeginTransactionResponse
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Table.BeginTransactionResponse;

            /**
             * Creates a plain object from a BeginTransactionResponse message. Also converts values to other types if specified.
             * @param message BeginTransactionResponse
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Table.BeginTransactionResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this BeginTransactionResponse to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a BeginTransactionResult. */
        interface IBeginTransactionResult {

            /** BeginTransactionResult txMeta */
            txMeta?: (Ydb.Table.ITransactionMeta|null);
        }

        /** Represents a BeginTransactionResult. */
        class BeginTransactionResult implements IBeginTransactionResult {

            /**
             * Constructs a new BeginTransactionResult.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Table.IBeginTransactionResult);

            /** BeginTransactionResult txMeta. */
            public txMeta?: (Ydb.Table.ITransactionMeta|null);

            /**
             * Creates a new BeginTransactionResult instance using the specified properties.
             * @param [properties] Properties to set
             * @returns BeginTransactionResult instance
             */
            public static create(properties?: Ydb.Table.IBeginTransactionResult): Ydb.Table.BeginTransactionResult;

            /**
             * Encodes the specified BeginTransactionResult message. Does not implicitly {@link Ydb.Table.BeginTransactionResult.verify|verify} messages.
             * @param message BeginTransactionResult message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Table.IBeginTransactionResult, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified BeginTransactionResult message, length delimited. Does not implicitly {@link Ydb.Table.BeginTransactionResult.verify|verify} messages.
             * @param message BeginTransactionResult message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Table.IBeginTransactionResult, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a BeginTransactionResult message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns BeginTransactionResult
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Table.BeginTransactionResult;

            /**
             * Decodes a BeginTransactionResult message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns BeginTransactionResult
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Table.BeginTransactionResult;

            /**
             * Verifies a BeginTransactionResult message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a BeginTransactionResult message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns BeginTransactionResult
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Table.BeginTransactionResult;

            /**
             * Creates a plain object from a BeginTransactionResult message. Also converts values to other types if specified.
             * @param message BeginTransactionResult
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Table.BeginTransactionResult, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this BeginTransactionResult to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a CommitTransactionRequest. */
        interface ICommitTransactionRequest {

            /** CommitTransactionRequest sessionId */
            sessionId?: (string|null);

            /** CommitTransactionRequest txId */
            txId?: (string|null);

            /** CommitTransactionRequest operationParams */
            operationParams?: (Ydb.Operations.IOperationParams|null);

            /** CommitTransactionRequest collectStats */
            collectStats?: (Ydb.Table.QueryStatsCollection.Mode|null);
        }

        /** Represents a CommitTransactionRequest. */
        class CommitTransactionRequest implements ICommitTransactionRequest {

            /**
             * Constructs a new CommitTransactionRequest.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Table.ICommitTransactionRequest);

            /** CommitTransactionRequest sessionId. */
            public sessionId: string;

            /** CommitTransactionRequest txId. */
            public txId: string;

            /** CommitTransactionRequest operationParams. */
            public operationParams?: (Ydb.Operations.IOperationParams|null);

            /** CommitTransactionRequest collectStats. */
            public collectStats: Ydb.Table.QueryStatsCollection.Mode;

            /**
             * Creates a new CommitTransactionRequest instance using the specified properties.
             * @param [properties] Properties to set
             * @returns CommitTransactionRequest instance
             */
            public static create(properties?: Ydb.Table.ICommitTransactionRequest): Ydb.Table.CommitTransactionRequest;

            /**
             * Encodes the specified CommitTransactionRequest message. Does not implicitly {@link Ydb.Table.CommitTransactionRequest.verify|verify} messages.
             * @param message CommitTransactionRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Table.ICommitTransactionRequest, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified CommitTransactionRequest message, length delimited. Does not implicitly {@link Ydb.Table.CommitTransactionRequest.verify|verify} messages.
             * @param message CommitTransactionRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Table.ICommitTransactionRequest, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a CommitTransactionRequest message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns CommitTransactionRequest
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Table.CommitTransactionRequest;

            /**
             * Decodes a CommitTransactionRequest message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns CommitTransactionRequest
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Table.CommitTransactionRequest;

            /**
             * Verifies a CommitTransactionRequest message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a CommitTransactionRequest message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns CommitTransactionRequest
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Table.CommitTransactionRequest;

            /**
             * Creates a plain object from a CommitTransactionRequest message. Also converts values to other types if specified.
             * @param message CommitTransactionRequest
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Table.CommitTransactionRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this CommitTransactionRequest to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a CommitTransactionResponse. */
        interface ICommitTransactionResponse {

            /** CommitTransactionResponse operation */
            operation?: (Ydb.Operations.IOperation|null);
        }

        /** Represents a CommitTransactionResponse. */
        class CommitTransactionResponse implements ICommitTransactionResponse {

            /**
             * Constructs a new CommitTransactionResponse.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Table.ICommitTransactionResponse);

            /** CommitTransactionResponse operation. */
            public operation?: (Ydb.Operations.IOperation|null);

            /**
             * Creates a new CommitTransactionResponse instance using the specified properties.
             * @param [properties] Properties to set
             * @returns CommitTransactionResponse instance
             */
            public static create(properties?: Ydb.Table.ICommitTransactionResponse): Ydb.Table.CommitTransactionResponse;

            /**
             * Encodes the specified CommitTransactionResponse message. Does not implicitly {@link Ydb.Table.CommitTransactionResponse.verify|verify} messages.
             * @param message CommitTransactionResponse message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Table.ICommitTransactionResponse, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified CommitTransactionResponse message, length delimited. Does not implicitly {@link Ydb.Table.CommitTransactionResponse.verify|verify} messages.
             * @param message CommitTransactionResponse message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Table.ICommitTransactionResponse, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a CommitTransactionResponse message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns CommitTransactionResponse
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Table.CommitTransactionResponse;

            /**
             * Decodes a CommitTransactionResponse message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns CommitTransactionResponse
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Table.CommitTransactionResponse;

            /**
             * Verifies a CommitTransactionResponse message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a CommitTransactionResponse message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns CommitTransactionResponse
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Table.CommitTransactionResponse;

            /**
             * Creates a plain object from a CommitTransactionResponse message. Also converts values to other types if specified.
             * @param message CommitTransactionResponse
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Table.CommitTransactionResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this CommitTransactionResponse to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a CommitTransactionResult. */
        interface ICommitTransactionResult {

            /** CommitTransactionResult queryStats */
            queryStats?: (Ydb.TableStats.IQueryStats|null);
        }

        /** Represents a CommitTransactionResult. */
        class CommitTransactionResult implements ICommitTransactionResult {

            /**
             * Constructs a new CommitTransactionResult.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Table.ICommitTransactionResult);

            /** CommitTransactionResult queryStats. */
            public queryStats?: (Ydb.TableStats.IQueryStats|null);

            /**
             * Creates a new CommitTransactionResult instance using the specified properties.
             * @param [properties] Properties to set
             * @returns CommitTransactionResult instance
             */
            public static create(properties?: Ydb.Table.ICommitTransactionResult): Ydb.Table.CommitTransactionResult;

            /**
             * Encodes the specified CommitTransactionResult message. Does not implicitly {@link Ydb.Table.CommitTransactionResult.verify|verify} messages.
             * @param message CommitTransactionResult message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Table.ICommitTransactionResult, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified CommitTransactionResult message, length delimited. Does not implicitly {@link Ydb.Table.CommitTransactionResult.verify|verify} messages.
             * @param message CommitTransactionResult message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Table.ICommitTransactionResult, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a CommitTransactionResult message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns CommitTransactionResult
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Table.CommitTransactionResult;

            /**
             * Decodes a CommitTransactionResult message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns CommitTransactionResult
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Table.CommitTransactionResult;

            /**
             * Verifies a CommitTransactionResult message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a CommitTransactionResult message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns CommitTransactionResult
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Table.CommitTransactionResult;

            /**
             * Creates a plain object from a CommitTransactionResult message. Also converts values to other types if specified.
             * @param message CommitTransactionResult
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Table.CommitTransactionResult, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this CommitTransactionResult to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a RollbackTransactionRequest. */
        interface IRollbackTransactionRequest {

            /** RollbackTransactionRequest sessionId */
            sessionId?: (string|null);

            /** RollbackTransactionRequest txId */
            txId?: (string|null);

            /** RollbackTransactionRequest operationParams */
            operationParams?: (Ydb.Operations.IOperationParams|null);
        }

        /** Represents a RollbackTransactionRequest. */
        class RollbackTransactionRequest implements IRollbackTransactionRequest {

            /**
             * Constructs a new RollbackTransactionRequest.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Table.IRollbackTransactionRequest);

            /** RollbackTransactionRequest sessionId. */
            public sessionId: string;

            /** RollbackTransactionRequest txId. */
            public txId: string;

            /** RollbackTransactionRequest operationParams. */
            public operationParams?: (Ydb.Operations.IOperationParams|null);

            /**
             * Creates a new RollbackTransactionRequest instance using the specified properties.
             * @param [properties] Properties to set
             * @returns RollbackTransactionRequest instance
             */
            public static create(properties?: Ydb.Table.IRollbackTransactionRequest): Ydb.Table.RollbackTransactionRequest;

            /**
             * Encodes the specified RollbackTransactionRequest message. Does not implicitly {@link Ydb.Table.RollbackTransactionRequest.verify|verify} messages.
             * @param message RollbackTransactionRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Table.IRollbackTransactionRequest, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified RollbackTransactionRequest message, length delimited. Does not implicitly {@link Ydb.Table.RollbackTransactionRequest.verify|verify} messages.
             * @param message RollbackTransactionRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Table.IRollbackTransactionRequest, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a RollbackTransactionRequest message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns RollbackTransactionRequest
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Table.RollbackTransactionRequest;

            /**
             * Decodes a RollbackTransactionRequest message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns RollbackTransactionRequest
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Table.RollbackTransactionRequest;

            /**
             * Verifies a RollbackTransactionRequest message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a RollbackTransactionRequest message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns RollbackTransactionRequest
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Table.RollbackTransactionRequest;

            /**
             * Creates a plain object from a RollbackTransactionRequest message. Also converts values to other types if specified.
             * @param message RollbackTransactionRequest
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Table.RollbackTransactionRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this RollbackTransactionRequest to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a RollbackTransactionResponse. */
        interface IRollbackTransactionResponse {

            /** RollbackTransactionResponse operation */
            operation?: (Ydb.Operations.IOperation|null);
        }

        /** Represents a RollbackTransactionResponse. */
        class RollbackTransactionResponse implements IRollbackTransactionResponse {

            /**
             * Constructs a new RollbackTransactionResponse.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Table.IRollbackTransactionResponse);

            /** RollbackTransactionResponse operation. */
            public operation?: (Ydb.Operations.IOperation|null);

            /**
             * Creates a new RollbackTransactionResponse instance using the specified properties.
             * @param [properties] Properties to set
             * @returns RollbackTransactionResponse instance
             */
            public static create(properties?: Ydb.Table.IRollbackTransactionResponse): Ydb.Table.RollbackTransactionResponse;

            /**
             * Encodes the specified RollbackTransactionResponse message. Does not implicitly {@link Ydb.Table.RollbackTransactionResponse.verify|verify} messages.
             * @param message RollbackTransactionResponse message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Table.IRollbackTransactionResponse, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified RollbackTransactionResponse message, length delimited. Does not implicitly {@link Ydb.Table.RollbackTransactionResponse.verify|verify} messages.
             * @param message RollbackTransactionResponse message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Table.IRollbackTransactionResponse, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a RollbackTransactionResponse message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns RollbackTransactionResponse
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Table.RollbackTransactionResponse;

            /**
             * Decodes a RollbackTransactionResponse message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns RollbackTransactionResponse
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Table.RollbackTransactionResponse;

            /**
             * Verifies a RollbackTransactionResponse message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a RollbackTransactionResponse message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns RollbackTransactionResponse
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Table.RollbackTransactionResponse;

            /**
             * Creates a plain object from a RollbackTransactionResponse message. Also converts values to other types if specified.
             * @param message RollbackTransactionResponse
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Table.RollbackTransactionResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this RollbackTransactionResponse to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a StoragePolicyDescription. */
        interface IStoragePolicyDescription {

            /** StoragePolicyDescription name */
            name?: (string|null);

            /** StoragePolicyDescription labels */
            labels?: ({ [k: string]: string }|null);
        }

        /** Represents a StoragePolicyDescription. */
        class StoragePolicyDescription implements IStoragePolicyDescription {

            /**
             * Constructs a new StoragePolicyDescription.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Table.IStoragePolicyDescription);

            /** StoragePolicyDescription name. */
            public name: string;

            /** StoragePolicyDescription labels. */
            public labels: { [k: string]: string };

            /**
             * Creates a new StoragePolicyDescription instance using the specified properties.
             * @param [properties] Properties to set
             * @returns StoragePolicyDescription instance
             */
            public static create(properties?: Ydb.Table.IStoragePolicyDescription): Ydb.Table.StoragePolicyDescription;

            /**
             * Encodes the specified StoragePolicyDescription message. Does not implicitly {@link Ydb.Table.StoragePolicyDescription.verify|verify} messages.
             * @param message StoragePolicyDescription message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Table.IStoragePolicyDescription, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified StoragePolicyDescription message, length delimited. Does not implicitly {@link Ydb.Table.StoragePolicyDescription.verify|verify} messages.
             * @param message StoragePolicyDescription message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Table.IStoragePolicyDescription, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a StoragePolicyDescription message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns StoragePolicyDescription
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Table.StoragePolicyDescription;

            /**
             * Decodes a StoragePolicyDescription message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns StoragePolicyDescription
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Table.StoragePolicyDescription;

            /**
             * Verifies a StoragePolicyDescription message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a StoragePolicyDescription message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns StoragePolicyDescription
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Table.StoragePolicyDescription;

            /**
             * Creates a plain object from a StoragePolicyDescription message. Also converts values to other types if specified.
             * @param message StoragePolicyDescription
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Table.StoragePolicyDescription, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this StoragePolicyDescription to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a CompactionPolicyDescription. */
        interface ICompactionPolicyDescription {

            /** CompactionPolicyDescription name */
            name?: (string|null);

            /** CompactionPolicyDescription labels */
            labels?: ({ [k: string]: string }|null);
        }

        /** Represents a CompactionPolicyDescription. */
        class CompactionPolicyDescription implements ICompactionPolicyDescription {

            /**
             * Constructs a new CompactionPolicyDescription.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Table.ICompactionPolicyDescription);

            /** CompactionPolicyDescription name. */
            public name: string;

            /** CompactionPolicyDescription labels. */
            public labels: { [k: string]: string };

            /**
             * Creates a new CompactionPolicyDescription instance using the specified properties.
             * @param [properties] Properties to set
             * @returns CompactionPolicyDescription instance
             */
            public static create(properties?: Ydb.Table.ICompactionPolicyDescription): Ydb.Table.CompactionPolicyDescription;

            /**
             * Encodes the specified CompactionPolicyDescription message. Does not implicitly {@link Ydb.Table.CompactionPolicyDescription.verify|verify} messages.
             * @param message CompactionPolicyDescription message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Table.ICompactionPolicyDescription, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified CompactionPolicyDescription message, length delimited. Does not implicitly {@link Ydb.Table.CompactionPolicyDescription.verify|verify} messages.
             * @param message CompactionPolicyDescription message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Table.ICompactionPolicyDescription, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a CompactionPolicyDescription message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns CompactionPolicyDescription
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Table.CompactionPolicyDescription;

            /**
             * Decodes a CompactionPolicyDescription message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns CompactionPolicyDescription
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Table.CompactionPolicyDescription;

            /**
             * Verifies a CompactionPolicyDescription message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a CompactionPolicyDescription message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns CompactionPolicyDescription
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Table.CompactionPolicyDescription;

            /**
             * Creates a plain object from a CompactionPolicyDescription message. Also converts values to other types if specified.
             * @param message CompactionPolicyDescription
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Table.CompactionPolicyDescription, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this CompactionPolicyDescription to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a PartitioningPolicyDescription. */
        interface IPartitioningPolicyDescription {

            /** PartitioningPolicyDescription name */
            name?: (string|null);

            /** PartitioningPolicyDescription labels */
            labels?: ({ [k: string]: string }|null);
        }

        /** Represents a PartitioningPolicyDescription. */
        class PartitioningPolicyDescription implements IPartitioningPolicyDescription {

            /**
             * Constructs a new PartitioningPolicyDescription.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Table.IPartitioningPolicyDescription);

            /** PartitioningPolicyDescription name. */
            public name: string;

            /** PartitioningPolicyDescription labels. */
            public labels: { [k: string]: string };

            /**
             * Creates a new PartitioningPolicyDescription instance using the specified properties.
             * @param [properties] Properties to set
             * @returns PartitioningPolicyDescription instance
             */
            public static create(properties?: Ydb.Table.IPartitioningPolicyDescription): Ydb.Table.PartitioningPolicyDescription;

            /**
             * Encodes the specified PartitioningPolicyDescription message. Does not implicitly {@link Ydb.Table.PartitioningPolicyDescription.verify|verify} messages.
             * @param message PartitioningPolicyDescription message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Table.IPartitioningPolicyDescription, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified PartitioningPolicyDescription message, length delimited. Does not implicitly {@link Ydb.Table.PartitioningPolicyDescription.verify|verify} messages.
             * @param message PartitioningPolicyDescription message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Table.IPartitioningPolicyDescription, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a PartitioningPolicyDescription message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns PartitioningPolicyDescription
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Table.PartitioningPolicyDescription;

            /**
             * Decodes a PartitioningPolicyDescription message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns PartitioningPolicyDescription
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Table.PartitioningPolicyDescription;

            /**
             * Verifies a PartitioningPolicyDescription message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a PartitioningPolicyDescription message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns PartitioningPolicyDescription
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Table.PartitioningPolicyDescription;

            /**
             * Creates a plain object from a PartitioningPolicyDescription message. Also converts values to other types if specified.
             * @param message PartitioningPolicyDescription
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Table.PartitioningPolicyDescription, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this PartitioningPolicyDescription to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of an ExecutionPolicyDescription. */
        interface IExecutionPolicyDescription {

            /** ExecutionPolicyDescription name */
            name?: (string|null);

            /** ExecutionPolicyDescription labels */
            labels?: ({ [k: string]: string }|null);
        }

        /** Represents an ExecutionPolicyDescription. */
        class ExecutionPolicyDescription implements IExecutionPolicyDescription {

            /**
             * Constructs a new ExecutionPolicyDescription.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Table.IExecutionPolicyDescription);

            /** ExecutionPolicyDescription name. */
            public name: string;

            /** ExecutionPolicyDescription labels. */
            public labels: { [k: string]: string };

            /**
             * Creates a new ExecutionPolicyDescription instance using the specified properties.
             * @param [properties] Properties to set
             * @returns ExecutionPolicyDescription instance
             */
            public static create(properties?: Ydb.Table.IExecutionPolicyDescription): Ydb.Table.ExecutionPolicyDescription;

            /**
             * Encodes the specified ExecutionPolicyDescription message. Does not implicitly {@link Ydb.Table.ExecutionPolicyDescription.verify|verify} messages.
             * @param message ExecutionPolicyDescription message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Table.IExecutionPolicyDescription, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified ExecutionPolicyDescription message, length delimited. Does not implicitly {@link Ydb.Table.ExecutionPolicyDescription.verify|verify} messages.
             * @param message ExecutionPolicyDescription message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Table.IExecutionPolicyDescription, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes an ExecutionPolicyDescription message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns ExecutionPolicyDescription
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Table.ExecutionPolicyDescription;

            /**
             * Decodes an ExecutionPolicyDescription message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns ExecutionPolicyDescription
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Table.ExecutionPolicyDescription;

            /**
             * Verifies an ExecutionPolicyDescription message.
             * @param message Plain 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 ExecutionPolicyDescription message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns ExecutionPolicyDescription
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Table.ExecutionPolicyDescription;

            /**
             * Creates a plain object from an ExecutionPolicyDescription message. Also converts values to other types if specified.
             * @param message ExecutionPolicyDescription
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Table.ExecutionPolicyDescription, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this ExecutionPolicyDescription to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a ReplicationPolicyDescription. */
        interface IReplicationPolicyDescription {

            /** ReplicationPolicyDescription name */
            name?: (string|null);

            /** ReplicationPolicyDescription labels */
            labels?: ({ [k: string]: string }|null);
        }

        /** Represents a ReplicationPolicyDescription. */
        class ReplicationPolicyDescription implements IReplicationPolicyDescription {

            /**
             * Constructs a new ReplicationPolicyDescription.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Table.IReplicationPolicyDescription);

            /** ReplicationPolicyDescription name. */
            public name: string;

            /** ReplicationPolicyDescription labels. */
            public labels: { [k: string]: string };

            /**
             * Creates a new ReplicationPolicyDescription instance using the specified properties.
             * @param [properties] Properties to set
             * @returns ReplicationPolicyDescription instance
             */
            public static create(properties?: Ydb.Table.IReplicationPolicyDescription): Ydb.Table.ReplicationPolicyDescription;

            /**
             * Encodes the specified ReplicationPolicyDescription message. Does not implicitly {@link Ydb.Table.ReplicationPolicyDescription.verify|verify} messages.
             * @param message ReplicationPolicyDescription message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Table.IReplicationPolicyDescription, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified ReplicationPolicyDescription message, length delimited. Does not implicitly {@link Ydb.Table.ReplicationPolicyDescription.verify|verify} messages.
             * @param message ReplicationPolicyDescription message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Table.IReplicationPolicyDescription, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a ReplicationPolicyDescription message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns ReplicationPolicyDescription
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Table.ReplicationPolicyDescription;

            /**
             * Decodes a ReplicationPolicyDescription message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns ReplicationPolicyDescription
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Table.ReplicationPolicyDescription;

            /**
             * Verifies a ReplicationPolicyDescription message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a ReplicationPolicyDescription message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns ReplicationPolicyDescription
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Table.ReplicationPolicyDescription;

            /**
             * Creates a plain object from a ReplicationPolicyDescription message. Also converts values to other types if specified.
             * @param message ReplicationPolicyDescription
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Table.ReplicationPolicyDescription, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this ReplicationPolicyDescription to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a CachingPolicyDescription. */
        interface ICachingPolicyDescription {

            /** CachingPolicyDescription name */
            name?: (string|null);

            /** CachingPolicyDescription labels */
            labels?: ({ [k: string]: string }|null);
        }

        /** Represents a CachingPolicyDescription. */
        class CachingPolicyDescription implements ICachingPolicyDescription {

            /**
             * Constructs a new CachingPolicyDescription.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Table.ICachingPolicyDescription);

            /** CachingPolicyDescription name. */
            public name: string;

            /** CachingPolicyDescription labels. */
            public labels: { [k: string]: string };

            /**
             * Creates a new CachingPolicyDescription instance using the specified properties.
             * @param [properties] Properties to set
             * @returns CachingPolicyDescription instance
             */
            public static create(properties?: Ydb.Table.ICachingPolicyDescription): Ydb.Table.CachingPolicyDescription;

            /**
             * Encodes the specified CachingPolicyDescription message. Does not implicitly {@link Ydb.Table.CachingPolicyDescription.verify|verify} messages.
             * @param message CachingPolicyDescription message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Table.ICachingPolicyDescription, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified CachingPolicyDescription message, length delimited. Does not implicitly {@link Ydb.Table.CachingPolicyDescription.verify|verify} messages.
             * @param message CachingPolicyDescription message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Table.ICachingPolicyDescription, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a CachingPolicyDescription message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns CachingPolicyDescription
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Table.CachingPolicyDescription;

            /**
             * Decodes a CachingPolicyDescription message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns CachingPolicyDescription
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Table.CachingPolicyDescription;

            /**
             * Verifies a CachingPolicyDescription message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a CachingPolicyDescription message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns CachingPolicyDescription
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Table.CachingPolicyDescription;

            /**
             * Creates a plain object from a CachingPolicyDescription message. Also converts values to other types if specified.
             * @param message CachingPolicyDescription
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Table.CachingPolicyDescription, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this CachingPolicyDescription to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a TableProfileDescription. */
        interface ITableProfileDescription {

            /** TableProfileDescription name */
            name?: (string|null);

            /** TableProfileDescription labels */
            labels?: ({ [k: string]: string }|null);

            /** TableProfileDescription defaultStoragePolicy */
            defaultStoragePolicy?: (string|null);

            /** TableProfileDescription allowedStoragePolicies */
            allowedStoragePolicies?: (string[]|null);

            /** TableProfileDescription defaultCompactionPolicy */
            defaultCompactionPolicy?: (string|null);

            /** TableProfileDescription allowedCompactionPolicies */
            allowedCompactionPolicies?: (string[]|null);

            /** TableProfileDescription defaultPartitioningPolicy */
            defaultPartitioningPolicy?: (string|null);

            /** TableProfileDescription allowedPartitioningPolicies */
            allowedPartitioningPolicies?: (string[]|null);

            /** TableProfileDescription defaultExecutionPolicy */
            defaultExecutionPolicy?: (string|null);

            /** TableProfileDescription allowedExecutionPolicies */
            allowedExecutionPolicies?: (string[]|null);

            /** TableProfileDescription defaultReplicationPolicy */
            defaultReplicationPolicy?: (string|null);

            /** TableProfileDescription allowedReplicationPolicies */
            allowedReplicationPolicies?: (string[]|null);

            /** TableProfileDescription defaultCachingPolicy */
            defaultCachingPolicy?: (string|null);

            /** TableProfileDescription allowedCachingPolicies */
            allowedCachingPolicies?: (string[]|null);
        }

        /** Represents a TableProfileDescription. */
        class TableProfileDescription implements ITableProfileDescription {

            /**
             * Constructs a new TableProfileDescription.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Table.ITableProfileDescription);

            /** TableProfileDescription name. */
            public name: string;

            /** TableProfileDescription labels. */
            public labels: { [k: string]: string };

            /** TableProfileDescription defaultStoragePolicy. */
            public defaultStoragePolicy: string;

            /** TableProfileDescription allowedStoragePolicies. */
            public allowedStoragePolicies: string[];

            /** TableProfileDescription defaultCompactionPolicy. */
            public defaultCompactionPolicy: string;

            /** TableProfileDescription allowedCompactionPolicies. */
            public allowedCompactionPolicies: string[];

            /** TableProfileDescription defaultPartitioningPolicy. */
            public defaultPartitioningPolicy: string;

            /** TableProfileDescription allowedPartitioningPolicies. */
            public allowedPartitioningPolicies: string[];

            /** TableProfileDescription defaultExecutionPolicy. */
            public defaultExecutionPolicy: string;

            /** TableProfileDescription allowedExecutionPolicies. */
            public allowedExecutionPolicies: string[];

            /** TableProfileDescription defaultReplicationPolicy. */
            public defaultReplicationPolicy: string;

            /** TableProfileDescription allowedReplicationPolicies. */
            public allowedReplicationPolicies: string[];

            /** TableProfileDescription defaultCachingPolicy. */
            public defaultCachingPolicy: string;

            /** TableProfileDescription allowedCachingPolicies. */
            public allowedCachingPolicies: string[];

            /**
             * Creates a new TableProfileDescription instance using the specified properties.
             * @param [properties] Properties to set
             * @returns TableProfileDescription instance
             */
            public static create(properties?: Ydb.Table.ITableProfileDescription): Ydb.Table.TableProfileDescription;

            /**
             * Encodes the specified TableProfileDescription message. Does not implicitly {@link Ydb.Table.TableProfileDescription.verify|verify} messages.
             * @param message TableProfileDescription message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Table.ITableProfileDescription, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified TableProfileDescription message, length delimited. Does not implicitly {@link Ydb.Table.TableProfileDescription.verify|verify} messages.
             * @param message TableProfileDescription message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Table.ITableProfileDescription, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a TableProfileDescription message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns TableProfileDescription
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Table.TableProfileDescription;

            /**
             * Decodes a TableProfileDescription message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns TableProfileDescription
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Table.TableProfileDescription;

            /**
             * Verifies a TableProfileDescription message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a TableProfileDescription message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns TableProfileDescription
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Table.TableProfileDescription;

            /**
             * Creates a plain object from a TableProfileDescription message. Also converts values to other types if specified.
             * @param message TableProfileDescription
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Table.TableProfileDescription, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this TableProfileDescription to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a DescribeTableOptionsRequest. */
        interface IDescribeTableOptionsRequest {

            /** DescribeTableOptionsRequest operationParams */
            operationParams?: (Ydb.Operations.IOperationParams|null);
        }

        /** Represents a DescribeTableOptionsRequest. */
        class DescribeTableOptionsRequest implements IDescribeTableOptionsRequest {

            /**
             * Constructs a new DescribeTableOptionsRequest.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Table.IDescribeTableOptionsRequest);

            /** DescribeTableOptionsRequest operationParams. */
            public operationParams?: (Ydb.Operations.IOperationParams|null);

            /**
             * Creates a new DescribeTableOptionsRequest instance using the specified properties.
             * @param [properties] Properties to set
             * @returns DescribeTableOptionsRequest instance
             */
            public static create(properties?: Ydb.Table.IDescribeTableOptionsRequest): Ydb.Table.DescribeTableOptionsRequest;

            /**
             * Encodes the specified DescribeTableOptionsRequest message. Does not implicitly {@link Ydb.Table.DescribeTableOptionsRequest.verify|verify} messages.
             * @param message DescribeTableOptionsRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Table.IDescribeTableOptionsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified DescribeTableOptionsRequest message, length delimited. Does not implicitly {@link Ydb.Table.DescribeTableOptionsRequest.verify|verify} messages.
             * @param message DescribeTableOptionsRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Table.IDescribeTableOptionsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a DescribeTableOptionsRequest message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns DescribeTableOptionsRequest
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Table.DescribeTableOptionsRequest;

            /**
             * Decodes a DescribeTableOptionsRequest message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns DescribeTableOptionsRequest
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Table.DescribeTableOptionsRequest;

            /**
             * Verifies a DescribeTableOptionsRequest message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a DescribeTableOptionsRequest message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns DescribeTableOptionsRequest
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Table.DescribeTableOptionsRequest;

            /**
             * Creates a plain object from a DescribeTableOptionsRequest message. Also converts values to other types if specified.
             * @param message DescribeTableOptionsRequest
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Table.DescribeTableOptionsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this DescribeTableOptionsRequest to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a DescribeTableOptionsResponse. */
        interface IDescribeTableOptionsResponse {

            /** DescribeTableOptionsResponse operation */
            operation?: (Ydb.Operations.IOperation|null);
        }

        /** Represents a DescribeTableOptionsResponse. */
        class DescribeTableOptionsResponse implements IDescribeTableOptionsResponse {

            /**
             * Constructs a new DescribeTableOptionsResponse.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Table.IDescribeTableOptionsResponse);

            /** DescribeTableOptionsResponse operation. */
            public operation?: (Ydb.Operations.IOperation|null);

            /**
             * Creates a new DescribeTableOptionsResponse instance using the specified properties.
             * @param [properties] Properties to set
             * @returns DescribeTableOptionsResponse instance
             */
            public static create(properties?: Ydb.Table.IDescribeTableOptionsResponse): Ydb.Table.DescribeTableOptionsResponse;

            /**
             * Encodes the specified DescribeTableOptionsResponse message. Does not implicitly {@link Ydb.Table.DescribeTableOptionsResponse.verify|verify} messages.
             * @param message DescribeTableOptionsResponse message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Table.IDescribeTableOptionsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified DescribeTableOptionsResponse message, length delimited. Does not implicitly {@link Ydb.Table.DescribeTableOptionsResponse.verify|verify} messages.
             * @param message DescribeTableOptionsResponse message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Table.IDescribeTableOptionsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a DescribeTableOptionsResponse message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns DescribeTableOptionsResponse
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Table.DescribeTableOptionsResponse;

            /**
             * Decodes a DescribeTableOptionsResponse message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns DescribeTableOptionsResponse
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Table.DescribeTableOptionsResponse;

            /**
             * Verifies a DescribeTableOptionsResponse message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a DescribeTableOptionsResponse message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns DescribeTableOptionsResponse
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Table.DescribeTableOptionsResponse;

            /**
             * Creates a plain object from a DescribeTableOptionsResponse message. Also converts values to other types if specified.
             * @param message DescribeTableOptionsResponse
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Table.DescribeTableOptionsResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this DescribeTableOptionsResponse to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a DescribeTableOptionsResult. */
        interface IDescribeTableOptionsResult {

            /** DescribeTableOptionsResult tableProfilePresets */
            tableProfilePresets?: (Ydb.Table.ITableProfileDescription[]|null);

            /** DescribeTableOptionsResult storagePolicyPresets */
            storagePolicyPresets?: (Ydb.Table.IStoragePolicyDescription[]|null);

            /** DescribeTableOptionsResult compactionPolicyPresets */
            compactionPolicyPresets?: (Ydb.Table.ICompactionPolicyDescription[]|null);

            /** DescribeTableOptionsResult partitioningPolicyPresets */
            partitioningPolicyPresets?: (Ydb.Table.IPartitioningPolicyDescription[]|null);

            /** DescribeTableOptionsResult executionPolicyPresets */
            executionPolicyPresets?: (Ydb.Table.IExecutionPolicyDescription[]|null);

            /** DescribeTableOptionsResult replicationPolicyPresets */
            replicationPolicyPresets?: (Ydb.Table.IReplicationPolicyDescription[]|null);

            /** DescribeTableOptionsResult cachingPolicyPresets */
            cachingPolicyPresets?: (Ydb.Table.ICachingPolicyDescription[]|null);
        }

        /** Represents a DescribeTableOptionsResult. */
        class DescribeTableOptionsResult implements IDescribeTableOptionsResult {

            /**
             * Constructs a new DescribeTableOptionsResult.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Table.IDescribeTableOptionsResult);

            /** DescribeTableOptionsResult tableProfilePresets. */
            public tableProfilePresets: Ydb.Table.ITableProfileDescription[];

            /** DescribeTableOptionsResult storagePolicyPresets. */
            public storagePolicyPresets: Ydb.Table.IStoragePolicyDescription[];

            /** DescribeTableOptionsResult compactionPolicyPresets. */
            public compactionPolicyPresets: Ydb.Table.ICompactionPolicyDescription[];

            /** DescribeTableOptionsResult partitioningPolicyPresets. */
            public partitioningPolicyPresets: Ydb.Table.IPartitioningPolicyDescription[];

            /** DescribeTableOptionsResult executionPolicyPresets. */
            public executionPolicyPresets: Ydb.Table.IExecutionPolicyDescription[];

            /** DescribeTableOptionsResult replicationPolicyPresets. */
            public replicationPolicyPresets: Ydb.Table.IReplicationPolicyDescription[];

            /** DescribeTableOptionsResult cachingPolicyPresets. */
            public cachingPolicyPresets: Ydb.Table.ICachingPolicyDescription[];

            /**
             * Creates a new DescribeTableOptionsResult instance using the specified properties.
             * @param [properties] Properties to set
             * @returns DescribeTableOptionsResult instance
             */
            public static create(properties?: Ydb.Table.IDescribeTableOptionsResult): Ydb.Table.DescribeTableOptionsResult;

            /**
             * Encodes the specified DescribeTableOptionsResult message. Does not implicitly {@link Ydb.Table.DescribeTableOptionsResult.verify|verify} messages.
             * @param message DescribeTableOptionsResult message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Table.IDescribeTableOptionsResult, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified DescribeTableOptionsResult message, length delimited. Does not implicitly {@link Ydb.Table.DescribeTableOptionsResult.verify|verify} messages.
             * @param message DescribeTableOptionsResult message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Table.IDescribeTableOptionsResult, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a DescribeTableOptionsResult message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns DescribeTableOptionsResult
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Table.DescribeTableOptionsResult;

            /**
             * Decodes a DescribeTableOptionsResult message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns DescribeTableOptionsResult
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Table.DescribeTableOptionsResult;

            /**
             * Verifies a DescribeTableOptionsResult message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a DescribeTableOptionsResult message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns DescribeTableOptionsResult
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Table.DescribeTableOptionsResult;

            /**
             * Creates a plain object from a DescribeTableOptionsResult message. Also converts values to other types if specified.
             * @param message DescribeTableOptionsResult
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Table.DescribeTableOptionsResult, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this DescribeTableOptionsResult to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a KeyRange. */
        interface IKeyRange {

            /** KeyRange greater */
            greater?: (Ydb.ITypedValue|null);

            /** KeyRange greaterOrEqual */
            greaterOrEqual?: (Ydb.ITypedValue|null);

            /** KeyRange less */
            less?: (Ydb.ITypedValue|null);

            /** KeyRange lessOrEqual */
            lessOrEqual?: (Ydb.ITypedValue|null);
        }

        /** Represents a KeyRange. */
        class KeyRange implements IKeyRange {

            /**
             * Constructs a new KeyRange.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Table.IKeyRange);

            /** KeyRange greater. */
            public greater?: (Ydb.ITypedValue|null);

            /** KeyRange greaterOrEqual. */
            public greaterOrEqual?: (Ydb.ITypedValue|null);

            /** KeyRange less. */
            public less?: (Ydb.ITypedValue|null);

            /** KeyRange lessOrEqual. */
            public lessOrEqual?: (Ydb.ITypedValue|null);

            /** KeyRange fromBound. */
            public fromBound?: ("greater"|"greaterOrEqual");

            /** KeyRange toBound. */
            public toBound?: ("less"|"lessOrEqual");

            /**
             * Creates a new KeyRange instance using the specified properties.
             * @param [properties] Properties to set
             * @returns KeyRange instance
             */
            public static create(properties?: Ydb.Table.IKeyRange): Ydb.Table.KeyRange;

            /**
             * Encodes the specified KeyRange message. Does not implicitly {@link Ydb.Table.KeyRange.verify|verify} messages.
             * @param message KeyRange message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Table.IKeyRange, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified KeyRange message, length delimited. Does not implicitly {@link Ydb.Table.KeyRange.verify|verify} messages.
             * @param message KeyRange message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Table.IKeyRange, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a KeyRange message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns KeyRange
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Table.KeyRange;

            /**
             * Decodes a KeyRange message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns KeyRange
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Table.KeyRange;

            /**
             * Verifies a KeyRange message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a KeyRange message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns KeyRange
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Table.KeyRange;

            /**
             * Creates a plain object from a KeyRange message. Also converts values to other types if specified.
             * @param message KeyRange
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Table.KeyRange, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this KeyRange to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a ReadTableRequest. */
        interface IReadTableRequest {

            /** ReadTableRequest sessionId */
            sessionId?: (string|null);

            /** ReadTableRequest path */
            path?: (string|null);

            /** ReadTableRequest keyRange */
            keyRange?: (Ydb.Table.IKeyRange|null);

            /** ReadTableRequest columns */
            columns?: (string[]|null);

            /** ReadTableRequest ordered */
            ordered?: (boolean|null);

            /** ReadTableRequest rowLimit */
            rowLimit?: (number|Long|null);

            /** ReadTableRequest useSnapshot */
            useSnapshot?: (Ydb.FeatureFlag.Status|null);

            /** ReadTableRequest batchLimitBytes */
            batchLimitBytes?: (number|Long|null);

            /** ReadTableRequest batchLimitRows */
            batchLimitRows?: (number|Long|null);

            /** ReadTableRequest returnNotNullDataAsOptional */
            returnNotNullDataAsOptional?: (Ydb.FeatureFlag.Status|null);
        }

        /** Represents a ReadTableRequest. */
        class ReadTableRequest implements IReadTableRequest {

            /**
             * Constructs a new ReadTableRequest.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Table.IReadTableRequest);

            /** ReadTableRequest sessionId. */
            public sessionId: string;

            /** ReadTableRequest path. */
            public path: string;

            /** ReadTableRequest keyRange. */
            public keyRange?: (Ydb.Table.IKeyRange|null);

            /** ReadTableRequest columns. */
            public columns: string[];

            /** ReadTableRequest ordered. */
            public ordered: boolean;

            /** ReadTableRequest rowLimit. */
            public rowLimit: (number|Long);

            /** ReadTableRequest useSnapshot. */
            public useSnapshot: Ydb.FeatureFlag.Status;

            /** ReadTableRequest batchLimitBytes. */
            public batchLimitBytes: (number|Long);

            /** ReadTableRequest batchLimitRows. */
            public batchLimitRows: (number|Long);

            /** ReadTableRequest returnNotNullDataAsOptional. */
            public returnNotNullDataAsOptional: Ydb.FeatureFlag.Status;

            /**
             * Creates a new ReadTableRequest instance using the specified properties.
             * @param [properties] Properties to set
             * @returns ReadTableRequest instance
             */
            public static create(properties?: Ydb.Table.IReadTableRequest): Ydb.Table.ReadTableRequest;

            /**
             * Encodes the specified ReadTableRequest message. Does not implicitly {@link Ydb.Table.ReadTableRequest.verify|verify} messages.
             * @param message ReadTableRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Table.IReadTableRequest, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified ReadTableRequest message, length delimited. Does not implicitly {@link Ydb.Table.ReadTableRequest.verify|verify} messages.
             * @param message ReadTableRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Table.IReadTableRequest, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a ReadTableRequest message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns ReadTableRequest
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Table.ReadTableRequest;

            /**
             * Decodes a ReadTableRequest message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns ReadTableRequest
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Table.ReadTableRequest;

            /**
             * Verifies a ReadTableRequest message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a ReadTableRequest message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns ReadTableRequest
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Table.ReadTableRequest;

            /**
             * Creates a plain object from a ReadTableRequest message. Also converts values to other types if specified.
             * @param message ReadTableRequest
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Table.ReadTableRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this ReadTableRequest to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a ReadTableResponse. */
        interface IReadTableResponse {

            /** ReadTableResponse status */
            status?: (Ydb.StatusIds.StatusCode|null);

            /** ReadTableResponse issues */
            issues?: (Ydb.Issue.IIssueMessage[]|null);

            /** ReadTableResponse snapshot */
            snapshot?: (Ydb.IVirtualTimestamp|null);

            /** ReadTableResponse result */
            result?: (Ydb.Table.IReadTableResult|null);
        }

        /** Represents a ReadTableResponse. */
        class ReadTableResponse implements IReadTableResponse {

            /**
             * Constructs a new ReadTableResponse.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Table.IReadTableResponse);

            /** ReadTableResponse status. */
            public status: Ydb.StatusIds.StatusCode;

            /** ReadTableResponse issues. */
            public issues: Ydb.Issue.IIssueMessage[];

            /** ReadTableResponse snapshot. */
            public snapshot?: (Ydb.IVirtualTimestamp|null);

            /** ReadTableResponse result. */
            public result?: (Ydb.Table.IReadTableResult|null);

            /**
             * Creates a new ReadTableResponse instance using the specified properties.
             * @param [properties] Properties to set
             * @returns ReadTableResponse instance
             */
            public static create(properties?: Ydb.Table.IReadTableResponse): Ydb.Table.ReadTableResponse;

            /**
             * Encodes the specified ReadTableResponse message. Does not implicitly {@link Ydb.Table.ReadTableResponse.verify|verify} messages.
             * @param message ReadTableResponse message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Table.IReadTableResponse, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified ReadTableResponse message, length delimited. Does not implicitly {@link Ydb.Table.ReadTableResponse.verify|verify} messages.
             * @param message ReadTableResponse message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Table.IReadTableResponse, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a ReadTableResponse message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns ReadTableResponse
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Table.ReadTableResponse;

            /**
             * Decodes a ReadTableResponse message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns ReadTableResponse
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Table.ReadTableResponse;

            /**
             * Verifies a ReadTableResponse message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a ReadTableResponse message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns ReadTableResponse
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Table.ReadTableResponse;

            /**
             * Creates a plain object from a ReadTableResponse message. Also converts values to other types if specified.
             * @param message ReadTableResponse
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Table.ReadTableResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this ReadTableResponse to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a ReadTableResult. */
        interface IReadTableResult {

            /** ReadTableResult resultSet */
            resultSet?: (Ydb.IResultSet|null);
        }

        /** Represents a ReadTableResult. */
        class ReadTableResult implements IReadTableResult {

            /**
             * Constructs a new ReadTableResult.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Table.IReadTableResult);

            /** ReadTableResult resultSet. */
            public resultSet?: (Ydb.IResultSet|null);

            /**
             * Creates a new ReadTableResult instance using the specified properties.
             * @param [properties] Properties to set
             * @returns ReadTableResult instance
             */
            public static create(properties?: Ydb.Table.IReadTableResult): Ydb.Table.ReadTableResult;

            /**
             * Encodes the specified ReadTableResult message. Does not implicitly {@link Ydb.Table.ReadTableResult.verify|verify} messages.
             * @param message ReadTableResult message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Table.IReadTableResult, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified ReadTableResult message, length delimited. Does not implicitly {@link Ydb.Table.ReadTableResult.verify|verify} messages.
             * @param message ReadTableResult message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Table.IReadTableResult, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a ReadTableResult message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns ReadTableResult
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Table.ReadTableResult;

            /**
             * Decodes a ReadTableResult message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns ReadTableResult
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Table.ReadTableResult;

            /**
             * Verifies a ReadTableResult message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a ReadTableResult message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns ReadTableResult
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Table.ReadTableResult;

            /**
             * Creates a plain object from a ReadTableResult message. Also converts values to other types if specified.
             * @param message ReadTableResult
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Table.ReadTableResult, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this ReadTableResult to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a ReadRowsRequest. */
        interface IReadRowsRequest {

            /** ReadRowsRequest sessionId */
            sessionId?: (string|null);

            /** ReadRowsRequest path */
            path?: (string|null);

            /** ReadRowsRequest keys */
            keys?: (Ydb.ITypedValue|null);

            /** ReadRowsRequest columns */
            columns?: (string[]|null);
        }

        /** Represents a ReadRowsRequest. */
        class ReadRowsRequest implements IReadRowsRequest {

            /**
             * Constructs a new ReadRowsRequest.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Table.IReadRowsRequest);

            /** ReadRowsRequest sessionId. */
            public sessionId: string;

            /** ReadRowsRequest path. */
            public path: string;

            /** ReadRowsRequest keys. */
            public keys?: (Ydb.ITypedValue|null);

            /** ReadRowsRequest columns. */
            public columns: string[];

            /**
             * Creates a new ReadRowsRequest instance using the specified properties.
             * @param [properties] Properties to set
             * @returns ReadRowsRequest instance
             */
            public static create(properties?: Ydb.Table.IReadRowsRequest): Ydb.Table.ReadRowsRequest;

            /**
             * Encodes the specified ReadRowsRequest message. Does not implicitly {@link Ydb.Table.ReadRowsRequest.verify|verify} messages.
             * @param message ReadRowsRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Table.IReadRowsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified ReadRowsRequest message, length delimited. Does not implicitly {@link Ydb.Table.ReadRowsRequest.verify|verify} messages.
             * @param message ReadRowsRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Table.IReadRowsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a ReadRowsRequest message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns ReadRowsRequest
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Table.ReadRowsRequest;

            /**
             * Decodes a ReadRowsRequest message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns ReadRowsRequest
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Table.ReadRowsRequest;

            /**
             * Verifies a ReadRowsRequest message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a ReadRowsRequest message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns ReadRowsRequest
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Table.ReadRowsRequest;

            /**
             * Creates a plain object from a ReadRowsRequest message. Also converts values to other types if specified.
             * @param message ReadRowsRequest
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Table.ReadRowsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this ReadRowsRequest to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a ReadRowsResponse. */
        interface IReadRowsResponse {

            /** ReadRowsResponse status */
            status?: (Ydb.StatusIds.StatusCode|null);

            /** ReadRowsResponse issues */
            issues?: (Ydb.Issue.IIssueMessage[]|null);

            /** ReadRowsResponse resultSet */
            resultSet?: (Ydb.IResultSet|null);
        }

        /** Represents a ReadRowsResponse. */
        class ReadRowsResponse implements IReadRowsResponse {

            /**
             * Constructs a new ReadRowsResponse.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Table.IReadRowsResponse);

            /** ReadRowsResponse status. */
            public status: Ydb.StatusIds.StatusCode;

            /** ReadRowsResponse issues. */
            public issues: Ydb.Issue.IIssueMessage[];

            /** ReadRowsResponse resultSet. */
            public resultSet?: (Ydb.IResultSet|null);

            /**
             * Creates a new ReadRowsResponse instance using the specified properties.
             * @param [properties] Properties to set
             * @returns ReadRowsResponse instance
             */
            public static create(properties?: Ydb.Table.IReadRowsResponse): Ydb.Table.ReadRowsResponse;

            /**
             * Encodes the specified ReadRowsResponse message. Does not implicitly {@link Ydb.Table.ReadRowsResponse.verify|verify} messages.
             * @param message ReadRowsResponse message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Table.IReadRowsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified ReadRowsResponse message, length delimited. Does not implicitly {@link Ydb.Table.ReadRowsResponse.verify|verify} messages.
             * @param message ReadRowsResponse message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Table.IReadRowsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a ReadRowsResponse message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns ReadRowsResponse
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Table.ReadRowsResponse;

            /**
             * Decodes a ReadRowsResponse message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns ReadRowsResponse
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Table.ReadRowsResponse;

            /**
             * Verifies a ReadRowsResponse message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a ReadRowsResponse message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns ReadRowsResponse
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Table.ReadRowsResponse;

            /**
             * Creates a plain object from a ReadRowsResponse message. Also converts values to other types if specified.
             * @param message ReadRowsResponse
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Table.ReadRowsResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this ReadRowsResponse to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a BulkUpsertRequest. */
        interface IBulkUpsertRequest {

            /** BulkUpsertRequest table */
            table?: (string|null);

            /** BulkUpsertRequest rows */
            rows?: (Ydb.ITypedValue|null);

            /** BulkUpsertRequest operationParams */
            operationParams?: (Ydb.Operations.IOperationParams|null);

            /** BulkUpsertRequest arrowBatchSettings */
            arrowBatchSettings?: (Ydb.Formats.IArrowBatchSettings|null);

            /** BulkUpsertRequest csvSettings */
            csvSettings?: (Ydb.Formats.ICsvSettings|null);

            /** BulkUpsertRequest data */
            data?: (Uint8Array|null);
        }

        /** Represents a BulkUpsertRequest. */
        class BulkUpsertRequest implements IBulkUpsertRequest {

            /**
             * Constructs a new BulkUpsertRequest.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Table.IBulkUpsertRequest);

            /** BulkUpsertRequest table. */
            public table: string;

            /** BulkUpsertRequest rows. */
            public rows?: (Ydb.ITypedValue|null);

            /** BulkUpsertRequest operationParams. */
            public operationParams?: (Ydb.Operations.IOperationParams|null);

            /** BulkUpsertRequest arrowBatchSettings. */
            public arrowBatchSettings?: (Ydb.Formats.IArrowBatchSettings|null);

            /** BulkUpsertRequest csvSettings. */
            public csvSettings?: (Ydb.Formats.ICsvSettings|null);

            /** BulkUpsertRequest data. */
            public data: Uint8Array;

            /** BulkUpsertRequest dataFormat. */
            public dataFormat?: ("arrowBatchSettings"|"csvSettings");

            /**
             * Creates a new BulkUpsertRequest instance using the specified properties.
             * @param [properties] Properties to set
             * @returns BulkUpsertRequest instance
             */
            public static create(properties?: Ydb.Table.IBulkUpsertRequest): Ydb.Table.BulkUpsertRequest;

            /**
             * Encodes the specified BulkUpsertRequest message. Does not implicitly {@link Ydb.Table.BulkUpsertRequest.verify|verify} messages.
             * @param message BulkUpsertRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Table.IBulkUpsertRequest, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified BulkUpsertRequest message, length delimited. Does not implicitly {@link Ydb.Table.BulkUpsertRequest.verify|verify} messages.
             * @param message BulkUpsertRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Table.IBulkUpsertRequest, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a BulkUpsertRequest message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns BulkUpsertRequest
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Table.BulkUpsertRequest;

            /**
             * Decodes a BulkUpsertRequest message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns BulkUpsertRequest
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Table.BulkUpsertRequest;

            /**
             * Verifies a BulkUpsertRequest message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a BulkUpsertRequest message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns BulkUpsertRequest
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Table.BulkUpsertRequest;

            /**
             * Creates a plain object from a BulkUpsertRequest message. Also converts values to other types if specified.
             * @param message BulkUpsertRequest
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Table.BulkUpsertRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this BulkUpsertRequest to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a BulkUpsertResponse. */
        interface IBulkUpsertResponse {

            /** BulkUpsertResponse operation */
            operation?: (Ydb.Operations.IOperation|null);
        }

        /** Represents a BulkUpsertResponse. */
        class BulkUpsertResponse implements IBulkUpsertResponse {

            /**
             * Constructs a new BulkUpsertResponse.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Table.IBulkUpsertResponse);

            /** BulkUpsertResponse operation. */
            public operation?: (Ydb.Operations.IOperation|null);

            /**
             * Creates a new BulkUpsertResponse instance using the specified properties.
             * @param [properties] Properties to set
             * @returns BulkUpsertResponse instance
             */
            public static create(properties?: Ydb.Table.IBulkUpsertResponse): Ydb.Table.BulkUpsertResponse;

            /**
             * Encodes the specified BulkUpsertResponse message. Does not implicitly {@link Ydb.Table.BulkUpsertResponse.verify|verify} messages.
             * @param message BulkUpsertResponse message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Table.IBulkUpsertResponse, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified BulkUpsertResponse message, length delimited. Does not implicitly {@link Ydb.Table.BulkUpsertResponse.verify|verify} messages.
             * @param message BulkUpsertResponse message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Table.IBulkUpsertResponse, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a BulkUpsertResponse message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns BulkUpsertResponse
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Table.BulkUpsertResponse;

            /**
             * Decodes a BulkUpsertResponse message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns BulkUpsertResponse
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Table.BulkUpsertResponse;

            /**
             * Verifies a BulkUpsertResponse message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a BulkUpsertResponse message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns BulkUpsertResponse
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Table.BulkUpsertResponse;

            /**
             * Creates a plain object from a BulkUpsertResponse message. Also converts values to other types if specified.
             * @param message BulkUpsertResponse
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Table.BulkUpsertResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this BulkUpsertResponse to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a BulkUpsertResult. */
        interface IBulkUpsertResult {
        }

        /** Represents a BulkUpsertResult. */
        class BulkUpsertResult implements IBulkUpsertResult {

            /**
             * Constructs a new BulkUpsertResult.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Table.IBulkUpsertResult);

            /**
             * Creates a new BulkUpsertResult instance using the specified properties.
             * @param [properties] Properties to set
             * @returns BulkUpsertResult instance
             */
            public static create(properties?: Ydb.Table.IBulkUpsertResult): Ydb.Table.BulkUpsertResult;

            /**
             * Encodes the specified BulkUpsertResult message. Does not implicitly {@link Ydb.Table.BulkUpsertResult.verify|verify} messages.
             * @param message BulkUpsertResult message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Table.IBulkUpsertResult, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified BulkUpsertResult message, length delimited. Does not implicitly {@link Ydb.Table.BulkUpsertResult.verify|verify} messages.
             * @param message BulkUpsertResult message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Table.IBulkUpsertResult, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a BulkUpsertResult message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns BulkUpsertResult
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Table.BulkUpsertResult;

            /**
             * Decodes a BulkUpsertResult message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns BulkUpsertResult
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Table.BulkUpsertResult;

            /**
             * Verifies a BulkUpsertResult message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a BulkUpsertResult message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns BulkUpsertResult
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Table.BulkUpsertResult;

            /**
             * Creates a plain object from a BulkUpsertResult message. Also converts values to other types if specified.
             * @param message BulkUpsertResult
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Table.BulkUpsertResult, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this BulkUpsertResult to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of an ExecuteScanQueryRequest. */
        interface IExecuteScanQueryRequest {

            /** ExecuteScanQueryRequest query */
            query?: (Ydb.Table.IQuery|null);

            /** ExecuteScanQueryRequest parameters */
            parameters?: ({ [k: string]: Ydb.ITypedValue }|null);

            /** ExecuteScanQueryRequest mode */
            mode?: (Ydb.Table.ExecuteScanQueryRequest.Mode|null);

            /** ExecuteScanQueryRequest collectStats */
            collectStats?: (Ydb.Table.QueryStatsCollection.Mode|null);

            /** ExecuteScanQueryRequest collectFullDiagnostics */
            collectFullDiagnostics?: (boolean|null);
        }

        /** Represents an ExecuteScanQueryRequest. */
        class ExecuteScanQueryRequest implements IExecuteScanQueryRequest {

            /**
             * Constructs a new ExecuteScanQueryRequest.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Table.IExecuteScanQueryRequest);

            /** ExecuteScanQueryRequest query. */
            public query?: (Ydb.Table.IQuery|null);

            /** ExecuteScanQueryRequest parameters. */
            public parameters: { [k: string]: Ydb.ITypedValue };

            /** ExecuteScanQueryRequest mode. */
            public mode: Ydb.Table.ExecuteScanQueryRequest.Mode;

            /** ExecuteScanQueryRequest collectStats. */
            public collectStats: Ydb.Table.QueryStatsCollection.Mode;

            /** ExecuteScanQueryRequest collectFullDiagnostics. */
            public collectFullDiagnostics: boolean;

            /**
             * Creates a new ExecuteScanQueryRequest instance using the specified properties.
             * @param [properties] Properties to set
             * @returns ExecuteScanQueryRequest instance
             */
            public static create(properties?: Ydb.Table.IExecuteScanQueryRequest): Ydb.Table.ExecuteScanQueryRequest;

            /**
             * Encodes the specified ExecuteScanQueryRequest message. Does not implicitly {@link Ydb.Table.ExecuteScanQueryRequest.verify|verify} messages.
             * @param message ExecuteScanQueryRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Table.IExecuteScanQueryRequest, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified ExecuteScanQueryRequest message, length delimited. Does not implicitly {@link Ydb.Table.ExecuteScanQueryRequest.verify|verify} messages.
             * @param message ExecuteScanQueryRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Table.IExecuteScanQueryRequest, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes an ExecuteScanQueryRequest message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns ExecuteScanQueryRequest
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Table.ExecuteScanQueryRequest;

            /**
             * Decodes an ExecuteScanQueryRequest message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns ExecuteScanQueryRequest
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Table.ExecuteScanQueryRequest;

            /**
             * Verifies an ExecuteScanQueryRequest message.
             * @param message Plain 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 ExecuteScanQueryRequest message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns ExecuteScanQueryRequest
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Table.ExecuteScanQueryRequest;

            /**
             * Creates a plain object from an ExecuteScanQueryRequest message. Also converts values to other types if specified.
             * @param message ExecuteScanQueryRequest
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Table.ExecuteScanQueryRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this ExecuteScanQueryRequest to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        namespace ExecuteScanQueryRequest {

            /** Mode enum. */
            enum Mode {
                MODE_UNSPECIFIED = 0,
                MODE_EXPLAIN = 1,
                MODE_EXEC = 3
            }
        }

        /** Properties of an ExecuteScanQueryPartialResponse. */
        interface IExecuteScanQueryPartialResponse {

            /** ExecuteScanQueryPartialResponse status */
            status?: (Ydb.StatusIds.StatusCode|null);

            /** ExecuteScanQueryPartialResponse issues */
            issues?: (Ydb.Issue.IIssueMessage[]|null);

            /** ExecuteScanQueryPartialResponse result */
            result?: (Ydb.Table.IExecuteScanQueryPartialResult|null);
        }

        /** Represents an ExecuteScanQueryPartialResponse. */
        class ExecuteScanQueryPartialResponse implements IExecuteScanQueryPartialResponse {

            /**
             * Constructs a new ExecuteScanQueryPartialResponse.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Table.IExecuteScanQueryPartialResponse);

            /** ExecuteScanQueryPartialResponse status. */
            public status: Ydb.StatusIds.StatusCode;

            /** ExecuteScanQueryPartialResponse issues. */
            public issues: Ydb.Issue.IIssueMessage[];

            /** ExecuteScanQueryPartialResponse result. */
            public result?: (Ydb.Table.IExecuteScanQueryPartialResult|null);

            /**
             * Creates a new ExecuteScanQueryPartialResponse instance using the specified properties.
             * @param [properties] Properties to set
             * @returns ExecuteScanQueryPartialResponse instance
             */
            public static create(properties?: Ydb.Table.IExecuteScanQueryPartialResponse): Ydb.Table.ExecuteScanQueryPartialResponse;

            /**
             * Encodes the specified ExecuteScanQueryPartialResponse message. Does not implicitly {@link Ydb.Table.ExecuteScanQueryPartialResponse.verify|verify} messages.
             * @param message ExecuteScanQueryPartialResponse message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Table.IExecuteScanQueryPartialResponse, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified ExecuteScanQueryPartialResponse message, length delimited. Does not implicitly {@link Ydb.Table.ExecuteScanQueryPartialResponse.verify|verify} messages.
             * @param message ExecuteScanQueryPartialResponse message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Table.IExecuteScanQueryPartialResponse, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes an ExecuteScanQueryPartialResponse message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns ExecuteScanQueryPartialResponse
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Table.ExecuteScanQueryPartialResponse;

            /**
             * Decodes an ExecuteScanQueryPartialResponse message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns ExecuteScanQueryPartialResponse
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Table.ExecuteScanQueryPartialResponse;

            /**
             * Verifies an ExecuteScanQueryPartialResponse message.
             * @param message Plain 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 ExecuteScanQueryPartialResponse message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns ExecuteScanQueryPartialResponse
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Table.ExecuteScanQueryPartialResponse;

            /**
             * Creates a plain object from an ExecuteScanQueryPartialResponse message. Also converts values to other types if specified.
             * @param message ExecuteScanQueryPartialResponse
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Table.ExecuteScanQueryPartialResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this ExecuteScanQueryPartialResponse to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of an ExecuteScanQueryPartialResult. */
        interface IExecuteScanQueryPartialResult {

            /** ExecuteScanQueryPartialResult resultSet */
            resultSet?: (Ydb.IResultSet|null);

            /** ExecuteScanQueryPartialResult queryStats */
            queryStats?: (Ydb.TableStats.IQueryStats|null);

            /** ExecuteScanQueryPartialResult queryFullDiagnostics */
            queryFullDiagnostics?: (string|null);
        }

        /** Represents an ExecuteScanQueryPartialResult. */
        class ExecuteScanQueryPartialResult implements IExecuteScanQueryPartialResult {

            /**
             * Constructs a new ExecuteScanQueryPartialResult.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Table.IExecuteScanQueryPartialResult);

            /** ExecuteScanQueryPartialResult resultSet. */
            public resultSet?: (Ydb.IResultSet|null);

            /** ExecuteScanQueryPartialResult queryStats. */
            public queryStats?: (Ydb.TableStats.IQueryStats|null);

            /** ExecuteScanQueryPartialResult queryFullDiagnostics. */
            public queryFullDiagnostics: string;

            /**
             * Creates a new ExecuteScanQueryPartialResult instance using the specified properties.
             * @param [properties] Properties to set
             * @returns ExecuteScanQueryPartialResult instance
             */
            public static create(properties?: Ydb.Table.IExecuteScanQueryPartialResult): Ydb.Table.ExecuteScanQueryPartialResult;

            /**
             * Encodes the specified ExecuteScanQueryPartialResult message. Does not implicitly {@link Ydb.Table.ExecuteScanQueryPartialResult.verify|verify} messages.
             * @param message ExecuteScanQueryPartialResult message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Table.IExecuteScanQueryPartialResult, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified ExecuteScanQueryPartialResult message, length delimited. Does not implicitly {@link Ydb.Table.ExecuteScanQueryPartialResult.verify|verify} messages.
             * @param message ExecuteScanQueryPartialResult message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Table.IExecuteScanQueryPartialResult, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes an ExecuteScanQueryPartialResult message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns ExecuteScanQueryPartialResult
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Table.ExecuteScanQueryPartialResult;

            /**
             * Decodes an ExecuteScanQueryPartialResult message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns ExecuteScanQueryPartialResult
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Table.ExecuteScanQueryPartialResult;

            /**
             * Verifies an ExecuteScanQueryPartialResult message.
             * @param message Plain 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 ExecuteScanQueryPartialResult message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns ExecuteScanQueryPartialResult
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Table.ExecuteScanQueryPartialResult;

            /**
             * Creates a plain object from an ExecuteScanQueryPartialResult message. Also converts values to other types if specified.
             * @param message ExecuteScanQueryPartialResult
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Table.ExecuteScanQueryPartialResult, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this ExecuteScanQueryPartialResult to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Namespace V1. */
        namespace V1 {

            /** Represents a TableService */
            class TableService extends $protobuf.rpc.Service {

                /**
                 * Constructs a new TableService 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 TableService 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): TableService;

                /**
                 * Calls CreateSession.
                 * @param request CreateSessionRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and CreateSessionResponse
                 */
                public createSession(request: Ydb.Table.ICreateSessionRequest, callback: Ydb.Table.V1.TableService.CreateSessionCallback): void;

                /**
                 * Calls CreateSession.
                 * @param request CreateSessionRequest message or plain object
                 * @returns Promise
                 */
                public createSession(request: Ydb.Table.ICreateSessionRequest): Promise<Ydb.Table.CreateSessionResponse>;

                /**
                 * Calls DeleteSession.
                 * @param request DeleteSessionRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and DeleteSessionResponse
                 */
                public deleteSession(request: Ydb.Table.IDeleteSessionRequest, callback: Ydb.Table.V1.TableService.DeleteSessionCallback): void;

                /**
                 * Calls DeleteSession.
                 * @param request DeleteSessionRequest message or plain object
                 * @returns Promise
                 */
                public deleteSession(request: Ydb.Table.IDeleteSessionRequest): Promise<Ydb.Table.DeleteSessionResponse>;

                /**
                 * Calls KeepAlive.
                 * @param request KeepAliveRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and KeepAliveResponse
                 */
                public keepAlive(request: Ydb.Table.IKeepAliveRequest, callback: Ydb.Table.V1.TableService.KeepAliveCallback): void;

                /**
                 * Calls KeepAlive.
                 * @param request KeepAliveRequest message or plain object
                 * @returns Promise
                 */
                public keepAlive(request: Ydb.Table.IKeepAliveRequest): Promise<Ydb.Table.KeepAliveResponse>;

                /**
                 * Calls CreateTable.
                 * @param request CreateTableRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and CreateTableResponse
                 */
                public createTable(request: Ydb.Table.ICreateTableRequest, callback: Ydb.Table.V1.TableService.CreateTableCallback): void;

                /**
                 * Calls CreateTable.
                 * @param request CreateTableRequest message or plain object
                 * @returns Promise
                 */
                public createTable(request: Ydb.Table.ICreateTableRequest): Promise<Ydb.Table.CreateTableResponse>;

                /**
                 * Calls DropTable.
                 * @param request DropTableRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and DropTableResponse
                 */
                public dropTable(request: Ydb.Table.IDropTableRequest, callback: Ydb.Table.V1.TableService.DropTableCallback): void;

                /**
                 * Calls DropTable.
                 * @param request DropTableRequest message or plain object
                 * @returns Promise
                 */
                public dropTable(request: Ydb.Table.IDropTableRequest): Promise<Ydb.Table.DropTableResponse>;

                /**
                 * Calls AlterTable.
                 * @param request AlterTableRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and AlterTableResponse
                 */
                public alterTable(request: Ydb.Table.IAlterTableRequest, callback: Ydb.Table.V1.TableService.AlterTableCallback): void;

                /**
                 * Calls AlterTable.
                 * @param request AlterTableRequest message or plain object
                 * @returns Promise
                 */
                public alterTable(request: Ydb.Table.IAlterTableRequest): Promise<Ydb.Table.AlterTableResponse>;

                /**
                 * Calls CopyTable.
                 * @param request CopyTableRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and CopyTableResponse
                 */
                public copyTable(request: Ydb.Table.ICopyTableRequest, callback: Ydb.Table.V1.TableService.CopyTableCallback): void;

                /**
                 * Calls CopyTable.
                 * @param request CopyTableRequest message or plain object
                 * @returns Promise
                 */
                public copyTable(request: Ydb.Table.ICopyTableRequest): Promise<Ydb.Table.CopyTableResponse>;

                /**
                 * Calls CopyTables.
                 * @param request CopyTablesRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and CopyTablesResponse
                 */
                public copyTables(request: Ydb.Table.ICopyTablesRequest, callback: Ydb.Table.V1.TableService.CopyTablesCallback): void;

                /**
                 * Calls CopyTables.
                 * @param request CopyTablesRequest message or plain object
                 * @returns Promise
                 */
                public copyTables(request: Ydb.Table.ICopyTablesRequest): Promise<Ydb.Table.CopyTablesResponse>;

                /**
                 * Calls RenameTables.
                 * @param request RenameTablesRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and RenameTablesResponse
                 */
                public renameTables(request: Ydb.Table.IRenameTablesRequest, callback: Ydb.Table.V1.TableService.RenameTablesCallback): void;

                /**
                 * Calls RenameTables.
                 * @param request RenameTablesRequest message or plain object
                 * @returns Promise
                 */
                public renameTables(request: Ydb.Table.IRenameTablesRequest): Promise<Ydb.Table.RenameTablesResponse>;

                /**
                 * Calls DescribeTable.
                 * @param request DescribeTableRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and DescribeTableResponse
                 */
                public describeTable(request: Ydb.Table.IDescribeTableRequest, callback: Ydb.Table.V1.TableService.DescribeTableCallback): void;

                /**
                 * Calls DescribeTable.
                 * @param request DescribeTableRequest message or plain object
                 * @returns Promise
                 */
                public describeTable(request: Ydb.Table.IDescribeTableRequest): Promise<Ydb.Table.DescribeTableResponse>;

                /**
                 * Calls ExplainDataQuery.
                 * @param request ExplainDataQueryRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and ExplainDataQueryResponse
                 */
                public explainDataQuery(request: Ydb.Table.IExplainDataQueryRequest, callback: Ydb.Table.V1.TableService.ExplainDataQueryCallback): void;

                /**
                 * Calls ExplainDataQuery.
                 * @param request ExplainDataQueryRequest message or plain object
                 * @returns Promise
                 */
                public explainDataQuery(request: Ydb.Table.IExplainDataQueryRequest): Promise<Ydb.Table.ExplainDataQueryResponse>;

                /**
                 * Calls PrepareDataQuery.
                 * @param request PrepareDataQueryRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and PrepareDataQueryResponse
                 */
                public prepareDataQuery(request: Ydb.Table.IPrepareDataQueryRequest, callback: Ydb.Table.V1.TableService.PrepareDataQueryCallback): void;

                /**
                 * Calls PrepareDataQuery.
                 * @param request PrepareDataQueryRequest message or plain object
                 * @returns Promise
                 */
                public prepareDataQuery(request: Ydb.Table.IPrepareDataQueryRequest): Promise<Ydb.Table.PrepareDataQueryResponse>;

                /**
                 * Calls ExecuteDataQuery.
                 * @param request ExecuteDataQueryRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and ExecuteDataQueryResponse
                 */
                public executeDataQuery(request: Ydb.Table.IExecuteDataQueryRequest, callback: Ydb.Table.V1.TableService.ExecuteDataQueryCallback): void;

                /**
                 * Calls ExecuteDataQuery.
                 * @param request ExecuteDataQueryRequest message or plain object
                 * @returns Promise
                 */
                public executeDataQuery(request: Ydb.Table.IExecuteDataQueryRequest): Promise<Ydb.Table.ExecuteDataQueryResponse>;

                /**
                 * Calls ExecuteSchemeQuery.
                 * @param request ExecuteSchemeQueryRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and ExecuteSchemeQueryResponse
                 */
                public executeSchemeQuery(request: Ydb.Table.IExecuteSchemeQueryRequest, callback: Ydb.Table.V1.TableService.ExecuteSchemeQueryCallback): void;

                /**
                 * Calls ExecuteSchemeQuery.
                 * @param request ExecuteSchemeQueryRequest message or plain object
                 * @returns Promise
                 */
                public executeSchemeQuery(request: Ydb.Table.IExecuteSchemeQueryRequest): Promise<Ydb.Table.ExecuteSchemeQueryResponse>;

                /**
                 * Calls BeginTransaction.
                 * @param request BeginTransactionRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and BeginTransactionResponse
                 */
                public beginTransaction(request: Ydb.Table.IBeginTransactionRequest, callback: Ydb.Table.V1.TableService.BeginTransactionCallback): void;

                /**
                 * Calls BeginTransaction.
                 * @param request BeginTransactionRequest message or plain object
                 * @returns Promise
                 */
                public beginTransaction(request: Ydb.Table.IBeginTransactionRequest): Promise<Ydb.Table.BeginTransactionResponse>;

                /**
                 * Calls CommitTransaction.
                 * @param request CommitTransactionRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and CommitTransactionResponse
                 */
                public commitTransaction(request: Ydb.Table.ICommitTransactionRequest, callback: Ydb.Table.V1.TableService.CommitTransactionCallback): void;

                /**
                 * Calls CommitTransaction.
                 * @param request CommitTransactionRequest message or plain object
                 * @returns Promise
                 */
                public commitTransaction(request: Ydb.Table.ICommitTransactionRequest): Promise<Ydb.Table.CommitTransactionResponse>;

                /**
                 * Calls RollbackTransaction.
                 * @param request RollbackTransactionRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and RollbackTransactionResponse
                 */
                public rollbackTransaction(request: Ydb.Table.IRollbackTransactionRequest, callback: Ydb.Table.V1.TableService.RollbackTransactionCallback): void;

                /**
                 * Calls RollbackTransaction.
                 * @param request RollbackTransactionRequest message or plain object
                 * @returns Promise
                 */
                public rollbackTransaction(request: Ydb.Table.IRollbackTransactionRequest): Promise<Ydb.Table.RollbackTransactionResponse>;

                /**
                 * Calls DescribeTableOptions.
                 * @param request DescribeTableOptionsRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and DescribeTableOptionsResponse
                 */
                public describeTableOptions(request: Ydb.Table.IDescribeTableOptionsRequest, callback: Ydb.Table.V1.TableService.DescribeTableOptionsCallback): void;

                /**
                 * Calls DescribeTableOptions.
                 * @param request DescribeTableOptionsRequest message or plain object
                 * @returns Promise
                 */
                public describeTableOptions(request: Ydb.Table.IDescribeTableOptionsRequest): Promise<Ydb.Table.DescribeTableOptionsResponse>;

                /**
                 * Calls StreamReadTable.
                 * @param request ReadTableRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and ReadTableResponse
                 */
                public streamReadTable(request: Ydb.Table.IReadTableRequest, callback: Ydb.Table.V1.TableService.StreamReadTableCallback): void;

                /**
                 * Calls StreamReadTable.
                 * @param request ReadTableRequest message or plain object
                 * @returns Promise
                 */
                public streamReadTable(request: Ydb.Table.IReadTableRequest): Promise<Ydb.Table.ReadTableResponse>;

                /**
                 * Calls ReadRows.
                 * @param request ReadRowsRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and ReadRowsResponse
                 */
                public readRows(request: Ydb.Table.IReadRowsRequest, callback: Ydb.Table.V1.TableService.ReadRowsCallback): void;

                /**
                 * Calls ReadRows.
                 * @param request ReadRowsRequest message or plain object
                 * @returns Promise
                 */
                public readRows(request: Ydb.Table.IReadRowsRequest): Promise<Ydb.Table.ReadRowsResponse>;

                /**
                 * Calls BulkUpsert.
                 * @param request BulkUpsertRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and BulkUpsertResponse
                 */
                public bulkUpsert(request: Ydb.Table.IBulkUpsertRequest, callback: Ydb.Table.V1.TableService.BulkUpsertCallback): void;

                /**
                 * Calls BulkUpsert.
                 * @param request BulkUpsertRequest message or plain object
                 * @returns Promise
                 */
                public bulkUpsert(request: Ydb.Table.IBulkUpsertRequest): Promise<Ydb.Table.BulkUpsertResponse>;

                /**
                 * Calls StreamExecuteScanQuery.
                 * @param request ExecuteScanQueryRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and ExecuteScanQueryPartialResponse
                 */
                public streamExecuteScanQuery(request: Ydb.Table.IExecuteScanQueryRequest, callback: Ydb.Table.V1.TableService.StreamExecuteScanQueryCallback): void;

                /**
                 * Calls StreamExecuteScanQuery.
                 * @param request ExecuteScanQueryRequest message or plain object
                 * @returns Promise
                 */
                public streamExecuteScanQuery(request: Ydb.Table.IExecuteScanQueryRequest): Promise<Ydb.Table.ExecuteScanQueryPartialResponse>;
            }

            namespace TableService {

                /**
                 * Callback as used by {@link Ydb.Table.V1.TableService#createSession}.
                 * @param error Error, if any
                 * @param [response] CreateSessionResponse
                 */
                type CreateSessionCallback = (error: (Error|null), response?: Ydb.Table.CreateSessionResponse) => void;

                /**
                 * Callback as used by {@link Ydb.Table.V1.TableService#deleteSession}.
                 * @param error Error, if any
                 * @param [response] DeleteSessionResponse
                 */
                type DeleteSessionCallback = (error: (Error|null), response?: Ydb.Table.DeleteSessionResponse) => void;

                /**
                 * Callback as used by {@link Ydb.Table.V1.TableService#keepAlive}.
                 * @param error Error, if any
                 * @param [response] KeepAliveResponse
                 */
                type KeepAliveCallback = (error: (Error|null), response?: Ydb.Table.KeepAliveResponse) => void;

                /**
                 * Callback as used by {@link Ydb.Table.V1.TableService#createTable}.
                 * @param error Error, if any
                 * @param [response] CreateTableResponse
                 */
                type CreateTableCallback = (error: (Error|null), response?: Ydb.Table.CreateTableResponse) => void;

                /**
                 * Callback as used by {@link Ydb.Table.V1.TableService#dropTable}.
                 * @param error Error, if any
                 * @param [response] DropTableResponse
                 */
                type DropTableCallback = (error: (Error|null), response?: Ydb.Table.DropTableResponse) => void;

                /**
                 * Callback as used by {@link Ydb.Table.V1.TableService#alterTable}.
                 * @param error Error, if any
                 * @param [response] AlterTableResponse
                 */
                type AlterTableCallback = (error: (Error|null), response?: Ydb.Table.AlterTableResponse) => void;

                /**
                 * Callback as used by {@link Ydb.Table.V1.TableService#copyTable}.
                 * @param error Error, if any
                 * @param [response] CopyTableResponse
                 */
                type CopyTableCallback = (error: (Error|null), response?: Ydb.Table.CopyTableResponse) => void;

                /**
                 * Callback as used by {@link Ydb.Table.V1.TableService#copyTables}.
                 * @param error Error, if any
                 * @param [response] CopyTablesResponse
                 */
                type CopyTablesCallback = (error: (Error|null), response?: Ydb.Table.CopyTablesResponse) => void;

                /**
                 * Callback as used by {@link Ydb.Table.V1.TableService#renameTables}.
                 * @param error Error, if any
                 * @param [response] RenameTablesResponse
                 */
                type RenameTablesCallback = (error: (Error|null), response?: Ydb.Table.RenameTablesResponse) => void;

                /**
                 * Callback as used by {@link Ydb.Table.V1.TableService#describeTable}.
                 * @param error Error, if any
                 * @param [response] DescribeTableResponse
                 */
                type DescribeTableCallback = (error: (Error|null), response?: Ydb.Table.DescribeTableResponse) => void;

                /**
                 * Callback as used by {@link Ydb.Table.V1.TableService#explainDataQuery}.
                 * @param error Error, if any
                 * @param [response] ExplainDataQueryResponse
                 */
                type ExplainDataQueryCallback = (error: (Error|null), response?: Ydb.Table.ExplainDataQueryResponse) => void;

                /**
                 * Callback as used by {@link Ydb.Table.V1.TableService#prepareDataQuery}.
                 * @param error Error, if any
                 * @param [response] PrepareDataQueryResponse
                 */
                type PrepareDataQueryCallback = (error: (Error|null), response?: Ydb.Table.PrepareDataQueryResponse) => void;

                /**
                 * Callback as used by {@link Ydb.Table.V1.TableService#executeDataQuery}.
                 * @param error Error, if any
                 * @param [response] ExecuteDataQueryResponse
                 */
                type ExecuteDataQueryCallback = (error: (Error|null), response?: Ydb.Table.ExecuteDataQueryResponse) => void;

                /**
                 * Callback as used by {@link Ydb.Table.V1.TableService#executeSchemeQuery}.
                 * @param error Error, if any
                 * @param [response] ExecuteSchemeQueryResponse
                 */
                type ExecuteSchemeQueryCallback = (error: (Error|null), response?: Ydb.Table.ExecuteSchemeQueryResponse) => void;

                /**
                 * Callback as used by {@link Ydb.Table.V1.TableService#beginTransaction}.
                 * @param error Error, if any
                 * @param [response] BeginTransactionResponse
                 */
                type BeginTransactionCallback = (error: (Error|null), response?: Ydb.Table.BeginTransactionResponse) => void;

                /**
                 * Callback as used by {@link Ydb.Table.V1.TableService#commitTransaction}.
                 * @param error Error, if any
                 * @param [response] CommitTransactionResponse
                 */
                type CommitTransactionCallback = (error: (Error|null), response?: Ydb.Table.CommitTransactionResponse) => void;

                /**
                 * Callback as used by {@link Ydb.Table.V1.TableService#rollbackTransaction}.
                 * @param error Error, if any
                 * @param [response] RollbackTransactionResponse
                 */
                type RollbackTransactionCallback = (error: (Error|null), response?: Ydb.Table.RollbackTransactionResponse) => void;

                /**
                 * Callback as used by {@link Ydb.Table.V1.TableService#describeTableOptions}.
                 * @param error Error, if any
                 * @param [response] DescribeTableOptionsResponse
                 */
                type DescribeTableOptionsCallback = (error: (Error|null), response?: Ydb.Table.DescribeTableOptionsResponse) => void;

                /**
                 * Callback as used by {@link Ydb.Table.V1.TableService#streamReadTable}.
                 * @param error Error, if any
                 * @param [response] ReadTableResponse
                 */
                type StreamReadTableCallback = (error: (Error|null), response?: Ydb.Table.ReadTableResponse) => void;

                /**
                 * Callback as used by {@link Ydb.Table.V1.TableService#readRows}.
                 * @param error Error, if any
                 * @param [response] ReadRowsResponse
                 */
                type ReadRowsCallback = (error: (Error|null), response?: Ydb.Table.ReadRowsResponse) => void;

                /**
                 * Callback as used by {@link Ydb.Table.V1.TableService#bulkUpsert}.
                 * @param error Error, if any
                 * @param [response] BulkUpsertResponse
                 */
                type BulkUpsertCallback = (error: (Error|null), response?: Ydb.Table.BulkUpsertResponse) => void;

                /**
                 * Callback as used by {@link Ydb.Table.V1.TableService#streamExecuteScanQuery}.
                 * @param error Error, if any
                 * @param [response] ExecuteScanQueryPartialResponse
                 */
                type StreamExecuteScanQueryCallback = (error: (Error|null), response?: Ydb.Table.ExecuteScanQueryPartialResponse) => void;
            }
        }
    }

    /** Namespace Topic. */
    namespace Topic {

        /** Codec enum. */
        enum Codec {
            CODEC_UNSPECIFIED = 0,
            CODEC_RAW = 1,
            CODEC_GZIP = 2,
            CODEC_LZOP = 3,
            CODEC_ZSTD = 4,
            CODEC_CUSTOM = 10000
        }

        /** Properties of a SupportedCodecs. */
        interface ISupportedCodecs {

            /** SupportedCodecs codecs */
            codecs?: (number[]|null);
        }

        /** Represents a SupportedCodecs. */
        class SupportedCodecs implements ISupportedCodecs {

            /**
             * Constructs a new SupportedCodecs.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Topic.ISupportedCodecs);

            /** SupportedCodecs codecs. */
            public codecs: number[];

            /**
             * Creates a new SupportedCodecs instance using the specified properties.
             * @param [properties] Properties to set
             * @returns SupportedCodecs instance
             */
            public static create(properties?: Ydb.Topic.ISupportedCodecs): Ydb.Topic.SupportedCodecs;

            /**
             * Encodes the specified SupportedCodecs message. Does not implicitly {@link Ydb.Topic.SupportedCodecs.verify|verify} messages.
             * @param message SupportedCodecs message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Topic.ISupportedCodecs, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified SupportedCodecs message, length delimited. Does not implicitly {@link Ydb.Topic.SupportedCodecs.verify|verify} messages.
             * @param message SupportedCodecs message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Topic.ISupportedCodecs, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a SupportedCodecs message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns SupportedCodecs
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Topic.SupportedCodecs;

            /**
             * Decodes a SupportedCodecs message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns SupportedCodecs
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Topic.SupportedCodecs;

            /**
             * Verifies a SupportedCodecs message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a SupportedCodecs message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns SupportedCodecs
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Topic.SupportedCodecs;

            /**
             * Creates a plain object from a SupportedCodecs message. Also converts values to other types if specified.
             * @param message SupportedCodecs
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Topic.SupportedCodecs, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this SupportedCodecs to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of an OffsetsRange. */
        interface IOffsetsRange {

            /** OffsetsRange start */
            start?: (number|Long|null);

            /** OffsetsRange end */
            end?: (number|Long|null);
        }

        /** Represents an OffsetsRange. */
        class OffsetsRange implements IOffsetsRange {

            /**
             * Constructs a new OffsetsRange.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Topic.IOffsetsRange);

            /** OffsetsRange start. */
            public start: (number|Long);

            /** OffsetsRange end. */
            public end: (number|Long);

            /**
             * Creates a new OffsetsRange instance using the specified properties.
             * @param [properties] Properties to set
             * @returns OffsetsRange instance
             */
            public static create(properties?: Ydb.Topic.IOffsetsRange): Ydb.Topic.OffsetsRange;

            /**
             * Encodes the specified OffsetsRange message. Does not implicitly {@link Ydb.Topic.OffsetsRange.verify|verify} messages.
             * @param message OffsetsRange message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Topic.IOffsetsRange, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified OffsetsRange message, length delimited. Does not implicitly {@link Ydb.Topic.OffsetsRange.verify|verify} messages.
             * @param message OffsetsRange message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Topic.IOffsetsRange, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes an OffsetsRange message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns OffsetsRange
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Topic.OffsetsRange;

            /**
             * Decodes an OffsetsRange message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns OffsetsRange
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Topic.OffsetsRange;

            /**
             * Verifies an OffsetsRange message.
             * @param message Plain 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 OffsetsRange message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns OffsetsRange
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Topic.OffsetsRange;

            /**
             * Creates a plain object from an OffsetsRange message. Also converts values to other types if specified.
             * @param message OffsetsRange
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Topic.OffsetsRange, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this OffsetsRange to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of an UpdateTokenRequest. */
        interface IUpdateTokenRequest {

            /** UpdateTokenRequest token */
            token?: (string|null);
        }

        /** Represents an UpdateTokenRequest. */
        class UpdateTokenRequest implements IUpdateTokenRequest {

            /**
             * Constructs a new UpdateTokenRequest.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Topic.IUpdateTokenRequest);

            /** UpdateTokenRequest token. */
            public token: string;

            /**
             * Creates a new UpdateTokenRequest instance using the specified properties.
             * @param [properties] Properties to set
             * @returns UpdateTokenRequest instance
             */
            public static create(properties?: Ydb.Topic.IUpdateTokenRequest): Ydb.Topic.UpdateTokenRequest;

            /**
             * Encodes the specified UpdateTokenRequest message. Does not implicitly {@link Ydb.Topic.UpdateTokenRequest.verify|verify} messages.
             * @param message UpdateTokenRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Topic.IUpdateTokenRequest, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified UpdateTokenRequest message, length delimited. Does not implicitly {@link Ydb.Topic.UpdateTokenRequest.verify|verify} messages.
             * @param message UpdateTokenRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Topic.IUpdateTokenRequest, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes an UpdateTokenRequest message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns UpdateTokenRequest
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Topic.UpdateTokenRequest;

            /**
             * Decodes an UpdateTokenRequest message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns UpdateTokenRequest
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Topic.UpdateTokenRequest;

            /**
             * Verifies an UpdateTokenRequest message.
             * @param message Plain 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 UpdateTokenRequest message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns UpdateTokenRequest
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Topic.UpdateTokenRequest;

            /**
             * Creates a plain object from an UpdateTokenRequest message. Also converts values to other types if specified.
             * @param message UpdateTokenRequest
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Topic.UpdateTokenRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this UpdateTokenRequest to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of an UpdateTokenResponse. */
        interface IUpdateTokenResponse {
        }

        /** Represents an UpdateTokenResponse. */
        class UpdateTokenResponse implements IUpdateTokenResponse {

            /**
             * Constructs a new UpdateTokenResponse.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Topic.IUpdateTokenResponse);

            /**
             * Creates a new UpdateTokenResponse instance using the specified properties.
             * @param [properties] Properties to set
             * @returns UpdateTokenResponse instance
             */
            public static create(properties?: Ydb.Topic.IUpdateTokenResponse): Ydb.Topic.UpdateTokenResponse;

            /**
             * Encodes the specified UpdateTokenResponse message. Does not implicitly {@link Ydb.Topic.UpdateTokenResponse.verify|verify} messages.
             * @param message UpdateTokenResponse message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Topic.IUpdateTokenResponse, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified UpdateTokenResponse message, length delimited. Does not implicitly {@link Ydb.Topic.UpdateTokenResponse.verify|verify} messages.
             * @param message UpdateTokenResponse message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Topic.IUpdateTokenResponse, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes an UpdateTokenResponse message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns UpdateTokenResponse
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Topic.UpdateTokenResponse;

            /**
             * Decodes an UpdateTokenResponse message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns UpdateTokenResponse
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Topic.UpdateTokenResponse;

            /**
             * Verifies an UpdateTokenResponse message.
             * @param message Plain 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 UpdateTokenResponse message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns UpdateTokenResponse
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Topic.UpdateTokenResponse;

            /**
             * Creates a plain object from an UpdateTokenResponse message. Also converts values to other types if specified.
             * @param message UpdateTokenResponse
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Topic.UpdateTokenResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this UpdateTokenResponse to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a PartitionWithGeneration. */
        interface IPartitionWithGeneration {

            /** PartitionWithGeneration partitionId */
            partitionId?: (number|Long|null);

            /** PartitionWithGeneration generation */
            generation?: (number|Long|null);
        }

        /** Represents a PartitionWithGeneration. */
        class PartitionWithGeneration implements IPartitionWithGeneration {

            /**
             * Constructs a new PartitionWithGeneration.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Topic.IPartitionWithGeneration);

            /** PartitionWithGeneration partitionId. */
            public partitionId: (number|Long);

            /** PartitionWithGeneration generation. */
            public generation: (number|Long);

            /**
             * Creates a new PartitionWithGeneration instance using the specified properties.
             * @param [properties] Properties to set
             * @returns PartitionWithGeneration instance
             */
            public static create(properties?: Ydb.Topic.IPartitionWithGeneration): Ydb.Topic.PartitionWithGeneration;

            /**
             * Encodes the specified PartitionWithGeneration message. Does not implicitly {@link Ydb.Topic.PartitionWithGeneration.verify|verify} messages.
             * @param message PartitionWithGeneration message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Topic.IPartitionWithGeneration, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified PartitionWithGeneration message, length delimited. Does not implicitly {@link Ydb.Topic.PartitionWithGeneration.verify|verify} messages.
             * @param message PartitionWithGeneration message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Topic.IPartitionWithGeneration, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a PartitionWithGeneration message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns PartitionWithGeneration
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Topic.PartitionWithGeneration;

            /**
             * Decodes a PartitionWithGeneration message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns PartitionWithGeneration
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Topic.PartitionWithGeneration;

            /**
             * Verifies a PartitionWithGeneration message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a PartitionWithGeneration message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns PartitionWithGeneration
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Topic.PartitionWithGeneration;

            /**
             * Creates a plain object from a PartitionWithGeneration message. Also converts values to other types if specified.
             * @param message PartitionWithGeneration
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Topic.PartitionWithGeneration, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this PartitionWithGeneration to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a MetadataItem. */
        interface IMetadataItem {

            /** MetadataItem key */
            key?: (string|null);

            /** MetadataItem value */
            value?: (Uint8Array|null);
        }

        /** Represents a MetadataItem. */
        class MetadataItem implements IMetadataItem {

            /**
             * Constructs a new MetadataItem.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Topic.IMetadataItem);

            /** MetadataItem key. */
            public key: string;

            /** MetadataItem value. */
            public value: Uint8Array;

            /**
             * Creates a new MetadataItem instance using the specified properties.
             * @param [properties] Properties to set
             * @returns MetadataItem instance
             */
            public static create(properties?: Ydb.Topic.IMetadataItem): Ydb.Topic.MetadataItem;

            /**
             * Encodes the specified MetadataItem message. Does not implicitly {@link Ydb.Topic.MetadataItem.verify|verify} messages.
             * @param message MetadataItem message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Topic.IMetadataItem, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified MetadataItem message, length delimited. Does not implicitly {@link Ydb.Topic.MetadataItem.verify|verify} messages.
             * @param message MetadataItem message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Topic.IMetadataItem, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a MetadataItem message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns MetadataItem
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Topic.MetadataItem;

            /**
             * Decodes a MetadataItem message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns MetadataItem
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Topic.MetadataItem;

            /**
             * Verifies a MetadataItem message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a MetadataItem message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns MetadataItem
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Topic.MetadataItem;

            /**
             * Creates a plain object from a MetadataItem message. Also converts values to other types if specified.
             * @param message MetadataItem
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Topic.MetadataItem, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this MetadataItem to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a StreamWriteMessage. */
        interface IStreamWriteMessage {
        }

        /** Represents a StreamWriteMessage. */
        class StreamWriteMessage implements IStreamWriteMessage {

            /**
             * Constructs a new StreamWriteMessage.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Topic.IStreamWriteMessage);

            /**
             * Creates a new StreamWriteMessage instance using the specified properties.
             * @param [properties] Properties to set
             * @returns StreamWriteMessage instance
             */
            public static create(properties?: Ydb.Topic.IStreamWriteMessage): Ydb.Topic.StreamWriteMessage;

            /**
             * Encodes the specified StreamWriteMessage message. Does not implicitly {@link Ydb.Topic.StreamWriteMessage.verify|verify} messages.
             * @param message StreamWriteMessage message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Topic.IStreamWriteMessage, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified StreamWriteMessage message, length delimited. Does not implicitly {@link Ydb.Topic.StreamWriteMessage.verify|verify} messages.
             * @param message StreamWriteMessage message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Topic.IStreamWriteMessage, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a StreamWriteMessage message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns StreamWriteMessage
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Topic.StreamWriteMessage;

            /**
             * Decodes a StreamWriteMessage message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns StreamWriteMessage
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Topic.StreamWriteMessage;

            /**
             * Verifies a StreamWriteMessage message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a StreamWriteMessage message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns StreamWriteMessage
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Topic.StreamWriteMessage;

            /**
             * Creates a plain object from a StreamWriteMessage message. Also converts values to other types if specified.
             * @param message StreamWriteMessage
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Topic.StreamWriteMessage, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this StreamWriteMessage to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        namespace StreamWriteMessage {

            /** Properties of a FromClient. */
            interface IFromClient {

                /** FromClient initRequest */
                initRequest?: (Ydb.Topic.StreamWriteMessage.IInitRequest|null);

                /** FromClient writeRequest */
                writeRequest?: (Ydb.Topic.StreamWriteMessage.IWriteRequest|null);

                /** FromClient updateTokenRequest */
                updateTokenRequest?: (Ydb.Topic.IUpdateTokenRequest|null);
            }

            /** Represents a FromClient. */
            class FromClient implements IFromClient {

                /**
                 * Constructs a new FromClient.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: Ydb.Topic.StreamWriteMessage.IFromClient);

                /** FromClient initRequest. */
                public initRequest?: (Ydb.Topic.StreamWriteMessage.IInitRequest|null);

                /** FromClient writeRequest. */
                public writeRequest?: (Ydb.Topic.StreamWriteMessage.IWriteRequest|null);

                /** FromClient updateTokenRequest. */
                public updateTokenRequest?: (Ydb.Topic.IUpdateTokenRequest|null);

                /** FromClient clientMessage. */
                public clientMessage?: ("initRequest"|"writeRequest"|"updateTokenRequest");

                /**
                 * Creates a new FromClient instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns FromClient instance
                 */
                public static create(properties?: Ydb.Topic.StreamWriteMessage.IFromClient): Ydb.Topic.StreamWriteMessage.FromClient;

                /**
                 * Encodes the specified FromClient message. Does not implicitly {@link Ydb.Topic.StreamWriteMessage.FromClient.verify|verify} messages.
                 * @param message FromClient message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: Ydb.Topic.StreamWriteMessage.IFromClient, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified FromClient message, length delimited. Does not implicitly {@link Ydb.Topic.StreamWriteMessage.FromClient.verify|verify} messages.
                 * @param message FromClient message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: Ydb.Topic.StreamWriteMessage.IFromClient, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a FromClient message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns FromClient
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Topic.StreamWriteMessage.FromClient;

                /**
                 * Decodes a FromClient message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns FromClient
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Topic.StreamWriteMessage.FromClient;

                /**
                 * Verifies a FromClient message.
                 * @param message Plain object to verify
                 * @returns `null` if valid, otherwise the reason why it is not
                 */
                public static verify(message: { [k: string]: any }): (string|null);

                /**
                 * Creates a FromClient message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns FromClient
                 */
                public static fromObject(object: { [k: string]: any }): Ydb.Topic.StreamWriteMessage.FromClient;

                /**
                 * Creates a plain object from a FromClient message. Also converts values to other types if specified.
                 * @param message FromClient
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: Ydb.Topic.StreamWriteMessage.FromClient, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this FromClient to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };
            }

            /** Properties of a FromServer. */
            interface IFromServer {

                /** FromServer status */
                status?: (Ydb.StatusIds.StatusCode|null);

                /** FromServer issues */
                issues?: (Ydb.Issue.IIssueMessage[]|null);

                /** FromServer initResponse */
                initResponse?: (Ydb.Topic.StreamWriteMessage.IInitResponse|null);

                /** FromServer writeResponse */
                writeResponse?: (Ydb.Topic.StreamWriteMessage.IWriteResponse|null);

                /** FromServer updateTokenResponse */
                updateTokenResponse?: (Ydb.Topic.IUpdateTokenResponse|null);
            }

            /** Represents a FromServer. */
            class FromServer implements IFromServer {

                /**
                 * Constructs a new FromServer.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: Ydb.Topic.StreamWriteMessage.IFromServer);

                /** FromServer status. */
                public status: Ydb.StatusIds.StatusCode;

                /** FromServer issues. */
                public issues: Ydb.Issue.IIssueMessage[];

                /** FromServer initResponse. */
                public initResponse?: (Ydb.Topic.StreamWriteMessage.IInitResponse|null);

                /** FromServer writeResponse. */
                public writeResponse?: (Ydb.Topic.StreamWriteMessage.IWriteResponse|null);

                /** FromServer updateTokenResponse. */
                public updateTokenResponse?: (Ydb.Topic.IUpdateTokenResponse|null);

                /** FromServer serverMessage. */
                public serverMessage?: ("initResponse"|"writeResponse"|"updateTokenResponse");

                /**
                 * Creates a new FromServer instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns FromServer instance
                 */
                public static create(properties?: Ydb.Topic.StreamWriteMessage.IFromServer): Ydb.Topic.StreamWriteMessage.FromServer;

                /**
                 * Encodes the specified FromServer message. Does not implicitly {@link Ydb.Topic.StreamWriteMessage.FromServer.verify|verify} messages.
                 * @param message FromServer message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: Ydb.Topic.StreamWriteMessage.IFromServer, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified FromServer message, length delimited. Does not implicitly {@link Ydb.Topic.StreamWriteMessage.FromServer.verify|verify} messages.
                 * @param message FromServer message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: Ydb.Topic.StreamWriteMessage.IFromServer, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a FromServer message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns FromServer
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Topic.StreamWriteMessage.FromServer;

                /**
                 * Decodes a FromServer message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns FromServer
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Topic.StreamWriteMessage.FromServer;

                /**
                 * Verifies a FromServer message.
                 * @param message Plain object to verify
                 * @returns `null` if valid, otherwise the reason why it is not
                 */
                public static verify(message: { [k: string]: any }): (string|null);

                /**
                 * Creates a FromServer message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns FromServer
                 */
                public static fromObject(object: { [k: string]: any }): Ydb.Topic.StreamWriteMessage.FromServer;

                /**
                 * Creates a plain object from a FromServer message. Also converts values to other types if specified.
                 * @param message FromServer
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: Ydb.Topic.StreamWriteMessage.FromServer, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this FromServer to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };
            }

            /** Properties of an InitRequest. */
            interface IInitRequest {

                /** InitRequest path */
                path?: (string|null);

                /** InitRequest producerId */
                producerId?: (string|null);

                /** InitRequest writeSessionMeta */
                writeSessionMeta?: ({ [k: string]: string }|null);

                /** InitRequest messageGroupId */
                messageGroupId?: (string|null);

                /** InitRequest partitionId */
                partitionId?: (number|Long|null);

                /** InitRequest partitionWithGeneration */
                partitionWithGeneration?: (Ydb.Topic.IPartitionWithGeneration|null);

                /** InitRequest getLastSeqNo */
                getLastSeqNo?: (boolean|null);
            }

            /** Represents an InitRequest. */
            class InitRequest implements IInitRequest {

                /**
                 * Constructs a new InitRequest.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: Ydb.Topic.StreamWriteMessage.IInitRequest);

                /** InitRequest path. */
                public path: string;

                /** InitRequest producerId. */
                public producerId: string;

                /** InitRequest writeSessionMeta. */
                public writeSessionMeta: { [k: string]: string };

                /** InitRequest messageGroupId. */
                public messageGroupId?: (string|null);

                /** InitRequest partitionId. */
                public partitionId?: (number|Long|null);

                /** InitRequest partitionWithGeneration. */
                public partitionWithGeneration?: (Ydb.Topic.IPartitionWithGeneration|null);

                /** InitRequest getLastSeqNo. */
                public getLastSeqNo: boolean;

                /** InitRequest partitioning. */
                public partitioning?: ("messageGroupId"|"partitionId"|"partitionWithGeneration");

                /**
                 * Creates a new InitRequest instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns InitRequest instance
                 */
                public static create(properties?: Ydb.Topic.StreamWriteMessage.IInitRequest): Ydb.Topic.StreamWriteMessage.InitRequest;

                /**
                 * Encodes the specified InitRequest message. Does not implicitly {@link Ydb.Topic.StreamWriteMessage.InitRequest.verify|verify} messages.
                 * @param message InitRequest message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: Ydb.Topic.StreamWriteMessage.IInitRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified InitRequest message, length delimited. Does not implicitly {@link Ydb.Topic.StreamWriteMessage.InitRequest.verify|verify} messages.
                 * @param message InitRequest message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: Ydb.Topic.StreamWriteMessage.IInitRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes an InitRequest message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns InitRequest
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Topic.StreamWriteMessage.InitRequest;

                /**
                 * Decodes an InitRequest message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns InitRequest
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Topic.StreamWriteMessage.InitRequest;

                /**
                 * Verifies an InitRequest message.
                 * @param message Plain 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 InitRequest message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns InitRequest
                 */
                public static fromObject(object: { [k: string]: any }): Ydb.Topic.StreamWriteMessage.InitRequest;

                /**
                 * Creates a plain object from an InitRequest message. Also converts values to other types if specified.
                 * @param message InitRequest
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: Ydb.Topic.StreamWriteMessage.InitRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this InitRequest to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };
            }

            /** Properties of an InitResponse. */
            interface IInitResponse {

                /** InitResponse lastSeqNo */
                lastSeqNo?: (number|Long|null);

                /** InitResponse sessionId */
                sessionId?: (string|null);

                /** InitResponse partitionId */
                partitionId?: (number|Long|null);

                /** InitResponse supportedCodecs */
                supportedCodecs?: (Ydb.Topic.ISupportedCodecs|null);
            }

            /** Represents an InitResponse. */
            class InitResponse implements IInitResponse {

                /**
                 * Constructs a new InitResponse.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: Ydb.Topic.StreamWriteMessage.IInitResponse);

                /** InitResponse lastSeqNo. */
                public lastSeqNo: (number|Long);

                /** InitResponse sessionId. */
                public sessionId: string;

                /** InitResponse partitionId. */
                public partitionId: (number|Long);

                /** InitResponse supportedCodecs. */
                public supportedCodecs?: (Ydb.Topic.ISupportedCodecs|null);

                /**
                 * Creates a new InitResponse instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns InitResponse instance
                 */
                public static create(properties?: Ydb.Topic.StreamWriteMessage.IInitResponse): Ydb.Topic.StreamWriteMessage.InitResponse;

                /**
                 * Encodes the specified InitResponse message. Does not implicitly {@link Ydb.Topic.StreamWriteMessage.InitResponse.verify|verify} messages.
                 * @param message InitResponse message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: Ydb.Topic.StreamWriteMessage.IInitResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified InitResponse message, length delimited. Does not implicitly {@link Ydb.Topic.StreamWriteMessage.InitResponse.verify|verify} messages.
                 * @param message InitResponse message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: Ydb.Topic.StreamWriteMessage.IInitResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes an InitResponse message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns InitResponse
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Topic.StreamWriteMessage.InitResponse;

                /**
                 * Decodes an InitResponse message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns InitResponse
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Topic.StreamWriteMessage.InitResponse;

                /**
                 * Verifies an InitResponse message.
                 * @param message Plain 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 InitResponse message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns InitResponse
                 */
                public static fromObject(object: { [k: string]: any }): Ydb.Topic.StreamWriteMessage.InitResponse;

                /**
                 * Creates a plain object from an InitResponse message. Also converts values to other types if specified.
                 * @param message InitResponse
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: Ydb.Topic.StreamWriteMessage.InitResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this InitResponse to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };
            }

            /** Properties of a WriteRequest. */
            interface IWriteRequest {

                /** WriteRequest messages */
                messages?: (Ydb.Topic.StreamWriteMessage.WriteRequest.IMessageData[]|null);

                /** WriteRequest codec */
                codec?: (number|null);

                /** WriteRequest tx */
                tx?: (Ydb.Topic.ITransactionIdentity|null);
            }

            /** Represents a WriteRequest. */
            class WriteRequest implements IWriteRequest {

                /**
                 * Constructs a new WriteRequest.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: Ydb.Topic.StreamWriteMessage.IWriteRequest);

                /** WriteRequest messages. */
                public messages: Ydb.Topic.StreamWriteMessage.WriteRequest.IMessageData[];

                /** WriteRequest codec. */
                public codec: number;

                /** WriteRequest tx. */
                public tx?: (Ydb.Topic.ITransactionIdentity|null);

                /** WriteRequest _tx. */
                public _tx?: "tx";

                /**
                 * Creates a new WriteRequest instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns WriteRequest instance
                 */
                public static create(properties?: Ydb.Topic.StreamWriteMessage.IWriteRequest): Ydb.Topic.StreamWriteMessage.WriteRequest;

                /**
                 * Encodes the specified WriteRequest message. Does not implicitly {@link Ydb.Topic.StreamWriteMessage.WriteRequest.verify|verify} messages.
                 * @param message WriteRequest message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: Ydb.Topic.StreamWriteMessage.IWriteRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified WriteRequest message, length delimited. Does not implicitly {@link Ydb.Topic.StreamWriteMessage.WriteRequest.verify|verify} messages.
                 * @param message WriteRequest message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: Ydb.Topic.StreamWriteMessage.IWriteRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a WriteRequest message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns WriteRequest
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Topic.StreamWriteMessage.WriteRequest;

                /**
                 * Decodes a WriteRequest message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns WriteRequest
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Topic.StreamWriteMessage.WriteRequest;

                /**
                 * Verifies a WriteRequest message.
                 * @param message Plain object to verify
                 * @returns `null` if valid, otherwise the reason why it is not
                 */
                public static verify(message: { [k: string]: any }): (string|null);

                /**
                 * Creates a WriteRequest message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns WriteRequest
                 */
                public static fromObject(object: { [k: string]: any }): Ydb.Topic.StreamWriteMessage.WriteRequest;

                /**
                 * Creates a plain object from a WriteRequest message. Also converts values to other types if specified.
                 * @param message WriteRequest
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: Ydb.Topic.StreamWriteMessage.WriteRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this WriteRequest to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };
            }

            namespace WriteRequest {

                /** Properties of a MessageData. */
                interface IMessageData {

                    /** MessageData seqNo */
                    seqNo?: (number|Long|null);

                    /** MessageData createdAt */
                    createdAt?: (google.protobuf.ITimestamp|null);

                    /** MessageData data */
                    data?: (Uint8Array|null);

                    /** MessageData uncompressedSize */
                    uncompressedSize?: (number|Long|null);

                    /** MessageData messageGroupId */
                    messageGroupId?: (string|null);

                    /** MessageData partitionId */
                    partitionId?: (number|Long|null);

                    /** MessageData partitionWithGeneration */
                    partitionWithGeneration?: (Ydb.Topic.IPartitionWithGeneration|null);

                    /** MessageData metadataItems */
                    metadataItems?: (Ydb.Topic.IMetadataItem[]|null);
                }

                /** Represents a MessageData. */
                class MessageData implements IMessageData {

                    /**
                     * Constructs a new MessageData.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: Ydb.Topic.StreamWriteMessage.WriteRequest.IMessageData);

                    /** MessageData seqNo. */
                    public seqNo: (number|Long);

                    /** MessageData createdAt. */
                    public createdAt?: (google.protobuf.ITimestamp|null);

                    /** MessageData data. */
                    public data: Uint8Array;

                    /** MessageData uncompressedSize. */
                    public uncompressedSize: (number|Long);

                    /** MessageData messageGroupId. */
                    public messageGroupId?: (string|null);

                    /** MessageData partitionId. */
                    public partitionId?: (number|Long|null);

                    /** MessageData partitionWithGeneration. */
                    public partitionWithGeneration?: (Ydb.Topic.IPartitionWithGeneration|null);

                    /** MessageData metadataItems. */
                    public metadataItems: Ydb.Topic.IMetadataItem[];

                    /** MessageData partitioning. */
                    public partitioning?: ("messageGroupId"|"partitionId"|"partitionWithGeneration");

                    /**
                     * Creates a new MessageData instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns MessageData instance
                     */
                    public static create(properties?: Ydb.Topic.StreamWriteMessage.WriteRequest.IMessageData): Ydb.Topic.StreamWriteMessage.WriteRequest.MessageData;

                    /**
                     * Encodes the specified MessageData message. Does not implicitly {@link Ydb.Topic.StreamWriteMessage.WriteRequest.MessageData.verify|verify} messages.
                     * @param message MessageData message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: Ydb.Topic.StreamWriteMessage.WriteRequest.IMessageData, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified MessageData message, length delimited. Does not implicitly {@link Ydb.Topic.StreamWriteMessage.WriteRequest.MessageData.verify|verify} messages.
                     * @param message MessageData message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: Ydb.Topic.StreamWriteMessage.WriteRequest.IMessageData, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a MessageData message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns MessageData
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Topic.StreamWriteMessage.WriteRequest.MessageData;

                    /**
                     * Decodes a MessageData message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns MessageData
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Topic.StreamWriteMessage.WriteRequest.MessageData;

                    /**
                     * Verifies a MessageData message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a MessageData message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns MessageData
                     */
                    public static fromObject(object: { [k: string]: any }): Ydb.Topic.StreamWriteMessage.WriteRequest.MessageData;

                    /**
                     * Creates a plain object from a MessageData message. Also converts values to other types if specified.
                     * @param message MessageData
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: Ydb.Topic.StreamWriteMessage.WriteRequest.MessageData, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this MessageData to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };
                }
            }

            /** Properties of a WriteResponse. */
            interface IWriteResponse {

                /** WriteResponse acks */
                acks?: (Ydb.Topic.StreamWriteMessage.WriteResponse.IWriteAck[]|null);

                /** WriteResponse partitionId */
                partitionId?: (number|Long|null);

                /** WriteResponse writeStatistics */
                writeStatistics?: (Ydb.Topic.StreamWriteMessage.WriteResponse.IWriteStatistics|null);
            }

            /** Represents a WriteResponse. */
            class WriteResponse implements IWriteResponse {

                /**
                 * Constructs a new WriteResponse.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: Ydb.Topic.StreamWriteMessage.IWriteResponse);

                /** WriteResponse acks. */
                public acks: Ydb.Topic.StreamWriteMessage.WriteResponse.IWriteAck[];

                /** WriteResponse partitionId. */
                public partitionId: (number|Long);

                /** WriteResponse writeStatistics. */
                public writeStatistics?: (Ydb.Topic.StreamWriteMessage.WriteResponse.IWriteStatistics|null);

                /**
                 * Creates a new WriteResponse instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns WriteResponse instance
                 */
                public static create(properties?: Ydb.Topic.StreamWriteMessage.IWriteResponse): Ydb.Topic.StreamWriteMessage.WriteResponse;

                /**
                 * Encodes the specified WriteResponse message. Does not implicitly {@link Ydb.Topic.StreamWriteMessage.WriteResponse.verify|verify} messages.
                 * @param message WriteResponse message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: Ydb.Topic.StreamWriteMessage.IWriteResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified WriteResponse message, length delimited. Does not implicitly {@link Ydb.Topic.StreamWriteMessage.WriteResponse.verify|verify} messages.
                 * @param message WriteResponse message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: Ydb.Topic.StreamWriteMessage.IWriteResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a WriteResponse message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns WriteResponse
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Topic.StreamWriteMessage.WriteResponse;

                /**
                 * Decodes a WriteResponse message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns WriteResponse
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Topic.StreamWriteMessage.WriteResponse;

                /**
                 * Verifies a WriteResponse message.
                 * @param message Plain object to verify
                 * @returns `null` if valid, otherwise the reason why it is not
                 */
                public static verify(message: { [k: string]: any }): (string|null);

                /**
                 * Creates a WriteResponse message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns WriteResponse
                 */
                public static fromObject(object: { [k: string]: any }): Ydb.Topic.StreamWriteMessage.WriteResponse;

                /**
                 * Creates a plain object from a WriteResponse message. Also converts values to other types if specified.
                 * @param message WriteResponse
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: Ydb.Topic.StreamWriteMessage.WriteResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this WriteResponse to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };
            }

            namespace WriteResponse {

                /** Properties of a WriteAck. */
                interface IWriteAck {

                    /** WriteAck seqNo */
                    seqNo?: (number|Long|null);

                    /** WriteAck written */
                    written?: (Ydb.Topic.StreamWriteMessage.WriteResponse.WriteAck.IWritten|null);

                    /** WriteAck skipped */
                    skipped?: (Ydb.Topic.StreamWriteMessage.WriteResponse.WriteAck.ISkipped|null);

                    /** WriteAck writtenInTx */
                    writtenInTx?: (Ydb.Topic.StreamWriteMessage.WriteResponse.WriteAck.IWrittenInTx|null);
                }

                /** Represents a WriteAck. */
                class WriteAck implements IWriteAck {

                    /**
                     * Constructs a new WriteAck.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: Ydb.Topic.StreamWriteMessage.WriteResponse.IWriteAck);

                    /** WriteAck seqNo. */
                    public seqNo: (number|Long);

                    /** WriteAck written. */
                    public written?: (Ydb.Topic.StreamWriteMessage.WriteResponse.WriteAck.IWritten|null);

                    /** WriteAck skipped. */
                    public skipped?: (Ydb.Topic.StreamWriteMessage.WriteResponse.WriteAck.ISkipped|null);

                    /** WriteAck writtenInTx. */
                    public writtenInTx?: (Ydb.Topic.StreamWriteMessage.WriteResponse.WriteAck.IWrittenInTx|null);

                    /** WriteAck messageWriteStatus. */
                    public messageWriteStatus?: ("written"|"skipped"|"writtenInTx");

                    /**
                     * Creates a new WriteAck instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns WriteAck instance
                     */
                    public static create(properties?: Ydb.Topic.StreamWriteMessage.WriteResponse.IWriteAck): Ydb.Topic.StreamWriteMessage.WriteResponse.WriteAck;

                    /**
                     * Encodes the specified WriteAck message. Does not implicitly {@link Ydb.Topic.StreamWriteMessage.WriteResponse.WriteAck.verify|verify} messages.
                     * @param message WriteAck message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: Ydb.Topic.StreamWriteMessage.WriteResponse.IWriteAck, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified WriteAck message, length delimited. Does not implicitly {@link Ydb.Topic.StreamWriteMessage.WriteResponse.WriteAck.verify|verify} messages.
                     * @param message WriteAck message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: Ydb.Topic.StreamWriteMessage.WriteResponse.IWriteAck, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a WriteAck message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns WriteAck
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Topic.StreamWriteMessage.WriteResponse.WriteAck;

                    /**
                     * Decodes a WriteAck message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns WriteAck
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Topic.StreamWriteMessage.WriteResponse.WriteAck;

                    /**
                     * Verifies a WriteAck message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a WriteAck message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns WriteAck
                     */
                    public static fromObject(object: { [k: string]: any }): Ydb.Topic.StreamWriteMessage.WriteResponse.WriteAck;

                    /**
                     * Creates a plain object from a WriteAck message. Also converts values to other types if specified.
                     * @param message WriteAck
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: Ydb.Topic.StreamWriteMessage.WriteResponse.WriteAck, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this WriteAck to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };
                }

                namespace WriteAck {

                    /** Properties of a Written. */
                    interface IWritten {

                        /** Written offset */
                        offset?: (number|Long|null);
                    }

                    /** Represents a Written. */
                    class Written implements IWritten {

                        /**
                         * Constructs a new Written.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: Ydb.Topic.StreamWriteMessage.WriteResponse.WriteAck.IWritten);

                        /** Written offset. */
                        public offset: (number|Long);

                        /**
                         * Creates a new Written instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns Written instance
                         */
                        public static create(properties?: Ydb.Topic.StreamWriteMessage.WriteResponse.WriteAck.IWritten): Ydb.Topic.StreamWriteMessage.WriteResponse.WriteAck.Written;

                        /**
                         * Encodes the specified Written message. Does not implicitly {@link Ydb.Topic.StreamWriteMessage.WriteResponse.WriteAck.Written.verify|verify} messages.
                         * @param message Written message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: Ydb.Topic.StreamWriteMessage.WriteResponse.WriteAck.IWritten, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified Written message, length delimited. Does not implicitly {@link Ydb.Topic.StreamWriteMessage.WriteResponse.WriteAck.Written.verify|verify} messages.
                         * @param message Written message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: Ydb.Topic.StreamWriteMessage.WriteResponse.WriteAck.IWritten, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a Written message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns Written
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Topic.StreamWriteMessage.WriteResponse.WriteAck.Written;

                        /**
                         * Decodes a Written message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns Written
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Topic.StreamWriteMessage.WriteResponse.WriteAck.Written;

                        /**
                         * Verifies a Written message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a Written message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns Written
                         */
                        public static fromObject(object: { [k: string]: any }): Ydb.Topic.StreamWriteMessage.WriteResponse.WriteAck.Written;

                        /**
                         * Creates a plain object from a Written message. Also converts values to other types if specified.
                         * @param message Written
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: Ydb.Topic.StreamWriteMessage.WriteResponse.WriteAck.Written, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this Written to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a Skipped. */
                    interface ISkipped {

                        /** Skipped reason */
                        reason?: (Ydb.Topic.StreamWriteMessage.WriteResponse.WriteAck.Skipped.Reason|null);
                    }

                    /** Represents a Skipped. */
                    class Skipped implements ISkipped {

                        /**
                         * Constructs a new Skipped.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: Ydb.Topic.StreamWriteMessage.WriteResponse.WriteAck.ISkipped);

                        /** Skipped reason. */
                        public reason: Ydb.Topic.StreamWriteMessage.WriteResponse.WriteAck.Skipped.Reason;

                        /**
                         * Creates a new Skipped instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns Skipped instance
                         */
                        public static create(properties?: Ydb.Topic.StreamWriteMessage.WriteResponse.WriteAck.ISkipped): Ydb.Topic.StreamWriteMessage.WriteResponse.WriteAck.Skipped;

                        /**
                         * Encodes the specified Skipped message. Does not implicitly {@link Ydb.Topic.StreamWriteMessage.WriteResponse.WriteAck.Skipped.verify|verify} messages.
                         * @param message Skipped message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: Ydb.Topic.StreamWriteMessage.WriteResponse.WriteAck.ISkipped, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified Skipped message, length delimited. Does not implicitly {@link Ydb.Topic.StreamWriteMessage.WriteResponse.WriteAck.Skipped.verify|verify} messages.
                         * @param message Skipped message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: Ydb.Topic.StreamWriteMessage.WriteResponse.WriteAck.ISkipped, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a Skipped message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns Skipped
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Topic.StreamWriteMessage.WriteResponse.WriteAck.Skipped;

                        /**
                         * Decodes a Skipped message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns Skipped
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Topic.StreamWriteMessage.WriteResponse.WriteAck.Skipped;

                        /**
                         * Verifies a Skipped message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a Skipped message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns Skipped
                         */
                        public static fromObject(object: { [k: string]: any }): Ydb.Topic.StreamWriteMessage.WriteResponse.WriteAck.Skipped;

                        /**
                         * Creates a plain object from a Skipped message. Also converts values to other types if specified.
                         * @param message Skipped
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: Ydb.Topic.StreamWriteMessage.WriteResponse.WriteAck.Skipped, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this Skipped to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    namespace Skipped {

                        /** Reason enum. */
                        enum Reason {
                            REASON_UNSPECIFIED = 0,
                            REASON_ALREADY_WRITTEN = 1
                        }
                    }

                    /** Properties of a WrittenInTx. */
                    interface IWrittenInTx {
                    }

                    /** Represents a WrittenInTx. */
                    class WrittenInTx implements IWrittenInTx {

                        /**
                         * Constructs a new WrittenInTx.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: Ydb.Topic.StreamWriteMessage.WriteResponse.WriteAck.IWrittenInTx);

                        /**
                         * Creates a new WrittenInTx instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns WrittenInTx instance
                         */
                        public static create(properties?: Ydb.Topic.StreamWriteMessage.WriteResponse.WriteAck.IWrittenInTx): Ydb.Topic.StreamWriteMessage.WriteResponse.WriteAck.WrittenInTx;

                        /**
                         * Encodes the specified WrittenInTx message. Does not implicitly {@link Ydb.Topic.StreamWriteMessage.WriteResponse.WriteAck.WrittenInTx.verify|verify} messages.
                         * @param message WrittenInTx message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: Ydb.Topic.StreamWriteMessage.WriteResponse.WriteAck.IWrittenInTx, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified WrittenInTx message, length delimited. Does not implicitly {@link Ydb.Topic.StreamWriteMessage.WriteResponse.WriteAck.WrittenInTx.verify|verify} messages.
                         * @param message WrittenInTx message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: Ydb.Topic.StreamWriteMessage.WriteResponse.WriteAck.IWrittenInTx, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a WrittenInTx message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns WrittenInTx
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Topic.StreamWriteMessage.WriteResponse.WriteAck.WrittenInTx;

                        /**
                         * Decodes a WrittenInTx message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns WrittenInTx
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Topic.StreamWriteMessage.WriteResponse.WriteAck.WrittenInTx;

                        /**
                         * Verifies a WrittenInTx message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a WrittenInTx message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns WrittenInTx
                         */
                        public static fromObject(object: { [k: string]: any }): Ydb.Topic.StreamWriteMessage.WriteResponse.WriteAck.WrittenInTx;

                        /**
                         * Creates a plain object from a WrittenInTx message. Also converts values to other types if specified.
                         * @param message WrittenInTx
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: Ydb.Topic.StreamWriteMessage.WriteResponse.WriteAck.WrittenInTx, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this WrittenInTx to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }
                }

                /** Properties of a WriteStatistics. */
                interface IWriteStatistics {

                    /** WriteStatistics persistingTime */
                    persistingTime?: (google.protobuf.IDuration|null);

                    /** WriteStatistics minQueueWaitTime */
                    minQueueWaitTime?: (google.protobuf.IDuration|null);

                    /** WriteStatistics maxQueueWaitTime */
                    maxQueueWaitTime?: (google.protobuf.IDuration|null);

                    /** WriteStatistics partitionQuotaWaitTime */
                    partitionQuotaWaitTime?: (google.protobuf.IDuration|null);

                    /** WriteStatistics topicQuotaWaitTime */
                    topicQuotaWaitTime?: (google.protobuf.IDuration|null);
                }

                /** Represents a WriteStatistics. */
                class WriteStatistics implements IWriteStatistics {

                    /**
                     * Constructs a new WriteStatistics.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: Ydb.Topic.StreamWriteMessage.WriteResponse.IWriteStatistics);

                    /** WriteStatistics persistingTime. */
                    public persistingTime?: (google.protobuf.IDuration|null);

                    /** WriteStatistics minQueueWaitTime. */
                    public minQueueWaitTime?: (google.protobuf.IDuration|null);

                    /** WriteStatistics maxQueueWaitTime. */
                    public maxQueueWaitTime?: (google.protobuf.IDuration|null);

                    /** WriteStatistics partitionQuotaWaitTime. */
                    public partitionQuotaWaitTime?: (google.protobuf.IDuration|null);

                    /** WriteStatistics topicQuotaWaitTime. */
                    public topicQuotaWaitTime?: (google.protobuf.IDuration|null);

                    /**
                     * Creates a new WriteStatistics instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns WriteStatistics instance
                     */
                    public static create(properties?: Ydb.Topic.StreamWriteMessage.WriteResponse.IWriteStatistics): Ydb.Topic.StreamWriteMessage.WriteResponse.WriteStatistics;

                    /**
                     * Encodes the specified WriteStatistics message. Does not implicitly {@link Ydb.Topic.StreamWriteMessage.WriteResponse.WriteStatistics.verify|verify} messages.
                     * @param message WriteStatistics message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: Ydb.Topic.StreamWriteMessage.WriteResponse.IWriteStatistics, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified WriteStatistics message, length delimited. Does not implicitly {@link Ydb.Topic.StreamWriteMessage.WriteResponse.WriteStatistics.verify|verify} messages.
                     * @param message WriteStatistics message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: Ydb.Topic.StreamWriteMessage.WriteResponse.IWriteStatistics, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a WriteStatistics message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns WriteStatistics
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Topic.StreamWriteMessage.WriteResponse.WriteStatistics;

                    /**
                     * Decodes a WriteStatistics message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns WriteStatistics
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Topic.StreamWriteMessage.WriteResponse.WriteStatistics;

                    /**
                     * Verifies a WriteStatistics message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a WriteStatistics message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns WriteStatistics
                     */
                    public static fromObject(object: { [k: string]: any }): Ydb.Topic.StreamWriteMessage.WriteResponse.WriteStatistics;

                    /**
                     * Creates a plain object from a WriteStatistics message. Also converts values to other types if specified.
                     * @param message WriteStatistics
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: Ydb.Topic.StreamWriteMessage.WriteResponse.WriteStatistics, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this WriteStatistics to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };
                }
            }
        }

        /** Properties of a StreamReadMessage. */
        interface IStreamReadMessage {
        }

        /** Represents a StreamReadMessage. */
        class StreamReadMessage implements IStreamReadMessage {

            /**
             * Constructs a new StreamReadMessage.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Topic.IStreamReadMessage);

            /**
             * Creates a new StreamReadMessage instance using the specified properties.
             * @param [properties] Properties to set
             * @returns StreamReadMessage instance
             */
            public static create(properties?: Ydb.Topic.IStreamReadMessage): Ydb.Topic.StreamReadMessage;

            /**
             * Encodes the specified StreamReadMessage message. Does not implicitly {@link Ydb.Topic.StreamReadMessage.verify|verify} messages.
             * @param message StreamReadMessage message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Topic.IStreamReadMessage, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified StreamReadMessage message, length delimited. Does not implicitly {@link Ydb.Topic.StreamReadMessage.verify|verify} messages.
             * @param message StreamReadMessage message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Topic.IStreamReadMessage, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a StreamReadMessage message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns StreamReadMessage
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Topic.StreamReadMessage;

            /**
             * Decodes a StreamReadMessage message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns StreamReadMessage
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Topic.StreamReadMessage;

            /**
             * Verifies a StreamReadMessage message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a StreamReadMessage message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns StreamReadMessage
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Topic.StreamReadMessage;

            /**
             * Creates a plain object from a StreamReadMessage message. Also converts values to other types if specified.
             * @param message StreamReadMessage
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Topic.StreamReadMessage, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this StreamReadMessage to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        namespace StreamReadMessage {

            /** Properties of a PartitionSession. */
            interface IPartitionSession {

                /** PartitionSession partitionSessionId */
                partitionSessionId?: (number|Long|null);

                /** PartitionSession path */
                path?: (string|null);

                /** PartitionSession partitionId */
                partitionId?: (number|Long|null);
            }

            /** Represents a PartitionSession. */
            class PartitionSession implements IPartitionSession {

                /**
                 * Constructs a new PartitionSession.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: Ydb.Topic.StreamReadMessage.IPartitionSession);

                /** PartitionSession partitionSessionId. */
                public partitionSessionId: (number|Long);

                /** PartitionSession path. */
                public path: string;

                /** PartitionSession partitionId. */
                public partitionId: (number|Long);

                /**
                 * Creates a new PartitionSession instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns PartitionSession instance
                 */
                public static create(properties?: Ydb.Topic.StreamReadMessage.IPartitionSession): Ydb.Topic.StreamReadMessage.PartitionSession;

                /**
                 * Encodes the specified PartitionSession message. Does not implicitly {@link Ydb.Topic.StreamReadMessage.PartitionSession.verify|verify} messages.
                 * @param message PartitionSession message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: Ydb.Topic.StreamReadMessage.IPartitionSession, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified PartitionSession message, length delimited. Does not implicitly {@link Ydb.Topic.StreamReadMessage.PartitionSession.verify|verify} messages.
                 * @param message PartitionSession message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: Ydb.Topic.StreamReadMessage.IPartitionSession, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a PartitionSession message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns PartitionSession
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Topic.StreamReadMessage.PartitionSession;

                /**
                 * Decodes a PartitionSession message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns PartitionSession
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Topic.StreamReadMessage.PartitionSession;

                /**
                 * Verifies a PartitionSession message.
                 * @param message Plain object to verify
                 * @returns `null` if valid, otherwise the reason why it is not
                 */
                public static verify(message: { [k: string]: any }): (string|null);

                /**
                 * Creates a PartitionSession message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns PartitionSession
                 */
                public static fromObject(object: { [k: string]: any }): Ydb.Topic.StreamReadMessage.PartitionSession;

                /**
                 * Creates a plain object from a PartitionSession message. Also converts values to other types if specified.
                 * @param message PartitionSession
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: Ydb.Topic.StreamReadMessage.PartitionSession, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this PartitionSession to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };
            }

            /** Properties of a FromClient. */
            interface IFromClient {

                /** FromClient initRequest */
                initRequest?: (Ydb.Topic.StreamReadMessage.IInitRequest|null);

                /** FromClient readRequest */
                readRequest?: (Ydb.Topic.StreamReadMessage.IReadRequest|null);

                /** FromClient commitOffsetRequest */
                commitOffsetRequest?: (Ydb.Topic.StreamReadMessage.ICommitOffsetRequest|null);

                /** FromClient partitionSessionStatusRequest */
                partitionSessionStatusRequest?: (Ydb.Topic.StreamReadMessage.IPartitionSessionStatusRequest|null);

                /** FromClient updateTokenRequest */
                updateTokenRequest?: (Ydb.Topic.IUpdateTokenRequest|null);

                /** FromClient directReadAck */
                directReadAck?: (Ydb.Topic.StreamReadMessage.IDirectReadAck|null);

                /** FromClient startPartitionSessionResponse */
                startPartitionSessionResponse?: (Ydb.Topic.StreamReadMessage.IStartPartitionSessionResponse|null);

                /** FromClient stopPartitionSessionResponse */
                stopPartitionSessionResponse?: (Ydb.Topic.StreamReadMessage.IStopPartitionSessionResponse|null);
            }

            /** Represents a FromClient. */
            class FromClient implements IFromClient {

                /**
                 * Constructs a new FromClient.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: Ydb.Topic.StreamReadMessage.IFromClient);

                /** FromClient initRequest. */
                public initRequest?: (Ydb.Topic.StreamReadMessage.IInitRequest|null);

                /** FromClient readRequest. */
                public readRequest?: (Ydb.Topic.StreamReadMessage.IReadRequest|null);

                /** FromClient commitOffsetRequest. */
                public commitOffsetRequest?: (Ydb.Topic.StreamReadMessage.ICommitOffsetRequest|null);

                /** FromClient partitionSessionStatusRequest. */
                public partitionSessionStatusRequest?: (Ydb.Topic.StreamReadMessage.IPartitionSessionStatusRequest|null);

                /** FromClient updateTokenRequest. */
                public updateTokenRequest?: (Ydb.Topic.IUpdateTokenRequest|null);

                /** FromClient directReadAck. */
                public directReadAck?: (Ydb.Topic.StreamReadMessage.IDirectReadAck|null);

                /** FromClient startPartitionSessionResponse. */
                public startPartitionSessionResponse?: (Ydb.Topic.StreamReadMessage.IStartPartitionSessionResponse|null);

                /** FromClient stopPartitionSessionResponse. */
                public stopPartitionSessionResponse?: (Ydb.Topic.StreamReadMessage.IStopPartitionSessionResponse|null);

                /** FromClient clientMessage. */
                public clientMessage?: ("initRequest"|"readRequest"|"commitOffsetRequest"|"partitionSessionStatusRequest"|"updateTokenRequest"|"directReadAck"|"startPartitionSessionResponse"|"stopPartitionSessionResponse");

                /**
                 * Creates a new FromClient instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns FromClient instance
                 */
                public static create(properties?: Ydb.Topic.StreamReadMessage.IFromClient): Ydb.Topic.StreamReadMessage.FromClient;

                /**
                 * Encodes the specified FromClient message. Does not implicitly {@link Ydb.Topic.StreamReadMessage.FromClient.verify|verify} messages.
                 * @param message FromClient message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: Ydb.Topic.StreamReadMessage.IFromClient, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified FromClient message, length delimited. Does not implicitly {@link Ydb.Topic.StreamReadMessage.FromClient.verify|verify} messages.
                 * @param message FromClient message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: Ydb.Topic.StreamReadMessage.IFromClient, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a FromClient message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns FromClient
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Topic.StreamReadMessage.FromClient;

                /**
                 * Decodes a FromClient message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns FromClient
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Topic.StreamReadMessage.FromClient;

                /**
                 * Verifies a FromClient message.
                 * @param message Plain object to verify
                 * @returns `null` if valid, otherwise the reason why it is not
                 */
                public static verify(message: { [k: string]: any }): (string|null);

                /**
                 * Creates a FromClient message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns FromClient
                 */
                public static fromObject(object: { [k: string]: any }): Ydb.Topic.StreamReadMessage.FromClient;

                /**
                 * Creates a plain object from a FromClient message. Also converts values to other types if specified.
                 * @param message FromClient
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: Ydb.Topic.StreamReadMessage.FromClient, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this FromClient to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };
            }

            /** Properties of a FromServer. */
            interface IFromServer {

                /** FromServer status */
                status?: (Ydb.StatusIds.StatusCode|null);

                /** FromServer issues */
                issues?: (Ydb.Issue.IIssueMessage[]|null);

                /** FromServer initResponse */
                initResponse?: (Ydb.Topic.StreamReadMessage.IInitResponse|null);

                /** FromServer readResponse */
                readResponse?: (Ydb.Topic.StreamReadMessage.IReadResponse|null);

                /** FromServer commitOffsetResponse */
                commitOffsetResponse?: (Ydb.Topic.StreamReadMessage.ICommitOffsetResponse|null);

                /** FromServer partitionSessionStatusResponse */
                partitionSessionStatusResponse?: (Ydb.Topic.StreamReadMessage.IPartitionSessionStatusResponse|null);

                /** FromServer updateTokenResponse */
                updateTokenResponse?: (Ydb.Topic.IUpdateTokenResponse|null);

                /** FromServer startPartitionSessionRequest */
                startPartitionSessionRequest?: (Ydb.Topic.StreamReadMessage.IStartPartitionSessionRequest|null);

                /** FromServer stopPartitionSessionRequest */
                stopPartitionSessionRequest?: (Ydb.Topic.StreamReadMessage.IStopPartitionSessionRequest|null);

                /** FromServer updatePartitionSession */
                updatePartitionSession?: (Ydb.Topic.StreamReadMessage.IUpdatePartitionSession|null);
            }

            /** Represents a FromServer. */
            class FromServer implements IFromServer {

                /**
                 * Constructs a new FromServer.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: Ydb.Topic.StreamReadMessage.IFromServer);

                /** FromServer status. */
                public status: Ydb.StatusIds.StatusCode;

                /** FromServer issues. */
                public issues: Ydb.Issue.IIssueMessage[];

                /** FromServer initResponse. */
                public initResponse?: (Ydb.Topic.StreamReadMessage.IInitResponse|null);

                /** FromServer readResponse. */
                public readResponse?: (Ydb.Topic.StreamReadMessage.IReadResponse|null);

                /** FromServer commitOffsetResponse. */
                public commitOffsetResponse?: (Ydb.Topic.StreamReadMessage.ICommitOffsetResponse|null);

                /** FromServer partitionSessionStatusResponse. */
                public partitionSessionStatusResponse?: (Ydb.Topic.StreamReadMessage.IPartitionSessionStatusResponse|null);

                /** FromServer updateTokenResponse. */
                public updateTokenResponse?: (Ydb.Topic.IUpdateTokenResponse|null);

                /** FromServer startPartitionSessionRequest. */
                public startPartitionSessionRequest?: (Ydb.Topic.StreamReadMessage.IStartPartitionSessionRequest|null);

                /** FromServer stopPartitionSessionRequest. */
                public stopPartitionSessionRequest?: (Ydb.Topic.StreamReadMessage.IStopPartitionSessionRequest|null);

                /** FromServer updatePartitionSession. */
                public updatePartitionSession?: (Ydb.Topic.StreamReadMessage.IUpdatePartitionSession|null);

                /** FromServer serverMessage. */
                public serverMessage?: ("initResponse"|"readResponse"|"commitOffsetResponse"|"partitionSessionStatusResponse"|"updateTokenResponse"|"startPartitionSessionRequest"|"stopPartitionSessionRequest"|"updatePartitionSession");

                /**
                 * Creates a new FromServer instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns FromServer instance
                 */
                public static create(properties?: Ydb.Topic.StreamReadMessage.IFromServer): Ydb.Topic.StreamReadMessage.FromServer;

                /**
                 * Encodes the specified FromServer message. Does not implicitly {@link Ydb.Topic.StreamReadMessage.FromServer.verify|verify} messages.
                 * @param message FromServer message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: Ydb.Topic.StreamReadMessage.IFromServer, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified FromServer message, length delimited. Does not implicitly {@link Ydb.Topic.StreamReadMessage.FromServer.verify|verify} messages.
                 * @param message FromServer message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: Ydb.Topic.StreamReadMessage.IFromServer, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a FromServer message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns FromServer
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Topic.StreamReadMessage.FromServer;

                /**
                 * Decodes a FromServer message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns FromServer
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Topic.StreamReadMessage.FromServer;

                /**
                 * Verifies a FromServer message.
                 * @param message Plain object to verify
                 * @returns `null` if valid, otherwise the reason why it is not
                 */
                public static verify(message: { [k: string]: any }): (string|null);

                /**
                 * Creates a FromServer message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns FromServer
                 */
                public static fromObject(object: { [k: string]: any }): Ydb.Topic.StreamReadMessage.FromServer;

                /**
                 * Creates a plain object from a FromServer message. Also converts values to other types if specified.
                 * @param message FromServer
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: Ydb.Topic.StreamReadMessage.FromServer, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this FromServer to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };
            }

            /** Properties of an InitRequest. */
            interface IInitRequest {

                /** InitRequest topicsReadSettings */
                topicsReadSettings?: (Ydb.Topic.StreamReadMessage.InitRequest.ITopicReadSettings[]|null);

                /** InitRequest consumer */
                consumer?: (string|null);

                /** InitRequest readerName */
                readerName?: (string|null);

                /** InitRequest directRead */
                directRead?: (boolean|null);
            }

            /** Represents an InitRequest. */
            class InitRequest implements IInitRequest {

                /**
                 * Constructs a new InitRequest.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: Ydb.Topic.StreamReadMessage.IInitRequest);

                /** InitRequest topicsReadSettings. */
                public topicsReadSettings: Ydb.Topic.StreamReadMessage.InitRequest.ITopicReadSettings[];

                /** InitRequest consumer. */
                public consumer: string;

                /** InitRequest readerName. */
                public readerName: string;

                /** InitRequest directRead. */
                public directRead: boolean;

                /**
                 * Creates a new InitRequest instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns InitRequest instance
                 */
                public static create(properties?: Ydb.Topic.StreamReadMessage.IInitRequest): Ydb.Topic.StreamReadMessage.InitRequest;

                /**
                 * Encodes the specified InitRequest message. Does not implicitly {@link Ydb.Topic.StreamReadMessage.InitRequest.verify|verify} messages.
                 * @param message InitRequest message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: Ydb.Topic.StreamReadMessage.IInitRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified InitRequest message, length delimited. Does not implicitly {@link Ydb.Topic.StreamReadMessage.InitRequest.verify|verify} messages.
                 * @param message InitRequest message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: Ydb.Topic.StreamReadMessage.IInitRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes an InitRequest message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns InitRequest
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Topic.StreamReadMessage.InitRequest;

                /**
                 * Decodes an InitRequest message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns InitRequest
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Topic.StreamReadMessage.InitRequest;

                /**
                 * Verifies an InitRequest message.
                 * @param message Plain 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 InitRequest message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns InitRequest
                 */
                public static fromObject(object: { [k: string]: any }): Ydb.Topic.StreamReadMessage.InitRequest;

                /**
                 * Creates a plain object from an InitRequest message. Also converts values to other types if specified.
                 * @param message InitRequest
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: Ydb.Topic.StreamReadMessage.InitRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this InitRequest to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };
            }

            namespace InitRequest {

                /** Properties of a TopicReadSettings. */
                interface ITopicReadSettings {

                    /** TopicReadSettings path */
                    path?: (string|null);

                    /** TopicReadSettings partitionIds */
                    partitionIds?: ((number|Long)[]|null);

                    /** TopicReadSettings maxLag */
                    maxLag?: (google.protobuf.IDuration|null);

                    /** TopicReadSettings readFrom */
                    readFrom?: (google.protobuf.ITimestamp|null);
                }

                /** Represents a TopicReadSettings. */
                class TopicReadSettings implements ITopicReadSettings {

                    /**
                     * Constructs a new TopicReadSettings.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: Ydb.Topic.StreamReadMessage.InitRequest.ITopicReadSettings);

                    /** TopicReadSettings path. */
                    public path: string;

                    /** TopicReadSettings partitionIds. */
                    public partitionIds: (number|Long)[];

                    /** TopicReadSettings maxLag. */
                    public maxLag?: (google.protobuf.IDuration|null);

                    /** TopicReadSettings readFrom. */
                    public readFrom?: (google.protobuf.ITimestamp|null);

                    /**
                     * Creates a new TopicReadSettings instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TopicReadSettings instance
                     */
                    public static create(properties?: Ydb.Topic.StreamReadMessage.InitRequest.ITopicReadSettings): Ydb.Topic.StreamReadMessage.InitRequest.TopicReadSettings;

                    /**
                     * Encodes the specified TopicReadSettings message. Does not implicitly {@link Ydb.Topic.StreamReadMessage.InitRequest.TopicReadSettings.verify|verify} messages.
                     * @param message TopicReadSettings message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: Ydb.Topic.StreamReadMessage.InitRequest.ITopicReadSettings, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TopicReadSettings message, length delimited. Does not implicitly {@link Ydb.Topic.StreamReadMessage.InitRequest.TopicReadSettings.verify|verify} messages.
                     * @param message TopicReadSettings message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: Ydb.Topic.StreamReadMessage.InitRequest.ITopicReadSettings, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TopicReadSettings message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TopicReadSettings
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Topic.StreamReadMessage.InitRequest.TopicReadSettings;

                    /**
                     * Decodes a TopicReadSettings message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TopicReadSettings
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Topic.StreamReadMessage.InitRequest.TopicReadSettings;

                    /**
                     * Verifies a TopicReadSettings message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TopicReadSettings message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TopicReadSettings
                     */
                    public static fromObject(object: { [k: string]: any }): Ydb.Topic.StreamReadMessage.InitRequest.TopicReadSettings;

                    /**
                     * Creates a plain object from a TopicReadSettings message. Also converts values to other types if specified.
                     * @param message TopicReadSettings
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: Ydb.Topic.StreamReadMessage.InitRequest.TopicReadSettings, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TopicReadSettings to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };
                }
            }

            /** Properties of an InitResponse. */
            interface IInitResponse {

                /** InitResponse sessionId */
                sessionId?: (string|null);
            }

            /** Represents an InitResponse. */
            class InitResponse implements IInitResponse {

                /**
                 * Constructs a new InitResponse.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: Ydb.Topic.StreamReadMessage.IInitResponse);

                /** InitResponse sessionId. */
                public sessionId: string;

                /**
                 * Creates a new InitResponse instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns InitResponse instance
                 */
                public static create(properties?: Ydb.Topic.StreamReadMessage.IInitResponse): Ydb.Topic.StreamReadMessage.InitResponse;

                /**
                 * Encodes the specified InitResponse message. Does not implicitly {@link Ydb.Topic.StreamReadMessage.InitResponse.verify|verify} messages.
                 * @param message InitResponse message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: Ydb.Topic.StreamReadMessage.IInitResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified InitResponse message, length delimited. Does not implicitly {@link Ydb.Topic.StreamReadMessage.InitResponse.verify|verify} messages.
                 * @param message InitResponse message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: Ydb.Topic.StreamReadMessage.IInitResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes an InitResponse message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns InitResponse
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Topic.StreamReadMessage.InitResponse;

                /**
                 * Decodes an InitResponse message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns InitResponse
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Topic.StreamReadMessage.InitResponse;

                /**
                 * Verifies an InitResponse message.
                 * @param message Plain 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 InitResponse message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns InitResponse
                 */
                public static fromObject(object: { [k: string]: any }): Ydb.Topic.StreamReadMessage.InitResponse;

                /**
                 * Creates a plain object from an InitResponse message. Also converts values to other types if specified.
                 * @param message InitResponse
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: Ydb.Topic.StreamReadMessage.InitResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this InitResponse to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };
            }

            /** Properties of a ReadRequest. */
            interface IReadRequest {

                /** ReadRequest bytesSize */
                bytesSize?: (number|Long|null);
            }

            /** Represents a ReadRequest. */
            class ReadRequest implements IReadRequest {

                /**
                 * Constructs a new ReadRequest.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: Ydb.Topic.StreamReadMessage.IReadRequest);

                /** ReadRequest bytesSize. */
                public bytesSize: (number|Long);

                /**
                 * Creates a new ReadRequest instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns ReadRequest instance
                 */
                public static create(properties?: Ydb.Topic.StreamReadMessage.IReadRequest): Ydb.Topic.StreamReadMessage.ReadRequest;

                /**
                 * Encodes the specified ReadRequest message. Does not implicitly {@link Ydb.Topic.StreamReadMessage.ReadRequest.verify|verify} messages.
                 * @param message ReadRequest message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: Ydb.Topic.StreamReadMessage.IReadRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified ReadRequest message, length delimited. Does not implicitly {@link Ydb.Topic.StreamReadMessage.ReadRequest.verify|verify} messages.
                 * @param message ReadRequest message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: Ydb.Topic.StreamReadMessage.IReadRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a ReadRequest message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns ReadRequest
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Topic.StreamReadMessage.ReadRequest;

                /**
                 * Decodes a ReadRequest message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns ReadRequest
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Topic.StreamReadMessage.ReadRequest;

                /**
                 * Verifies a ReadRequest message.
                 * @param message Plain object to verify
                 * @returns `null` if valid, otherwise the reason why it is not
                 */
                public static verify(message: { [k: string]: any }): (string|null);

                /**
                 * Creates a ReadRequest message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns ReadRequest
                 */
                public static fromObject(object: { [k: string]: any }): Ydb.Topic.StreamReadMessage.ReadRequest;

                /**
                 * Creates a plain object from a ReadRequest message. Also converts values to other types if specified.
                 * @param message ReadRequest
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: Ydb.Topic.StreamReadMessage.ReadRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this ReadRequest to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };
            }

            /** Properties of a ReadResponse. */
            interface IReadResponse {

                /** ReadResponse partitionData */
                partitionData?: (Ydb.Topic.StreamReadMessage.ReadResponse.IPartitionData[]|null);

                /** ReadResponse bytesSize */
                bytesSize?: (number|Long|null);
            }

            /** Represents a ReadResponse. */
            class ReadResponse implements IReadResponse {

                /**
                 * Constructs a new ReadResponse.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: Ydb.Topic.StreamReadMessage.IReadResponse);

                /** ReadResponse partitionData. */
                public partitionData: Ydb.Topic.StreamReadMessage.ReadResponse.IPartitionData[];

                /** ReadResponse bytesSize. */
                public bytesSize: (number|Long);

                /**
                 * Creates a new ReadResponse instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns ReadResponse instance
                 */
                public static create(properties?: Ydb.Topic.StreamReadMessage.IReadResponse): Ydb.Topic.StreamReadMessage.ReadResponse;

                /**
                 * Encodes the specified ReadResponse message. Does not implicitly {@link Ydb.Topic.StreamReadMessage.ReadResponse.verify|verify} messages.
                 * @param message ReadResponse message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: Ydb.Topic.StreamReadMessage.IReadResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified ReadResponse message, length delimited. Does not implicitly {@link Ydb.Topic.StreamReadMessage.ReadResponse.verify|verify} messages.
                 * @param message ReadResponse message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: Ydb.Topic.StreamReadMessage.IReadResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a ReadResponse message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns ReadResponse
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Topic.StreamReadMessage.ReadResponse;

                /**
                 * Decodes a ReadResponse message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns ReadResponse
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Topic.StreamReadMessage.ReadResponse;

                /**
                 * Verifies a ReadResponse message.
                 * @param message Plain object to verify
                 * @returns `null` if valid, otherwise the reason why it is not
                 */
                public static verify(message: { [k: string]: any }): (string|null);

                /**
                 * Creates a ReadResponse message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns ReadResponse
                 */
                public static fromObject(object: { [k: string]: any }): Ydb.Topic.StreamReadMessage.ReadResponse;

                /**
                 * Creates a plain object from a ReadResponse message. Also converts values to other types if specified.
                 * @param message ReadResponse
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: Ydb.Topic.StreamReadMessage.ReadResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this ReadResponse to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };
            }

            namespace ReadResponse {

                /** Properties of a MessageData. */
                interface IMessageData {

                    /** MessageData offset */
                    offset?: (number|Long|null);

                    /** MessageData seqNo */
                    seqNo?: (number|Long|null);

                    /** MessageData createdAt */
                    createdAt?: (google.protobuf.ITimestamp|null);

                    /** MessageData data */
                    data?: (Uint8Array|null);

                    /** MessageData uncompressedSize */
                    uncompressedSize?: (number|Long|null);

                    /** MessageData messageGroupId */
                    messageGroupId?: (string|null);

                    /** MessageData metadataItems */
                    metadataItems?: (Ydb.Topic.IMetadataItem[]|null);
                }

                /** Represents a MessageData. */
                class MessageData implements IMessageData {

                    /**
                     * Constructs a new MessageData.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: Ydb.Topic.StreamReadMessage.ReadResponse.IMessageData);

                    /** MessageData offset. */
                    public offset: (number|Long);

                    /** MessageData seqNo. */
                    public seqNo: (number|Long);

                    /** MessageData createdAt. */
                    public createdAt?: (google.protobuf.ITimestamp|null);

                    /** MessageData data. */
                    public data: Uint8Array;

                    /** MessageData uncompressedSize. */
                    public uncompressedSize: (number|Long);

                    /** MessageData messageGroupId. */
                    public messageGroupId: string;

                    /** MessageData metadataItems. */
                    public metadataItems: Ydb.Topic.IMetadataItem[];

                    /**
                     * Creates a new MessageData instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns MessageData instance
                     */
                    public static create(properties?: Ydb.Topic.StreamReadMessage.ReadResponse.IMessageData): Ydb.Topic.StreamReadMessage.ReadResponse.MessageData;

                    /**
                     * Encodes the specified MessageData message. Does not implicitly {@link Ydb.Topic.StreamReadMessage.ReadResponse.MessageData.verify|verify} messages.
                     * @param message MessageData message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: Ydb.Topic.StreamReadMessage.ReadResponse.IMessageData, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified MessageData message, length delimited. Does not implicitly {@link Ydb.Topic.StreamReadMessage.ReadResponse.MessageData.verify|verify} messages.
                     * @param message MessageData message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: Ydb.Topic.StreamReadMessage.ReadResponse.IMessageData, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a MessageData message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns MessageData
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Topic.StreamReadMessage.ReadResponse.MessageData;

                    /**
                     * Decodes a MessageData message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns MessageData
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Topic.StreamReadMessage.ReadResponse.MessageData;

                    /**
                     * Verifies a MessageData message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a MessageData message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns MessageData
                     */
                    public static fromObject(object: { [k: string]: any }): Ydb.Topic.StreamReadMessage.ReadResponse.MessageData;

                    /**
                     * Creates a plain object from a MessageData message. Also converts values to other types if specified.
                     * @param message MessageData
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: Ydb.Topic.StreamReadMessage.ReadResponse.MessageData, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this MessageData to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };
                }

                /** Properties of a Batch. */
                interface IBatch {

                    /** Batch messageData */
                    messageData?: (Ydb.Topic.StreamReadMessage.ReadResponse.IMessageData[]|null);

                    /** Batch producerId */
                    producerId?: (string|null);

                    /** Batch writeSessionMeta */
                    writeSessionMeta?: ({ [k: string]: string }|null);

                    /** Batch codec */
                    codec?: (number|null);

                    /** Batch writtenAt */
                    writtenAt?: (google.protobuf.ITimestamp|null);
                }

                /** Represents a Batch. */
                class Batch implements IBatch {

                    /**
                     * Constructs a new Batch.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: Ydb.Topic.StreamReadMessage.ReadResponse.IBatch);

                    /** Batch messageData. */
                    public messageData: Ydb.Topic.StreamReadMessage.ReadResponse.IMessageData[];

                    /** Batch producerId. */
                    public producerId: string;

                    /** Batch writeSessionMeta. */
                    public writeSessionMeta: { [k: string]: string };

                    /** Batch codec. */
                    public codec: number;

                    /** Batch writtenAt. */
                    public writtenAt?: (google.protobuf.ITimestamp|null);

                    /**
                     * Creates a new Batch instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Batch instance
                     */
                    public static create(properties?: Ydb.Topic.StreamReadMessage.ReadResponse.IBatch): Ydb.Topic.StreamReadMessage.ReadResponse.Batch;

                    /**
                     * Encodes the specified Batch message. Does not implicitly {@link Ydb.Topic.StreamReadMessage.ReadResponse.Batch.verify|verify} messages.
                     * @param message Batch message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: Ydb.Topic.StreamReadMessage.ReadResponse.IBatch, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Batch message, length delimited. Does not implicitly {@link Ydb.Topic.StreamReadMessage.ReadResponse.Batch.verify|verify} messages.
                     * @param message Batch message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: Ydb.Topic.StreamReadMessage.ReadResponse.IBatch, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a Batch message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Batch
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Topic.StreamReadMessage.ReadResponse.Batch;

                    /**
                     * Decodes a Batch message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Batch
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Topic.StreamReadMessage.ReadResponse.Batch;

                    /**
                     * Verifies a Batch message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a Batch message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Batch
                     */
                    public static fromObject(object: { [k: string]: any }): Ydb.Topic.StreamReadMessage.ReadResponse.Batch;

                    /**
                     * Creates a plain object from a Batch message. Also converts values to other types if specified.
                     * @param message Batch
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: Ydb.Topic.StreamReadMessage.ReadResponse.Batch, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Batch to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };
                }

                /** Properties of a PartitionData. */
                interface IPartitionData {

                    /** PartitionData partitionSessionId */
                    partitionSessionId?: (number|Long|null);

                    /** PartitionData batches */
                    batches?: (Ydb.Topic.StreamReadMessage.ReadResponse.IBatch[]|null);
                }

                /** Represents a PartitionData. */
                class PartitionData implements IPartitionData {

                    /**
                     * Constructs a new PartitionData.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: Ydb.Topic.StreamReadMessage.ReadResponse.IPartitionData);

                    /** PartitionData partitionSessionId. */
                    public partitionSessionId: (number|Long);

                    /** PartitionData batches. */
                    public batches: Ydb.Topic.StreamReadMessage.ReadResponse.IBatch[];

                    /**
                     * Creates a new PartitionData instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PartitionData instance
                     */
                    public static create(properties?: Ydb.Topic.StreamReadMessage.ReadResponse.IPartitionData): Ydb.Topic.StreamReadMessage.ReadResponse.PartitionData;

                    /**
                     * Encodes the specified PartitionData message. Does not implicitly {@link Ydb.Topic.StreamReadMessage.ReadResponse.PartitionData.verify|verify} messages.
                     * @param message PartitionData message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: Ydb.Topic.StreamReadMessage.ReadResponse.IPartitionData, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PartitionData message, length delimited. Does not implicitly {@link Ydb.Topic.StreamReadMessage.ReadResponse.PartitionData.verify|verify} messages.
                     * @param message PartitionData message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: Ydb.Topic.StreamReadMessage.ReadResponse.IPartitionData, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PartitionData message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PartitionData
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Topic.StreamReadMessage.ReadResponse.PartitionData;

                    /**
                     * Decodes a PartitionData message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PartitionData
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Topic.StreamReadMessage.ReadResponse.PartitionData;

                    /**
                     * Verifies a PartitionData message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PartitionData message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PartitionData
                     */
                    public static fromObject(object: { [k: string]: any }): Ydb.Topic.StreamReadMessage.ReadResponse.PartitionData;

                    /**
                     * Creates a plain object from a PartitionData message. Also converts values to other types if specified.
                     * @param message PartitionData
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: Ydb.Topic.StreamReadMessage.ReadResponse.PartitionData, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PartitionData to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };
                }
            }

            /** Properties of a CommitOffsetRequest. */
            interface ICommitOffsetRequest {

                /** CommitOffsetRequest commitOffsets */
                commitOffsets?: (Ydb.Topic.StreamReadMessage.CommitOffsetRequest.IPartitionCommitOffset[]|null);
            }

            /** Represents a CommitOffsetRequest. */
            class CommitOffsetRequest implements ICommitOffsetRequest {

                /**
                 * Constructs a new CommitOffsetRequest.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: Ydb.Topic.StreamReadMessage.ICommitOffsetRequest);

                /** CommitOffsetRequest commitOffsets. */
                public commitOffsets: Ydb.Topic.StreamReadMessage.CommitOffsetRequest.IPartitionCommitOffset[];

                /**
                 * Creates a new CommitOffsetRequest instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns CommitOffsetRequest instance
                 */
                public static create(properties?: Ydb.Topic.StreamReadMessage.ICommitOffsetRequest): Ydb.Topic.StreamReadMessage.CommitOffsetRequest;

                /**
                 * Encodes the specified CommitOffsetRequest message. Does not implicitly {@link Ydb.Topic.StreamReadMessage.CommitOffsetRequest.verify|verify} messages.
                 * @param message CommitOffsetRequest message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: Ydb.Topic.StreamReadMessage.ICommitOffsetRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified CommitOffsetRequest message, length delimited. Does not implicitly {@link Ydb.Topic.StreamReadMessage.CommitOffsetRequest.verify|verify} messages.
                 * @param message CommitOffsetRequest message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: Ydb.Topic.StreamReadMessage.ICommitOffsetRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a CommitOffsetRequest message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns CommitOffsetRequest
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Topic.StreamReadMessage.CommitOffsetRequest;

                /**
                 * Decodes a CommitOffsetRequest message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns CommitOffsetRequest
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Topic.StreamReadMessage.CommitOffsetRequest;

                /**
                 * Verifies a CommitOffsetRequest message.
                 * @param message Plain object to verify
                 * @returns `null` if valid, otherwise the reason why it is not
                 */
                public static verify(message: { [k: string]: any }): (string|null);

                /**
                 * Creates a CommitOffsetRequest message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns CommitOffsetRequest
                 */
                public static fromObject(object: { [k: string]: any }): Ydb.Topic.StreamReadMessage.CommitOffsetRequest;

                /**
                 * Creates a plain object from a CommitOffsetRequest message. Also converts values to other types if specified.
                 * @param message CommitOffsetRequest
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: Ydb.Topic.StreamReadMessage.CommitOffsetRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this CommitOffsetRequest to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };
            }

            namespace CommitOffsetRequest {

                /** Properties of a PartitionCommitOffset. */
                interface IPartitionCommitOffset {

                    /** PartitionCommitOffset partitionSessionId */
                    partitionSessionId?: (number|Long|null);

                    /** PartitionCommitOffset offsets */
                    offsets?: (Ydb.Topic.IOffsetsRange[]|null);
                }

                /** Represents a PartitionCommitOffset. */
                class PartitionCommitOffset implements IPartitionCommitOffset {

                    /**
                     * Constructs a new PartitionCommitOffset.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: Ydb.Topic.StreamReadMessage.CommitOffsetRequest.IPartitionCommitOffset);

                    /** PartitionCommitOffset partitionSessionId. */
                    public partitionSessionId: (number|Long);

                    /** PartitionCommitOffset offsets. */
                    public offsets: Ydb.Topic.IOffsetsRange[];

                    /**
                     * Creates a new PartitionCommitOffset instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PartitionCommitOffset instance
                     */
                    public static create(properties?: Ydb.Topic.StreamReadMessage.CommitOffsetRequest.IPartitionCommitOffset): Ydb.Topic.StreamReadMessage.CommitOffsetRequest.PartitionCommitOffset;

                    /**
                     * Encodes the specified PartitionCommitOffset message. Does not implicitly {@link Ydb.Topic.StreamReadMessage.CommitOffsetRequest.PartitionCommitOffset.verify|verify} messages.
                     * @param message PartitionCommitOffset message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: Ydb.Topic.StreamReadMessage.CommitOffsetRequest.IPartitionCommitOffset, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PartitionCommitOffset message, length delimited. Does not implicitly {@link Ydb.Topic.StreamReadMessage.CommitOffsetRequest.PartitionCommitOffset.verify|verify} messages.
                     * @param message PartitionCommitOffset message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: Ydb.Topic.StreamReadMessage.CommitOffsetRequest.IPartitionCommitOffset, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PartitionCommitOffset message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PartitionCommitOffset
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Topic.StreamReadMessage.CommitOffsetRequest.PartitionCommitOffset;

                    /**
                     * Decodes a PartitionCommitOffset message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PartitionCommitOffset
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Topic.StreamReadMessage.CommitOffsetRequest.PartitionCommitOffset;

                    /**
                     * Verifies a PartitionCommitOffset message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PartitionCommitOffset message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PartitionCommitOffset
                     */
                    public static fromObject(object: { [k: string]: any }): Ydb.Topic.StreamReadMessage.CommitOffsetRequest.PartitionCommitOffset;

                    /**
                     * Creates a plain object from a PartitionCommitOffset message. Also converts values to other types if specified.
                     * @param message PartitionCommitOffset
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: Ydb.Topic.StreamReadMessage.CommitOffsetRequest.PartitionCommitOffset, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PartitionCommitOffset to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };
                }
            }

            /** Properties of a CommitOffsetResponse. */
            interface ICommitOffsetResponse {

                /** CommitOffsetResponse partitionsCommittedOffsets */
                partitionsCommittedOffsets?: (Ydb.Topic.StreamReadMessage.CommitOffsetResponse.IPartitionCommittedOffset[]|null);
            }

            /** Represents a CommitOffsetResponse. */
            class CommitOffsetResponse implements ICommitOffsetResponse {

                /**
                 * Constructs a new CommitOffsetResponse.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: Ydb.Topic.StreamReadMessage.ICommitOffsetResponse);

                /** CommitOffsetResponse partitionsCommittedOffsets. */
                public partitionsCommittedOffsets: Ydb.Topic.StreamReadMessage.CommitOffsetResponse.IPartitionCommittedOffset[];

                /**
                 * Creates a new CommitOffsetResponse instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns CommitOffsetResponse instance
                 */
                public static create(properties?: Ydb.Topic.StreamReadMessage.ICommitOffsetResponse): Ydb.Topic.StreamReadMessage.CommitOffsetResponse;

                /**
                 * Encodes the specified CommitOffsetResponse message. Does not implicitly {@link Ydb.Topic.StreamReadMessage.CommitOffsetResponse.verify|verify} messages.
                 * @param message CommitOffsetResponse message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: Ydb.Topic.StreamReadMessage.ICommitOffsetResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified CommitOffsetResponse message, length delimited. Does not implicitly {@link Ydb.Topic.StreamReadMessage.CommitOffsetResponse.verify|verify} messages.
                 * @param message CommitOffsetResponse message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: Ydb.Topic.StreamReadMessage.ICommitOffsetResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a CommitOffsetResponse message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns CommitOffsetResponse
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Topic.StreamReadMessage.CommitOffsetResponse;

                /**
                 * Decodes a CommitOffsetResponse message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns CommitOffsetResponse
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Topic.StreamReadMessage.CommitOffsetResponse;

                /**
                 * Verifies a CommitOffsetResponse message.
                 * @param message Plain object to verify
                 * @returns `null` if valid, otherwise the reason why it is not
                 */
                public static verify(message: { [k: string]: any }): (string|null);

                /**
                 * Creates a CommitOffsetResponse message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns CommitOffsetResponse
                 */
                public static fromObject(object: { [k: string]: any }): Ydb.Topic.StreamReadMessage.CommitOffsetResponse;

                /**
                 * Creates a plain object from a CommitOffsetResponse message. Also converts values to other types if specified.
                 * @param message CommitOffsetResponse
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: Ydb.Topic.StreamReadMessage.CommitOffsetResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this CommitOffsetResponse to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };
            }

            namespace CommitOffsetResponse {

                /** Properties of a PartitionCommittedOffset. */
                interface IPartitionCommittedOffset {

                    /** PartitionCommittedOffset partitionSessionId */
                    partitionSessionId?: (number|Long|null);

                    /** PartitionCommittedOffset committedOffset */
                    committedOffset?: (number|Long|null);
                }

                /** Represents a PartitionCommittedOffset. */
                class PartitionCommittedOffset implements IPartitionCommittedOffset {

                    /**
                     * Constructs a new PartitionCommittedOffset.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: Ydb.Topic.StreamReadMessage.CommitOffsetResponse.IPartitionCommittedOffset);

                    /** PartitionCommittedOffset partitionSessionId. */
                    public partitionSessionId: (number|Long);

                    /** PartitionCommittedOffset committedOffset. */
                    public committedOffset: (number|Long);

                    /**
                     * Creates a new PartitionCommittedOffset instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PartitionCommittedOffset instance
                     */
                    public static create(properties?: Ydb.Topic.StreamReadMessage.CommitOffsetResponse.IPartitionCommittedOffset): Ydb.Topic.StreamReadMessage.CommitOffsetResponse.PartitionCommittedOffset;

                    /**
                     * Encodes the specified PartitionCommittedOffset message. Does not implicitly {@link Ydb.Topic.StreamReadMessage.CommitOffsetResponse.PartitionCommittedOffset.verify|verify} messages.
                     * @param message PartitionCommittedOffset message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: Ydb.Topic.StreamReadMessage.CommitOffsetResponse.IPartitionCommittedOffset, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PartitionCommittedOffset message, length delimited. Does not implicitly {@link Ydb.Topic.StreamReadMessage.CommitOffsetResponse.PartitionCommittedOffset.verify|verify} messages.
                     * @param message PartitionCommittedOffset message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: Ydb.Topic.StreamReadMessage.CommitOffsetResponse.IPartitionCommittedOffset, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PartitionCommittedOffset message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PartitionCommittedOffset
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Topic.StreamReadMessage.CommitOffsetResponse.PartitionCommittedOffset;

                    /**
                     * Decodes a PartitionCommittedOffset message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PartitionCommittedOffset
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Topic.StreamReadMessage.CommitOffsetResponse.PartitionCommittedOffset;

                    /**
                     * Verifies a PartitionCommittedOffset message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PartitionCommittedOffset message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PartitionCommittedOffset
                     */
                    public static fromObject(object: { [k: string]: any }): Ydb.Topic.StreamReadMessage.CommitOffsetResponse.PartitionCommittedOffset;

                    /**
                     * Creates a plain object from a PartitionCommittedOffset message. Also converts values to other types if specified.
                     * @param message PartitionCommittedOffset
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: Ydb.Topic.StreamReadMessage.CommitOffsetResponse.PartitionCommittedOffset, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PartitionCommittedOffset to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };
                }
            }

            /** Properties of a PartitionSessionStatusRequest. */
            interface IPartitionSessionStatusRequest {

                /** PartitionSessionStatusRequest partitionSessionId */
                partitionSessionId?: (number|Long|null);
            }

            /** Represents a PartitionSessionStatusRequest. */
            class PartitionSessionStatusRequest implements IPartitionSessionStatusRequest {

                /**
                 * Constructs a new PartitionSessionStatusRequest.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: Ydb.Topic.StreamReadMessage.IPartitionSessionStatusRequest);

                /** PartitionSessionStatusRequest partitionSessionId. */
                public partitionSessionId: (number|Long);

                /**
                 * Creates a new PartitionSessionStatusRequest instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns PartitionSessionStatusRequest instance
                 */
                public static create(properties?: Ydb.Topic.StreamReadMessage.IPartitionSessionStatusRequest): Ydb.Topic.StreamReadMessage.PartitionSessionStatusRequest;

                /**
                 * Encodes the specified PartitionSessionStatusRequest message. Does not implicitly {@link Ydb.Topic.StreamReadMessage.PartitionSessionStatusRequest.verify|verify} messages.
                 * @param message PartitionSessionStatusRequest message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: Ydb.Topic.StreamReadMessage.IPartitionSessionStatusRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified PartitionSessionStatusRequest message, length delimited. Does not implicitly {@link Ydb.Topic.StreamReadMessage.PartitionSessionStatusRequest.verify|verify} messages.
                 * @param message PartitionSessionStatusRequest message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: Ydb.Topic.StreamReadMessage.IPartitionSessionStatusRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a PartitionSessionStatusRequest message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns PartitionSessionStatusRequest
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Topic.StreamReadMessage.PartitionSessionStatusRequest;

                /**
                 * Decodes a PartitionSessionStatusRequest message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns PartitionSessionStatusRequest
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Topic.StreamReadMessage.PartitionSessionStatusRequest;

                /**
                 * Verifies a PartitionSessionStatusRequest message.
                 * @param message Plain object to verify
                 * @returns `null` if valid, otherwise the reason why it is not
                 */
                public static verify(message: { [k: string]: any }): (string|null);

                /**
                 * Creates a PartitionSessionStatusRequest message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns PartitionSessionStatusRequest
                 */
                public static fromObject(object: { [k: string]: any }): Ydb.Topic.StreamReadMessage.PartitionSessionStatusRequest;

                /**
                 * Creates a plain object from a PartitionSessionStatusRequest message. Also converts values to other types if specified.
                 * @param message PartitionSessionStatusRequest
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: Ydb.Topic.StreamReadMessage.PartitionSessionStatusRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this PartitionSessionStatusRequest to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };
            }

            /** Properties of a PartitionSessionStatusResponse. */
            interface IPartitionSessionStatusResponse {

                /** PartitionSessionStatusResponse partitionSessionId */
                partitionSessionId?: (number|Long|null);

                /** PartitionSessionStatusResponse partitionOffsets */
                partitionOffsets?: (Ydb.Topic.IOffsetsRange|null);

                /** PartitionSessionStatusResponse committedOffset */
                committedOffset?: (number|Long|null);

                /** PartitionSessionStatusResponse writeTimeHighWatermark */
                writeTimeHighWatermark?: (google.protobuf.ITimestamp|null);
            }

            /** Represents a PartitionSessionStatusResponse. */
            class PartitionSessionStatusResponse implements IPartitionSessionStatusResponse {

                /**
                 * Constructs a new PartitionSessionStatusResponse.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: Ydb.Topic.StreamReadMessage.IPartitionSessionStatusResponse);

                /** PartitionSessionStatusResponse partitionSessionId. */
                public partitionSessionId: (number|Long);

                /** PartitionSessionStatusResponse partitionOffsets. */
                public partitionOffsets?: (Ydb.Topic.IOffsetsRange|null);

                /** PartitionSessionStatusResponse committedOffset. */
                public committedOffset: (number|Long);

                /** PartitionSessionStatusResponse writeTimeHighWatermark. */
                public writeTimeHighWatermark?: (google.protobuf.ITimestamp|null);

                /**
                 * Creates a new PartitionSessionStatusResponse instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns PartitionSessionStatusResponse instance
                 */
                public static create(properties?: Ydb.Topic.StreamReadMessage.IPartitionSessionStatusResponse): Ydb.Topic.StreamReadMessage.PartitionSessionStatusResponse;

                /**
                 * Encodes the specified PartitionSessionStatusResponse message. Does not implicitly {@link Ydb.Topic.StreamReadMessage.PartitionSessionStatusResponse.verify|verify} messages.
                 * @param message PartitionSessionStatusResponse message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: Ydb.Topic.StreamReadMessage.IPartitionSessionStatusResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified PartitionSessionStatusResponse message, length delimited. Does not implicitly {@link Ydb.Topic.StreamReadMessage.PartitionSessionStatusResponse.verify|verify} messages.
                 * @param message PartitionSessionStatusResponse message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: Ydb.Topic.StreamReadMessage.IPartitionSessionStatusResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a PartitionSessionStatusResponse message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns PartitionSessionStatusResponse
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Topic.StreamReadMessage.PartitionSessionStatusResponse;

                /**
                 * Decodes a PartitionSessionStatusResponse message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns PartitionSessionStatusResponse
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Topic.StreamReadMessage.PartitionSessionStatusResponse;

                /**
                 * Verifies a PartitionSessionStatusResponse message.
                 * @param message Plain object to verify
                 * @returns `null` if valid, otherwise the reason why it is not
                 */
                public static verify(message: { [k: string]: any }): (string|null);

                /**
                 * Creates a PartitionSessionStatusResponse message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns PartitionSessionStatusResponse
                 */
                public static fromObject(object: { [k: string]: any }): Ydb.Topic.StreamReadMessage.PartitionSessionStatusResponse;

                /**
                 * Creates a plain object from a PartitionSessionStatusResponse message. Also converts values to other types if specified.
                 * @param message PartitionSessionStatusResponse
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: Ydb.Topic.StreamReadMessage.PartitionSessionStatusResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this PartitionSessionStatusResponse to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };
            }

            /** Properties of a StartPartitionSessionRequest. */
            interface IStartPartitionSessionRequest {

                /** StartPartitionSessionRequest partitionSession */
                partitionSession?: (Ydb.Topic.StreamReadMessage.IPartitionSession|null);

                /** StartPartitionSessionRequest committedOffset */
                committedOffset?: (number|Long|null);

                /** StartPartitionSessionRequest partitionOffsets */
                partitionOffsets?: (Ydb.Topic.IOffsetsRange|null);

                /** StartPartitionSessionRequest partitionLocation */
                partitionLocation?: (Ydb.Topic.IPartitionLocation|null);
            }

            /** Represents a StartPartitionSessionRequest. */
            class StartPartitionSessionRequest implements IStartPartitionSessionRequest {

                /**
                 * Constructs a new StartPartitionSessionRequest.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: Ydb.Topic.StreamReadMessage.IStartPartitionSessionRequest);

                /** StartPartitionSessionRequest partitionSession. */
                public partitionSession?: (Ydb.Topic.StreamReadMessage.IPartitionSession|null);

                /** StartPartitionSessionRequest committedOffset. */
                public committedOffset: (number|Long);

                /** StartPartitionSessionRequest partitionOffsets. */
                public partitionOffsets?: (Ydb.Topic.IOffsetsRange|null);

                /** StartPartitionSessionRequest partitionLocation. */
                public partitionLocation?: (Ydb.Topic.IPartitionLocation|null);

                /**
                 * Creates a new StartPartitionSessionRequest instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns StartPartitionSessionRequest instance
                 */
                public static create(properties?: Ydb.Topic.StreamReadMessage.IStartPartitionSessionRequest): Ydb.Topic.StreamReadMessage.StartPartitionSessionRequest;

                /**
                 * Encodes the specified StartPartitionSessionRequest message. Does not implicitly {@link Ydb.Topic.StreamReadMessage.StartPartitionSessionRequest.verify|verify} messages.
                 * @param message StartPartitionSessionRequest message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: Ydb.Topic.StreamReadMessage.IStartPartitionSessionRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified StartPartitionSessionRequest message, length delimited. Does not implicitly {@link Ydb.Topic.StreamReadMessage.StartPartitionSessionRequest.verify|verify} messages.
                 * @param message StartPartitionSessionRequest message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: Ydb.Topic.StreamReadMessage.IStartPartitionSessionRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a StartPartitionSessionRequest message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns StartPartitionSessionRequest
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Topic.StreamReadMessage.StartPartitionSessionRequest;

                /**
                 * Decodes a StartPartitionSessionRequest message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns StartPartitionSessionRequest
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Topic.StreamReadMessage.StartPartitionSessionRequest;

                /**
                 * Verifies a StartPartitionSessionRequest message.
                 * @param message Plain object to verify
                 * @returns `null` if valid, otherwise the reason why it is not
                 */
                public static verify(message: { [k: string]: any }): (string|null);

                /**
                 * Creates a StartPartitionSessionRequest message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns StartPartitionSessionRequest
                 */
                public static fromObject(object: { [k: string]: any }): Ydb.Topic.StreamReadMessage.StartPartitionSessionRequest;

                /**
                 * Creates a plain object from a StartPartitionSessionRequest message. Also converts values to other types if specified.
                 * @param message StartPartitionSessionRequest
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: Ydb.Topic.StreamReadMessage.StartPartitionSessionRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this StartPartitionSessionRequest to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };
            }

            /** Properties of a StartPartitionSessionResponse. */
            interface IStartPartitionSessionResponse {

                /** StartPartitionSessionResponse partitionSessionId */
                partitionSessionId?: (number|Long|null);

                /** StartPartitionSessionResponse readOffset */
                readOffset?: (number|Long|null);

                /** StartPartitionSessionResponse commitOffset */
                commitOffset?: (number|Long|null);
            }

            /** Represents a StartPartitionSessionResponse. */
            class StartPartitionSessionResponse implements IStartPartitionSessionResponse {

                /**
                 * Constructs a new StartPartitionSessionResponse.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: Ydb.Topic.StreamReadMessage.IStartPartitionSessionResponse);

                /** StartPartitionSessionResponse partitionSessionId. */
                public partitionSessionId: (number|Long);

                /** StartPartitionSessionResponse readOffset. */
                public readOffset?: (number|Long|null);

                /** StartPartitionSessionResponse commitOffset. */
                public commitOffset?: (number|Long|null);

                /** StartPartitionSessionResponse _readOffset. */
                public _readOffset?: "readOffset";

                /** StartPartitionSessionResponse _commitOffset. */
                public _commitOffset?: "commitOffset";

                /**
                 * Creates a new StartPartitionSessionResponse instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns StartPartitionSessionResponse instance
                 */
                public static create(properties?: Ydb.Topic.StreamReadMessage.IStartPartitionSessionResponse): Ydb.Topic.StreamReadMessage.StartPartitionSessionResponse;

                /**
                 * Encodes the specified StartPartitionSessionResponse message. Does not implicitly {@link Ydb.Topic.StreamReadMessage.StartPartitionSessionResponse.verify|verify} messages.
                 * @param message StartPartitionSessionResponse message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: Ydb.Topic.StreamReadMessage.IStartPartitionSessionResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified StartPartitionSessionResponse message, length delimited. Does not implicitly {@link Ydb.Topic.StreamReadMessage.StartPartitionSessionResponse.verify|verify} messages.
                 * @param message StartPartitionSessionResponse message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: Ydb.Topic.StreamReadMessage.IStartPartitionSessionResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a StartPartitionSessionResponse message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns StartPartitionSessionResponse
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Topic.StreamReadMessage.StartPartitionSessionResponse;

                /**
                 * Decodes a StartPartitionSessionResponse message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns StartPartitionSessionResponse
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Topic.StreamReadMessage.StartPartitionSessionResponse;

                /**
                 * Verifies a StartPartitionSessionResponse message.
                 * @param message Plain object to verify
                 * @returns `null` if valid, otherwise the reason why it is not
                 */
                public static verify(message: { [k: string]: any }): (string|null);

                /**
                 * Creates a StartPartitionSessionResponse message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns StartPartitionSessionResponse
                 */
                public static fromObject(object: { [k: string]: any }): Ydb.Topic.StreamReadMessage.StartPartitionSessionResponse;

                /**
                 * Creates a plain object from a StartPartitionSessionResponse message. Also converts values to other types if specified.
                 * @param message StartPartitionSessionResponse
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: Ydb.Topic.StreamReadMessage.StartPartitionSessionResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this StartPartitionSessionResponse to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };
            }

            /** Properties of a StopPartitionSessionRequest. */
            interface IStopPartitionSessionRequest {

                /** StopPartitionSessionRequest partitionSessionId */
                partitionSessionId?: (number|Long|null);

                /** StopPartitionSessionRequest graceful */
                graceful?: (boolean|null);

                /** StopPartitionSessionRequest committedOffset */
                committedOffset?: (number|Long|null);

                /** StopPartitionSessionRequest lastDirectReadId */
                lastDirectReadId?: (number|Long|null);
            }

            /** Represents a StopPartitionSessionRequest. */
            class StopPartitionSessionRequest implements IStopPartitionSessionRequest {

                /**
                 * Constructs a new StopPartitionSessionRequest.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: Ydb.Topic.StreamReadMessage.IStopPartitionSessionRequest);

                /** StopPartitionSessionRequest partitionSessionId. */
                public partitionSessionId: (number|Long);

                /** StopPartitionSessionRequest graceful. */
                public graceful: boolean;

                /** StopPartitionSessionRequest committedOffset. */
                public committedOffset: (number|Long);

                /** StopPartitionSessionRequest lastDirectReadId. */
                public lastDirectReadId: (number|Long);

                /**
                 * Creates a new StopPartitionSessionRequest instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns StopPartitionSessionRequest instance
                 */
                public static create(properties?: Ydb.Topic.StreamReadMessage.IStopPartitionSessionRequest): Ydb.Topic.StreamReadMessage.StopPartitionSessionRequest;

                /**
                 * Encodes the specified StopPartitionSessionRequest message. Does not implicitly {@link Ydb.Topic.StreamReadMessage.StopPartitionSessionRequest.verify|verify} messages.
                 * @param message StopPartitionSessionRequest message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: Ydb.Topic.StreamReadMessage.IStopPartitionSessionRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified StopPartitionSessionRequest message, length delimited. Does not implicitly {@link Ydb.Topic.StreamReadMessage.StopPartitionSessionRequest.verify|verify} messages.
                 * @param message StopPartitionSessionRequest message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: Ydb.Topic.StreamReadMessage.IStopPartitionSessionRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a StopPartitionSessionRequest message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns StopPartitionSessionRequest
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Topic.StreamReadMessage.StopPartitionSessionRequest;

                /**
                 * Decodes a StopPartitionSessionRequest message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns StopPartitionSessionRequest
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Topic.StreamReadMessage.StopPartitionSessionRequest;

                /**
                 * Verifies a StopPartitionSessionRequest message.
                 * @param message Plain object to verify
                 * @returns `null` if valid, otherwise the reason why it is not
                 */
                public static verify(message: { [k: string]: any }): (string|null);

                /**
                 * Creates a StopPartitionSessionRequest message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns StopPartitionSessionRequest
                 */
                public static fromObject(object: { [k: string]: any }): Ydb.Topic.StreamReadMessage.StopPartitionSessionRequest;

                /**
                 * Creates a plain object from a StopPartitionSessionRequest message. Also converts values to other types if specified.
                 * @param message StopPartitionSessionRequest
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: Ydb.Topic.StreamReadMessage.StopPartitionSessionRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this StopPartitionSessionRequest to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };
            }

            /** Properties of a StopPartitionSessionResponse. */
            interface IStopPartitionSessionResponse {

                /** StopPartitionSessionResponse partitionSessionId */
                partitionSessionId?: (number|Long|null);

                /** StopPartitionSessionResponse graceful */
                graceful?: (boolean|null);
            }

            /** Represents a StopPartitionSessionResponse. */
            class StopPartitionSessionResponse implements IStopPartitionSessionResponse {

                /**
                 * Constructs a new StopPartitionSessionResponse.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: Ydb.Topic.StreamReadMessage.IStopPartitionSessionResponse);

                /** StopPartitionSessionResponse partitionSessionId. */
                public partitionSessionId: (number|Long);

                /** StopPartitionSessionResponse graceful. */
                public graceful: boolean;

                /**
                 * Creates a new StopPartitionSessionResponse instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns StopPartitionSessionResponse instance
                 */
                public static create(properties?: Ydb.Topic.StreamReadMessage.IStopPartitionSessionResponse): Ydb.Topic.StreamReadMessage.StopPartitionSessionResponse;

                /**
                 * Encodes the specified StopPartitionSessionResponse message. Does not implicitly {@link Ydb.Topic.StreamReadMessage.StopPartitionSessionResponse.verify|verify} messages.
                 * @param message StopPartitionSessionResponse message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: Ydb.Topic.StreamReadMessage.IStopPartitionSessionResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified StopPartitionSessionResponse message, length delimited. Does not implicitly {@link Ydb.Topic.StreamReadMessage.StopPartitionSessionResponse.verify|verify} messages.
                 * @param message StopPartitionSessionResponse message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: Ydb.Topic.StreamReadMessage.IStopPartitionSessionResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a StopPartitionSessionResponse message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns StopPartitionSessionResponse
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Topic.StreamReadMessage.StopPartitionSessionResponse;

                /**
                 * Decodes a StopPartitionSessionResponse message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns StopPartitionSessionResponse
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Topic.StreamReadMessage.StopPartitionSessionResponse;

                /**
                 * Verifies a StopPartitionSessionResponse message.
                 * @param message Plain object to verify
                 * @returns `null` if valid, otherwise the reason why it is not
                 */
                public static verify(message: { [k: string]: any }): (string|null);

                /**
                 * Creates a StopPartitionSessionResponse message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns StopPartitionSessionResponse
                 */
                public static fromObject(object: { [k: string]: any }): Ydb.Topic.StreamReadMessage.StopPartitionSessionResponse;

                /**
                 * Creates a plain object from a StopPartitionSessionResponse message. Also converts values to other types if specified.
                 * @param message StopPartitionSessionResponse
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: Ydb.Topic.StreamReadMessage.StopPartitionSessionResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this StopPartitionSessionResponse to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };
            }

            /** Properties of an UpdatePartitionSession. */
            interface IUpdatePartitionSession {

                /** UpdatePartitionSession partitionSessionId */
                partitionSessionId?: (number|Long|null);

                /** UpdatePartitionSession partitionLocation */
                partitionLocation?: (Ydb.Topic.IPartitionLocation|null);
            }

            /** Represents an UpdatePartitionSession. */
            class UpdatePartitionSession implements IUpdatePartitionSession {

                /**
                 * Constructs a new UpdatePartitionSession.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: Ydb.Topic.StreamReadMessage.IUpdatePartitionSession);

                /** UpdatePartitionSession partitionSessionId. */
                public partitionSessionId: (number|Long);

                /** UpdatePartitionSession partitionLocation. */
                public partitionLocation?: (Ydb.Topic.IPartitionLocation|null);

                /**
                 * Creates a new UpdatePartitionSession instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns UpdatePartitionSession instance
                 */
                public static create(properties?: Ydb.Topic.StreamReadMessage.IUpdatePartitionSession): Ydb.Topic.StreamReadMessage.UpdatePartitionSession;

                /**
                 * Encodes the specified UpdatePartitionSession message. Does not implicitly {@link Ydb.Topic.StreamReadMessage.UpdatePartitionSession.verify|verify} messages.
                 * @param message UpdatePartitionSession message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: Ydb.Topic.StreamReadMessage.IUpdatePartitionSession, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified UpdatePartitionSession message, length delimited. Does not implicitly {@link Ydb.Topic.StreamReadMessage.UpdatePartitionSession.verify|verify} messages.
                 * @param message UpdatePartitionSession message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: Ydb.Topic.StreamReadMessage.IUpdatePartitionSession, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes an UpdatePartitionSession message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns UpdatePartitionSession
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Topic.StreamReadMessage.UpdatePartitionSession;

                /**
                 * Decodes an UpdatePartitionSession message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns UpdatePartitionSession
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Topic.StreamReadMessage.UpdatePartitionSession;

                /**
                 * Verifies an UpdatePartitionSession message.
                 * @param message Plain 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 UpdatePartitionSession message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns UpdatePartitionSession
                 */
                public static fromObject(object: { [k: string]: any }): Ydb.Topic.StreamReadMessage.UpdatePartitionSession;

                /**
                 * Creates a plain object from an UpdatePartitionSession message. Also converts values to other types if specified.
                 * @param message UpdatePartitionSession
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: Ydb.Topic.StreamReadMessage.UpdatePartitionSession, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this UpdatePartitionSession to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };
            }

            /** Properties of a DirectReadAck. */
            interface IDirectReadAck {

                /** DirectReadAck partitionSessionId */
                partitionSessionId?: (number|Long|null);

                /** DirectReadAck directReadId */
                directReadId?: (number|Long|null);
            }

            /** Represents a DirectReadAck. */
            class DirectReadAck implements IDirectReadAck {

                /**
                 * Constructs a new DirectReadAck.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: Ydb.Topic.StreamReadMessage.IDirectReadAck);

                /** DirectReadAck partitionSessionId. */
                public partitionSessionId: (number|Long);

                /** DirectReadAck directReadId. */
                public directReadId: (number|Long);

                /**
                 * Creates a new DirectReadAck instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns DirectReadAck instance
                 */
                public static create(properties?: Ydb.Topic.StreamReadMessage.IDirectReadAck): Ydb.Topic.StreamReadMessage.DirectReadAck;

                /**
                 * Encodes the specified DirectReadAck message. Does not implicitly {@link Ydb.Topic.StreamReadMessage.DirectReadAck.verify|verify} messages.
                 * @param message DirectReadAck message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: Ydb.Topic.StreamReadMessage.IDirectReadAck, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified DirectReadAck message, length delimited. Does not implicitly {@link Ydb.Topic.StreamReadMessage.DirectReadAck.verify|verify} messages.
                 * @param message DirectReadAck message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: Ydb.Topic.StreamReadMessage.IDirectReadAck, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a DirectReadAck message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns DirectReadAck
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Topic.StreamReadMessage.DirectReadAck;

                /**
                 * Decodes a DirectReadAck message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns DirectReadAck
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Topic.StreamReadMessage.DirectReadAck;

                /**
                 * Verifies a DirectReadAck message.
                 * @param message Plain object to verify
                 * @returns `null` if valid, otherwise the reason why it is not
                 */
                public static verify(message: { [k: string]: any }): (string|null);

                /**
                 * Creates a DirectReadAck message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns DirectReadAck
                 */
                public static fromObject(object: { [k: string]: any }): Ydb.Topic.StreamReadMessage.DirectReadAck;

                /**
                 * Creates a plain object from a DirectReadAck message. Also converts values to other types if specified.
                 * @param message DirectReadAck
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: Ydb.Topic.StreamReadMessage.DirectReadAck, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this DirectReadAck to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };
            }
        }

        /** Properties of a StreamDirectReadMessage. */
        interface IStreamDirectReadMessage {
        }

        /** Represents a StreamDirectReadMessage. */
        class StreamDirectReadMessage implements IStreamDirectReadMessage {

            /**
             * Constructs a new StreamDirectReadMessage.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Topic.IStreamDirectReadMessage);

            /**
             * Creates a new StreamDirectReadMessage instance using the specified properties.
             * @param [properties] Properties to set
             * @returns StreamDirectReadMessage instance
             */
            public static create(properties?: Ydb.Topic.IStreamDirectReadMessage): Ydb.Topic.StreamDirectReadMessage;

            /**
             * Encodes the specified StreamDirectReadMessage message. Does not implicitly {@link Ydb.Topic.StreamDirectReadMessage.verify|verify} messages.
             * @param message StreamDirectReadMessage message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Topic.IStreamDirectReadMessage, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified StreamDirectReadMessage message, length delimited. Does not implicitly {@link Ydb.Topic.StreamDirectReadMessage.verify|verify} messages.
             * @param message StreamDirectReadMessage message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Topic.IStreamDirectReadMessage, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a StreamDirectReadMessage message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns StreamDirectReadMessage
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Topic.StreamDirectReadMessage;

            /**
             * Decodes a StreamDirectReadMessage message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns StreamDirectReadMessage
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Topic.StreamDirectReadMessage;

            /**
             * Verifies a StreamDirectReadMessage message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a StreamDirectReadMessage message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns StreamDirectReadMessage
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Topic.StreamDirectReadMessage;

            /**
             * Creates a plain object from a StreamDirectReadMessage message. Also converts values to other types if specified.
             * @param message StreamDirectReadMessage
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Topic.StreamDirectReadMessage, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this StreamDirectReadMessage to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        namespace StreamDirectReadMessage {

            /** Properties of a FromClient. */
            interface IFromClient {

                /** FromClient initDirectRead */
                initDirectRead?: (Ydb.Topic.StreamDirectReadMessage.IInitDirectRead|null);

                /** FromClient startDirectReadPartitionSession */
                startDirectReadPartitionSession?: (Ydb.Topic.StreamDirectReadMessage.IStartDirectReadPartitionSession|null);

                /** FromClient updateTokenRequest */
                updateTokenRequest?: (Ydb.Topic.IUpdateTokenRequest|null);
            }

            /** Represents a FromClient. */
            class FromClient implements IFromClient {

                /**
                 * Constructs a new FromClient.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: Ydb.Topic.StreamDirectReadMessage.IFromClient);

                /** FromClient initDirectRead. */
                public initDirectRead?: (Ydb.Topic.StreamDirectReadMessage.IInitDirectRead|null);

                /** FromClient startDirectReadPartitionSession. */
                public startDirectReadPartitionSession?: (Ydb.Topic.StreamDirectReadMessage.IStartDirectReadPartitionSession|null);

                /** FromClient updateTokenRequest. */
                public updateTokenRequest?: (Ydb.Topic.IUpdateTokenRequest|null);

                /** FromClient clientMessage. */
                public clientMessage?: ("initDirectRead"|"startDirectReadPartitionSession"|"updateTokenRequest");

                /**
                 * Creates a new FromClient instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns FromClient instance
                 */
                public static create(properties?: Ydb.Topic.StreamDirectReadMessage.IFromClient): Ydb.Topic.StreamDirectReadMessage.FromClient;

                /**
                 * Encodes the specified FromClient message. Does not implicitly {@link Ydb.Topic.StreamDirectReadMessage.FromClient.verify|verify} messages.
                 * @param message FromClient message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: Ydb.Topic.StreamDirectReadMessage.IFromClient, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified FromClient message, length delimited. Does not implicitly {@link Ydb.Topic.StreamDirectReadMessage.FromClient.verify|verify} messages.
                 * @param message FromClient message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: Ydb.Topic.StreamDirectReadMessage.IFromClient, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a FromClient message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns FromClient
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Topic.StreamDirectReadMessage.FromClient;

                /**
                 * Decodes a FromClient message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns FromClient
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Topic.StreamDirectReadMessage.FromClient;

                /**
                 * Verifies a FromClient message.
                 * @param message Plain object to verify
                 * @returns `null` if valid, otherwise the reason why it is not
                 */
                public static verify(message: { [k: string]: any }): (string|null);

                /**
                 * Creates a FromClient message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns FromClient
                 */
                public static fromObject(object: { [k: string]: any }): Ydb.Topic.StreamDirectReadMessage.FromClient;

                /**
                 * Creates a plain object from a FromClient message. Also converts values to other types if specified.
                 * @param message FromClient
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: Ydb.Topic.StreamDirectReadMessage.FromClient, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this FromClient to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };
            }

            /** Properties of a FromServer. */
            interface IFromServer {

                /** FromServer status */
                status?: (Ydb.StatusIds.StatusCode|null);

                /** FromServer issues */
                issues?: (Ydb.Issue.IIssueMessage[]|null);

                /** FromServer stopDirectReadPartitionSession */
                stopDirectReadPartitionSession?: (Ydb.Topic.StreamDirectReadMessage.IStopDirectReadPartitionSession|null);

                /** FromServer directReadResponse */
                directReadResponse?: (Ydb.Topic.StreamDirectReadMessage.IDirectReadResponse|null);

                /** FromServer updateTokenResponse */
                updateTokenResponse?: (Ydb.Topic.IUpdateTokenResponse|null);
            }

            /** Represents a FromServer. */
            class FromServer implements IFromServer {

                /**
                 * Constructs a new FromServer.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: Ydb.Topic.StreamDirectReadMessage.IFromServer);

                /** FromServer status. */
                public status: Ydb.StatusIds.StatusCode;

                /** FromServer issues. */
                public issues: Ydb.Issue.IIssueMessage[];

                /** FromServer stopDirectReadPartitionSession. */
                public stopDirectReadPartitionSession?: (Ydb.Topic.StreamDirectReadMessage.IStopDirectReadPartitionSession|null);

                /** FromServer directReadResponse. */
                public directReadResponse?: (Ydb.Topic.StreamDirectReadMessage.IDirectReadResponse|null);

                /** FromServer updateTokenResponse. */
                public updateTokenResponse?: (Ydb.Topic.IUpdateTokenResponse|null);

                /** FromServer serverMessage. */
                public serverMessage?: ("stopDirectReadPartitionSession"|"directReadResponse"|"updateTokenResponse");

                /**
                 * Creates a new FromServer instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns FromServer instance
                 */
                public static create(properties?: Ydb.Topic.StreamDirectReadMessage.IFromServer): Ydb.Topic.StreamDirectReadMessage.FromServer;

                /**
                 * Encodes the specified FromServer message. Does not implicitly {@link Ydb.Topic.StreamDirectReadMessage.FromServer.verify|verify} messages.
                 * @param message FromServer message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: Ydb.Topic.StreamDirectReadMessage.IFromServer, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified FromServer message, length delimited. Does not implicitly {@link Ydb.Topic.StreamDirectReadMessage.FromServer.verify|verify} messages.
                 * @param message FromServer message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: Ydb.Topic.StreamDirectReadMessage.IFromServer, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a FromServer message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns FromServer
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Topic.StreamDirectReadMessage.FromServer;

                /**
                 * Decodes a FromServer message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns FromServer
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Topic.StreamDirectReadMessage.FromServer;

                /**
                 * Verifies a FromServer message.
                 * @param message Plain object to verify
                 * @returns `null` if valid, otherwise the reason why it is not
                 */
                public static verify(message: { [k: string]: any }): (string|null);

                /**
                 * Creates a FromServer message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns FromServer
                 */
                public static fromObject(object: { [k: string]: any }): Ydb.Topic.StreamDirectReadMessage.FromServer;

                /**
                 * Creates a plain object from a FromServer message. Also converts values to other types if specified.
                 * @param message FromServer
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: Ydb.Topic.StreamDirectReadMessage.FromServer, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this FromServer to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };
            }

            /** Properties of an InitDirectRead. */
            interface IInitDirectRead {

                /** InitDirectRead sessionId */
                sessionId?: (string|null);

                /** InitDirectRead topicsReadSettings */
                topicsReadSettings?: (Ydb.Topic.StreamDirectReadMessage.InitDirectRead.ITopicReadSettings[]|null);

                /** InitDirectRead consumer */
                consumer?: (string|null);
            }

            /** Represents an InitDirectRead. */
            class InitDirectRead implements IInitDirectRead {

                /**
                 * Constructs a new InitDirectRead.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: Ydb.Topic.StreamDirectReadMessage.IInitDirectRead);

                /** InitDirectRead sessionId. */
                public sessionId: string;

                /** InitDirectRead topicsReadSettings. */
                public topicsReadSettings: Ydb.Topic.StreamDirectReadMessage.InitDirectRead.ITopicReadSettings[];

                /** InitDirectRead consumer. */
                public consumer: string;

                /**
                 * Creates a new InitDirectRead instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns InitDirectRead instance
                 */
                public static create(properties?: Ydb.Topic.StreamDirectReadMessage.IInitDirectRead): Ydb.Topic.StreamDirectReadMessage.InitDirectRead;

                /**
                 * Encodes the specified InitDirectRead message. Does not implicitly {@link Ydb.Topic.StreamDirectReadMessage.InitDirectRead.verify|verify} messages.
                 * @param message InitDirectRead message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: Ydb.Topic.StreamDirectReadMessage.IInitDirectRead, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified InitDirectRead message, length delimited. Does not implicitly {@link Ydb.Topic.StreamDirectReadMessage.InitDirectRead.verify|verify} messages.
                 * @param message InitDirectRead message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: Ydb.Topic.StreamDirectReadMessage.IInitDirectRead, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes an InitDirectRead message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns InitDirectRead
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Topic.StreamDirectReadMessage.InitDirectRead;

                /**
                 * Decodes an InitDirectRead message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns InitDirectRead
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Topic.StreamDirectReadMessage.InitDirectRead;

                /**
                 * Verifies an InitDirectRead message.
                 * @param message Plain 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 InitDirectRead message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns InitDirectRead
                 */
                public static fromObject(object: { [k: string]: any }): Ydb.Topic.StreamDirectReadMessage.InitDirectRead;

                /**
                 * Creates a plain object from an InitDirectRead message. Also converts values to other types if specified.
                 * @param message InitDirectRead
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: Ydb.Topic.StreamDirectReadMessage.InitDirectRead, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this InitDirectRead to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };
            }

            namespace InitDirectRead {

                /** Properties of a TopicReadSettings. */
                interface ITopicReadSettings {

                    /** TopicReadSettings path */
                    path?: (string|null);
                }

                /** Represents a TopicReadSettings. */
                class TopicReadSettings implements ITopicReadSettings {

                    /**
                     * Constructs a new TopicReadSettings.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: Ydb.Topic.StreamDirectReadMessage.InitDirectRead.ITopicReadSettings);

                    /** TopicReadSettings path. */
                    public path: string;

                    /**
                     * Creates a new TopicReadSettings instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TopicReadSettings instance
                     */
                    public static create(properties?: Ydb.Topic.StreamDirectReadMessage.InitDirectRead.ITopicReadSettings): Ydb.Topic.StreamDirectReadMessage.InitDirectRead.TopicReadSettings;

                    /**
                     * Encodes the specified TopicReadSettings message. Does not implicitly {@link Ydb.Topic.StreamDirectReadMessage.InitDirectRead.TopicReadSettings.verify|verify} messages.
                     * @param message TopicReadSettings message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: Ydb.Topic.StreamDirectReadMessage.InitDirectRead.ITopicReadSettings, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TopicReadSettings message, length delimited. Does not implicitly {@link Ydb.Topic.StreamDirectReadMessage.InitDirectRead.TopicReadSettings.verify|verify} messages.
                     * @param message TopicReadSettings message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: Ydb.Topic.StreamDirectReadMessage.InitDirectRead.ITopicReadSettings, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TopicReadSettings message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TopicReadSettings
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Topic.StreamDirectReadMessage.InitDirectRead.TopicReadSettings;

                    /**
                     * Decodes a TopicReadSettings message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TopicReadSettings
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Topic.StreamDirectReadMessage.InitDirectRead.TopicReadSettings;

                    /**
                     * Verifies a TopicReadSettings message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TopicReadSettings message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TopicReadSettings
                     */
                    public static fromObject(object: { [k: string]: any }): Ydb.Topic.StreamDirectReadMessage.InitDirectRead.TopicReadSettings;

                    /**
                     * Creates a plain object from a TopicReadSettings message. Also converts values to other types if specified.
                     * @param message TopicReadSettings
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: Ydb.Topic.StreamDirectReadMessage.InitDirectRead.TopicReadSettings, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TopicReadSettings to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };
                }
            }

            /** Properties of a StartDirectReadPartitionSession. */
            interface IStartDirectReadPartitionSession {

                /** StartDirectReadPartitionSession partitionSessionId */
                partitionSessionId?: (number|Long|null);

                /** StartDirectReadPartitionSession lastDirectReadId */
                lastDirectReadId?: (number|Long|null);

                /** StartDirectReadPartitionSession generation */
                generation?: (number|Long|null);
            }

            /** Represents a StartDirectReadPartitionSession. */
            class StartDirectReadPartitionSession implements IStartDirectReadPartitionSession {

                /**
                 * Constructs a new StartDirectReadPartitionSession.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: Ydb.Topic.StreamDirectReadMessage.IStartDirectReadPartitionSession);

                /** StartDirectReadPartitionSession partitionSessionId. */
                public partitionSessionId: (number|Long);

                /** StartDirectReadPartitionSession lastDirectReadId. */
                public lastDirectReadId: (number|Long);

                /** StartDirectReadPartitionSession generation. */
                public generation: (number|Long);

                /**
                 * Creates a new StartDirectReadPartitionSession instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns StartDirectReadPartitionSession instance
                 */
                public static create(properties?: Ydb.Topic.StreamDirectReadMessage.IStartDirectReadPartitionSession): Ydb.Topic.StreamDirectReadMessage.StartDirectReadPartitionSession;

                /**
                 * Encodes the specified StartDirectReadPartitionSession message. Does not implicitly {@link Ydb.Topic.StreamDirectReadMessage.StartDirectReadPartitionSession.verify|verify} messages.
                 * @param message StartDirectReadPartitionSession message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: Ydb.Topic.StreamDirectReadMessage.IStartDirectReadPartitionSession, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified StartDirectReadPartitionSession message, length delimited. Does not implicitly {@link Ydb.Topic.StreamDirectReadMessage.StartDirectReadPartitionSession.verify|verify} messages.
                 * @param message StartDirectReadPartitionSession message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: Ydb.Topic.StreamDirectReadMessage.IStartDirectReadPartitionSession, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a StartDirectReadPartitionSession message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns StartDirectReadPartitionSession
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Topic.StreamDirectReadMessage.StartDirectReadPartitionSession;

                /**
                 * Decodes a StartDirectReadPartitionSession message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns StartDirectReadPartitionSession
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Topic.StreamDirectReadMessage.StartDirectReadPartitionSession;

                /**
                 * Verifies a StartDirectReadPartitionSession message.
                 * @param message Plain object to verify
                 * @returns `null` if valid, otherwise the reason why it is not
                 */
                public static verify(message: { [k: string]: any }): (string|null);

                /**
                 * Creates a StartDirectReadPartitionSession message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns StartDirectReadPartitionSession
                 */
                public static fromObject(object: { [k: string]: any }): Ydb.Topic.StreamDirectReadMessage.StartDirectReadPartitionSession;

                /**
                 * Creates a plain object from a StartDirectReadPartitionSession message. Also converts values to other types if specified.
                 * @param message StartDirectReadPartitionSession
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: Ydb.Topic.StreamDirectReadMessage.StartDirectReadPartitionSession, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this StartDirectReadPartitionSession to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };
            }

            /** Properties of a StopDirectReadPartitionSession. */
            interface IStopDirectReadPartitionSession {

                /** StopDirectReadPartitionSession status */
                status?: (Ydb.StatusIds.StatusCode|null);

                /** StopDirectReadPartitionSession issues */
                issues?: (Ydb.Issue.IIssueMessage[]|null);

                /** StopDirectReadPartitionSession partitionSessionId */
                partitionSessionId?: (number|Long|null);
            }

            /** Represents a StopDirectReadPartitionSession. */
            class StopDirectReadPartitionSession implements IStopDirectReadPartitionSession {

                /**
                 * Constructs a new StopDirectReadPartitionSession.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: Ydb.Topic.StreamDirectReadMessage.IStopDirectReadPartitionSession);

                /** StopDirectReadPartitionSession status. */
                public status: Ydb.StatusIds.StatusCode;

                /** StopDirectReadPartitionSession issues. */
                public issues: Ydb.Issue.IIssueMessage[];

                /** StopDirectReadPartitionSession partitionSessionId. */
                public partitionSessionId: (number|Long);

                /**
                 * Creates a new StopDirectReadPartitionSession instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns StopDirectReadPartitionSession instance
                 */
                public static create(properties?: Ydb.Topic.StreamDirectReadMessage.IStopDirectReadPartitionSession): Ydb.Topic.StreamDirectReadMessage.StopDirectReadPartitionSession;

                /**
                 * Encodes the specified StopDirectReadPartitionSession message. Does not implicitly {@link Ydb.Topic.StreamDirectReadMessage.StopDirectReadPartitionSession.verify|verify} messages.
                 * @param message StopDirectReadPartitionSession message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: Ydb.Topic.StreamDirectReadMessage.IStopDirectReadPartitionSession, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified StopDirectReadPartitionSession message, length delimited. Does not implicitly {@link Ydb.Topic.StreamDirectReadMessage.StopDirectReadPartitionSession.verify|verify} messages.
                 * @param message StopDirectReadPartitionSession message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: Ydb.Topic.StreamDirectReadMessage.IStopDirectReadPartitionSession, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a StopDirectReadPartitionSession message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns StopDirectReadPartitionSession
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Topic.StreamDirectReadMessage.StopDirectReadPartitionSession;

                /**
                 * Decodes a StopDirectReadPartitionSession message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns StopDirectReadPartitionSession
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Topic.StreamDirectReadMessage.StopDirectReadPartitionSession;

                /**
                 * Verifies a StopDirectReadPartitionSession message.
                 * @param message Plain object to verify
                 * @returns `null` if valid, otherwise the reason why it is not
                 */
                public static verify(message: { [k: string]: any }): (string|null);

                /**
                 * Creates a StopDirectReadPartitionSession message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns StopDirectReadPartitionSession
                 */
                public static fromObject(object: { [k: string]: any }): Ydb.Topic.StreamDirectReadMessage.StopDirectReadPartitionSession;

                /**
                 * Creates a plain object from a StopDirectReadPartitionSession message. Also converts values to other types if specified.
                 * @param message StopDirectReadPartitionSession
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: Ydb.Topic.StreamDirectReadMessage.StopDirectReadPartitionSession, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this StopDirectReadPartitionSession to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };
            }

            /** Properties of a DirectReadResponse. */
            interface IDirectReadResponse {

                /** DirectReadResponse partitionSessionId */
                partitionSessionId?: (number|Long|null);

                /** DirectReadResponse directReadId */
                directReadId?: (number|Long|null);

                /** DirectReadResponse partitionData */
                partitionData?: (Ydb.Topic.StreamReadMessage.ReadResponse.IPartitionData|null);
            }

            /** Represents a DirectReadResponse. */
            class DirectReadResponse implements IDirectReadResponse {

                /**
                 * Constructs a new DirectReadResponse.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: Ydb.Topic.StreamDirectReadMessage.IDirectReadResponse);

                /** DirectReadResponse partitionSessionId. */
                public partitionSessionId: (number|Long);

                /** DirectReadResponse directReadId. */
                public directReadId: (number|Long);

                /** DirectReadResponse partitionData. */
                public partitionData?: (Ydb.Topic.StreamReadMessage.ReadResponse.IPartitionData|null);

                /**
                 * Creates a new DirectReadResponse instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns DirectReadResponse instance
                 */
                public static create(properties?: Ydb.Topic.StreamDirectReadMessage.IDirectReadResponse): Ydb.Topic.StreamDirectReadMessage.DirectReadResponse;

                /**
                 * Encodes the specified DirectReadResponse message. Does not implicitly {@link Ydb.Topic.StreamDirectReadMessage.DirectReadResponse.verify|verify} messages.
                 * @param message DirectReadResponse message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: Ydb.Topic.StreamDirectReadMessage.IDirectReadResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified DirectReadResponse message, length delimited. Does not implicitly {@link Ydb.Topic.StreamDirectReadMessage.DirectReadResponse.verify|verify} messages.
                 * @param message DirectReadResponse message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: Ydb.Topic.StreamDirectReadMessage.IDirectReadResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a DirectReadResponse message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns DirectReadResponse
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Topic.StreamDirectReadMessage.DirectReadResponse;

                /**
                 * Decodes a DirectReadResponse message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns DirectReadResponse
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Topic.StreamDirectReadMessage.DirectReadResponse;

                /**
                 * Verifies a DirectReadResponse message.
                 * @param message Plain object to verify
                 * @returns `null` if valid, otherwise the reason why it is not
                 */
                public static verify(message: { [k: string]: any }): (string|null);

                /**
                 * Creates a DirectReadResponse message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns DirectReadResponse
                 */
                public static fromObject(object: { [k: string]: any }): Ydb.Topic.StreamDirectReadMessage.DirectReadResponse;

                /**
                 * Creates a plain object from a DirectReadResponse message. Also converts values to other types if specified.
                 * @param message DirectReadResponse
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: Ydb.Topic.StreamDirectReadMessage.DirectReadResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this DirectReadResponse to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };
            }
        }

        /** Properties of a TransactionIdentity. */
        interface ITransactionIdentity {

            /** TransactionIdentity id */
            id?: (string|null);

            /** TransactionIdentity session */
            session?: (string|null);
        }

        /** Represents a TransactionIdentity. */
        class TransactionIdentity implements ITransactionIdentity {

            /**
             * Constructs a new TransactionIdentity.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Topic.ITransactionIdentity);

            /** TransactionIdentity id. */
            public id: string;

            /** TransactionIdentity session. */
            public session: string;

            /**
             * Creates a new TransactionIdentity instance using the specified properties.
             * @param [properties] Properties to set
             * @returns TransactionIdentity instance
             */
            public static create(properties?: Ydb.Topic.ITransactionIdentity): Ydb.Topic.TransactionIdentity;

            /**
             * Encodes the specified TransactionIdentity message. Does not implicitly {@link Ydb.Topic.TransactionIdentity.verify|verify} messages.
             * @param message TransactionIdentity message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Topic.ITransactionIdentity, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified TransactionIdentity message, length delimited. Does not implicitly {@link Ydb.Topic.TransactionIdentity.verify|verify} messages.
             * @param message TransactionIdentity message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Topic.ITransactionIdentity, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a TransactionIdentity message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns TransactionIdentity
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Topic.TransactionIdentity;

            /**
             * Decodes a TransactionIdentity message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns TransactionIdentity
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Topic.TransactionIdentity;

            /**
             * Verifies a TransactionIdentity message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a TransactionIdentity message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns TransactionIdentity
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Topic.TransactionIdentity;

            /**
             * Creates a plain object from a TransactionIdentity message. Also converts values to other types if specified.
             * @param message TransactionIdentity
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Topic.TransactionIdentity, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this TransactionIdentity to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of an UpdateOffsetsInTransactionRequest. */
        interface IUpdateOffsetsInTransactionRequest {

            /** UpdateOffsetsInTransactionRequest operationParams */
            operationParams?: (Ydb.Operations.IOperationParams|null);

            /** UpdateOffsetsInTransactionRequest tx */
            tx?: (Ydb.Topic.ITransactionIdentity|null);

            /** UpdateOffsetsInTransactionRequest topics */
            topics?: (Ydb.Topic.UpdateOffsetsInTransactionRequest.ITopicOffsets[]|null);

            /** UpdateOffsetsInTransactionRequest consumer */
            consumer?: (string|null);
        }

        /** Represents an UpdateOffsetsInTransactionRequest. */
        class UpdateOffsetsInTransactionRequest implements IUpdateOffsetsInTransactionRequest {

            /**
             * Constructs a new UpdateOffsetsInTransactionRequest.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Topic.IUpdateOffsetsInTransactionRequest);

            /** UpdateOffsetsInTransactionRequest operationParams. */
            public operationParams?: (Ydb.Operations.IOperationParams|null);

            /** UpdateOffsetsInTransactionRequest tx. */
            public tx?: (Ydb.Topic.ITransactionIdentity|null);

            /** UpdateOffsetsInTransactionRequest topics. */
            public topics: Ydb.Topic.UpdateOffsetsInTransactionRequest.ITopicOffsets[];

            /** UpdateOffsetsInTransactionRequest consumer. */
            public consumer: string;

            /**
             * Creates a new UpdateOffsetsInTransactionRequest instance using the specified properties.
             * @param [properties] Properties to set
             * @returns UpdateOffsetsInTransactionRequest instance
             */
            public static create(properties?: Ydb.Topic.IUpdateOffsetsInTransactionRequest): Ydb.Topic.UpdateOffsetsInTransactionRequest;

            /**
             * Encodes the specified UpdateOffsetsInTransactionRequest message. Does not implicitly {@link Ydb.Topic.UpdateOffsetsInTransactionRequest.verify|verify} messages.
             * @param message UpdateOffsetsInTransactionRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Topic.IUpdateOffsetsInTransactionRequest, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified UpdateOffsetsInTransactionRequest message, length delimited. Does not implicitly {@link Ydb.Topic.UpdateOffsetsInTransactionRequest.verify|verify} messages.
             * @param message UpdateOffsetsInTransactionRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Topic.IUpdateOffsetsInTransactionRequest, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes an UpdateOffsetsInTransactionRequest message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns UpdateOffsetsInTransactionRequest
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Topic.UpdateOffsetsInTransactionRequest;

            /**
             * Decodes an UpdateOffsetsInTransactionRequest message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns UpdateOffsetsInTransactionRequest
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Topic.UpdateOffsetsInTransactionRequest;

            /**
             * Verifies an UpdateOffsetsInTransactionRequest message.
             * @param message Plain 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 UpdateOffsetsInTransactionRequest message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns UpdateOffsetsInTransactionRequest
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Topic.UpdateOffsetsInTransactionRequest;

            /**
             * Creates a plain object from an UpdateOffsetsInTransactionRequest message. Also converts values to other types if specified.
             * @param message UpdateOffsetsInTransactionRequest
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Topic.UpdateOffsetsInTransactionRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this UpdateOffsetsInTransactionRequest to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        namespace UpdateOffsetsInTransactionRequest {

            /** Properties of a TopicOffsets. */
            interface ITopicOffsets {

                /** TopicOffsets path */
                path?: (string|null);

                /** TopicOffsets partitions */
                partitions?: (Ydb.Topic.UpdateOffsetsInTransactionRequest.TopicOffsets.IPartitionOffsets[]|null);
            }

            /** Represents a TopicOffsets. */
            class TopicOffsets implements ITopicOffsets {

                /**
                 * Constructs a new TopicOffsets.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: Ydb.Topic.UpdateOffsetsInTransactionRequest.ITopicOffsets);

                /** TopicOffsets path. */
                public path: string;

                /** TopicOffsets partitions. */
                public partitions: Ydb.Topic.UpdateOffsetsInTransactionRequest.TopicOffsets.IPartitionOffsets[];

                /**
                 * Creates a new TopicOffsets instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns TopicOffsets instance
                 */
                public static create(properties?: Ydb.Topic.UpdateOffsetsInTransactionRequest.ITopicOffsets): Ydb.Topic.UpdateOffsetsInTransactionRequest.TopicOffsets;

                /**
                 * Encodes the specified TopicOffsets message. Does not implicitly {@link Ydb.Topic.UpdateOffsetsInTransactionRequest.TopicOffsets.verify|verify} messages.
                 * @param message TopicOffsets message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: Ydb.Topic.UpdateOffsetsInTransactionRequest.ITopicOffsets, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified TopicOffsets message, length delimited. Does not implicitly {@link Ydb.Topic.UpdateOffsetsInTransactionRequest.TopicOffsets.verify|verify} messages.
                 * @param message TopicOffsets message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: Ydb.Topic.UpdateOffsetsInTransactionRequest.ITopicOffsets, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a TopicOffsets message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns TopicOffsets
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Topic.UpdateOffsetsInTransactionRequest.TopicOffsets;

                /**
                 * Decodes a TopicOffsets message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns TopicOffsets
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Topic.UpdateOffsetsInTransactionRequest.TopicOffsets;

                /**
                 * Verifies a TopicOffsets message.
                 * @param message Plain object to verify
                 * @returns `null` if valid, otherwise the reason why it is not
                 */
                public static verify(message: { [k: string]: any }): (string|null);

                /**
                 * Creates a TopicOffsets message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns TopicOffsets
                 */
                public static fromObject(object: { [k: string]: any }): Ydb.Topic.UpdateOffsetsInTransactionRequest.TopicOffsets;

                /**
                 * Creates a plain object from a TopicOffsets message. Also converts values to other types if specified.
                 * @param message TopicOffsets
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: Ydb.Topic.UpdateOffsetsInTransactionRequest.TopicOffsets, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this TopicOffsets to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };
            }

            namespace TopicOffsets {

                /** Properties of a PartitionOffsets. */
                interface IPartitionOffsets {

                    /** PartitionOffsets partitionId */
                    partitionId?: (number|Long|null);

                    /** PartitionOffsets partitionOffsets */
                    partitionOffsets?: (Ydb.Topic.IOffsetsRange[]|null);
                }

                /** Represents a PartitionOffsets. */
                class PartitionOffsets implements IPartitionOffsets {

                    /**
                     * Constructs a new PartitionOffsets.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: Ydb.Topic.UpdateOffsetsInTransactionRequest.TopicOffsets.IPartitionOffsets);

                    /** PartitionOffsets partitionId. */
                    public partitionId: (number|Long);

                    /** PartitionOffsets partitionOffsets. */
                    public partitionOffsets: Ydb.Topic.IOffsetsRange[];

                    /**
                     * Creates a new PartitionOffsets instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PartitionOffsets instance
                     */
                    public static create(properties?: Ydb.Topic.UpdateOffsetsInTransactionRequest.TopicOffsets.IPartitionOffsets): Ydb.Topic.UpdateOffsetsInTransactionRequest.TopicOffsets.PartitionOffsets;

                    /**
                     * Encodes the specified PartitionOffsets message. Does not implicitly {@link Ydb.Topic.UpdateOffsetsInTransactionRequest.TopicOffsets.PartitionOffsets.verify|verify} messages.
                     * @param message PartitionOffsets message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: Ydb.Topic.UpdateOffsetsInTransactionRequest.TopicOffsets.IPartitionOffsets, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PartitionOffsets message, length delimited. Does not implicitly {@link Ydb.Topic.UpdateOffsetsInTransactionRequest.TopicOffsets.PartitionOffsets.verify|verify} messages.
                     * @param message PartitionOffsets message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: Ydb.Topic.UpdateOffsetsInTransactionRequest.TopicOffsets.IPartitionOffsets, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PartitionOffsets message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PartitionOffsets
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Topic.UpdateOffsetsInTransactionRequest.TopicOffsets.PartitionOffsets;

                    /**
                     * Decodes a PartitionOffsets message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PartitionOffsets
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Topic.UpdateOffsetsInTransactionRequest.TopicOffsets.PartitionOffsets;

                    /**
                     * Verifies a PartitionOffsets message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PartitionOffsets message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PartitionOffsets
                     */
                    public static fromObject(object: { [k: string]: any }): Ydb.Topic.UpdateOffsetsInTransactionRequest.TopicOffsets.PartitionOffsets;

                    /**
                     * Creates a plain object from a PartitionOffsets message. Also converts values to other types if specified.
                     * @param message PartitionOffsets
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: Ydb.Topic.UpdateOffsetsInTransactionRequest.TopicOffsets.PartitionOffsets, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PartitionOffsets to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };
                }
            }
        }

        /** Properties of an UpdateOffsetsInTransactionResponse. */
        interface IUpdateOffsetsInTransactionResponse {

            /** UpdateOffsetsInTransactionResponse operation */
            operation?: (Ydb.Operations.IOperation|null);
        }

        /** Represents an UpdateOffsetsInTransactionResponse. */
        class UpdateOffsetsInTransactionResponse implements IUpdateOffsetsInTransactionResponse {

            /**
             * Constructs a new UpdateOffsetsInTransactionResponse.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Topic.IUpdateOffsetsInTransactionResponse);

            /** UpdateOffsetsInTransactionResponse operation. */
            public operation?: (Ydb.Operations.IOperation|null);

            /**
             * Creates a new UpdateOffsetsInTransactionResponse instance using the specified properties.
             * @param [properties] Properties to set
             * @returns UpdateOffsetsInTransactionResponse instance
             */
            public static create(properties?: Ydb.Topic.IUpdateOffsetsInTransactionResponse): Ydb.Topic.UpdateOffsetsInTransactionResponse;

            /**
             * Encodes the specified UpdateOffsetsInTransactionResponse message. Does not implicitly {@link Ydb.Topic.UpdateOffsetsInTransactionResponse.verify|verify} messages.
             * @param message UpdateOffsetsInTransactionResponse message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Topic.IUpdateOffsetsInTransactionResponse, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified UpdateOffsetsInTransactionResponse message, length delimited. Does not implicitly {@link Ydb.Topic.UpdateOffsetsInTransactionResponse.verify|verify} messages.
             * @param message UpdateOffsetsInTransactionResponse message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Topic.IUpdateOffsetsInTransactionResponse, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes an UpdateOffsetsInTransactionResponse message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns UpdateOffsetsInTransactionResponse
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Topic.UpdateOffsetsInTransactionResponse;

            /**
             * Decodes an UpdateOffsetsInTransactionResponse message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns UpdateOffsetsInTransactionResponse
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Topic.UpdateOffsetsInTransactionResponse;

            /**
             * Verifies an UpdateOffsetsInTransactionResponse message.
             * @param message Plain 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 UpdateOffsetsInTransactionResponse message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns UpdateOffsetsInTransactionResponse
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Topic.UpdateOffsetsInTransactionResponse;

            /**
             * Creates a plain object from an UpdateOffsetsInTransactionResponse message. Also converts values to other types if specified.
             * @param message UpdateOffsetsInTransactionResponse
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Topic.UpdateOffsetsInTransactionResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this UpdateOffsetsInTransactionResponse to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of an UpdateOffsetsInTransactionResult. */
        interface IUpdateOffsetsInTransactionResult {
        }

        /** Represents an UpdateOffsetsInTransactionResult. */
        class UpdateOffsetsInTransactionResult implements IUpdateOffsetsInTransactionResult {

            /**
             * Constructs a new UpdateOffsetsInTransactionResult.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Topic.IUpdateOffsetsInTransactionResult);

            /**
             * Creates a new UpdateOffsetsInTransactionResult instance using the specified properties.
             * @param [properties] Properties to set
             * @returns UpdateOffsetsInTransactionResult instance
             */
            public static create(properties?: Ydb.Topic.IUpdateOffsetsInTransactionResult): Ydb.Topic.UpdateOffsetsInTransactionResult;

            /**
             * Encodes the specified UpdateOffsetsInTransactionResult message. Does not implicitly {@link Ydb.Topic.UpdateOffsetsInTransactionResult.verify|verify} messages.
             * @param message UpdateOffsetsInTransactionResult message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Topic.IUpdateOffsetsInTransactionResult, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified UpdateOffsetsInTransactionResult message, length delimited. Does not implicitly {@link Ydb.Topic.UpdateOffsetsInTransactionResult.verify|verify} messages.
             * @param message UpdateOffsetsInTransactionResult message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Topic.IUpdateOffsetsInTransactionResult, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes an UpdateOffsetsInTransactionResult message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns UpdateOffsetsInTransactionResult
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Topic.UpdateOffsetsInTransactionResult;

            /**
             * Decodes an UpdateOffsetsInTransactionResult message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns UpdateOffsetsInTransactionResult
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Topic.UpdateOffsetsInTransactionResult;

            /**
             * Verifies an UpdateOffsetsInTransactionResult message.
             * @param message Plain 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 UpdateOffsetsInTransactionResult message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns UpdateOffsetsInTransactionResult
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Topic.UpdateOffsetsInTransactionResult;

            /**
             * Creates a plain object from an UpdateOffsetsInTransactionResult message. Also converts values to other types if specified.
             * @param message UpdateOffsetsInTransactionResult
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Topic.UpdateOffsetsInTransactionResult, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this UpdateOffsetsInTransactionResult to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a CommitOffsetRequest. */
        interface ICommitOffsetRequest {

            /** CommitOffsetRequest operationParams */
            operationParams?: (Ydb.Operations.IOperationParams|null);

            /** CommitOffsetRequest path */
            path?: (string|null);

            /** CommitOffsetRequest partitionId */
            partitionId?: (number|Long|null);

            /** CommitOffsetRequest consumer */
            consumer?: (string|null);

            /** CommitOffsetRequest offset */
            offset?: (number|Long|null);
        }

        /** Represents a CommitOffsetRequest. */
        class CommitOffsetRequest implements ICommitOffsetRequest {

            /**
             * Constructs a new CommitOffsetRequest.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Topic.ICommitOffsetRequest);

            /** CommitOffsetRequest operationParams. */
            public operationParams?: (Ydb.Operations.IOperationParams|null);

            /** CommitOffsetRequest path. */
            public path: string;

            /** CommitOffsetRequest partitionId. */
            public partitionId: (number|Long);

            /** CommitOffsetRequest consumer. */
            public consumer: string;

            /** CommitOffsetRequest offset. */
            public offset: (number|Long);

            /**
             * Creates a new CommitOffsetRequest instance using the specified properties.
             * @param [properties] Properties to set
             * @returns CommitOffsetRequest instance
             */
            public static create(properties?: Ydb.Topic.ICommitOffsetRequest): Ydb.Topic.CommitOffsetRequest;

            /**
             * Encodes the specified CommitOffsetRequest message. Does not implicitly {@link Ydb.Topic.CommitOffsetRequest.verify|verify} messages.
             * @param message CommitOffsetRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Topic.ICommitOffsetRequest, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified CommitOffsetRequest message, length delimited. Does not implicitly {@link Ydb.Topic.CommitOffsetRequest.verify|verify} messages.
             * @param message CommitOffsetRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Topic.ICommitOffsetRequest, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a CommitOffsetRequest message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns CommitOffsetRequest
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Topic.CommitOffsetRequest;

            /**
             * Decodes a CommitOffsetRequest message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns CommitOffsetRequest
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Topic.CommitOffsetRequest;

            /**
             * Verifies a CommitOffsetRequest message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a CommitOffsetRequest message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns CommitOffsetRequest
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Topic.CommitOffsetRequest;

            /**
             * Creates a plain object from a CommitOffsetRequest message. Also converts values to other types if specified.
             * @param message CommitOffsetRequest
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Topic.CommitOffsetRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this CommitOffsetRequest to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a CommitOffsetResponse. */
        interface ICommitOffsetResponse {

            /** CommitOffsetResponse operation */
            operation?: (Ydb.Operations.IOperation|null);
        }

        /** Represents a CommitOffsetResponse. */
        class CommitOffsetResponse implements ICommitOffsetResponse {

            /**
             * Constructs a new CommitOffsetResponse.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Topic.ICommitOffsetResponse);

            /** CommitOffsetResponse operation. */
            public operation?: (Ydb.Operations.IOperation|null);

            /**
             * Creates a new CommitOffsetResponse instance using the specified properties.
             * @param [properties] Properties to set
             * @returns CommitOffsetResponse instance
             */
            public static create(properties?: Ydb.Topic.ICommitOffsetResponse): Ydb.Topic.CommitOffsetResponse;

            /**
             * Encodes the specified CommitOffsetResponse message. Does not implicitly {@link Ydb.Topic.CommitOffsetResponse.verify|verify} messages.
             * @param message CommitOffsetResponse message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Topic.ICommitOffsetResponse, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified CommitOffsetResponse message, length delimited. Does not implicitly {@link Ydb.Topic.CommitOffsetResponse.verify|verify} messages.
             * @param message CommitOffsetResponse message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Topic.ICommitOffsetResponse, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a CommitOffsetResponse message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns CommitOffsetResponse
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Topic.CommitOffsetResponse;

            /**
             * Decodes a CommitOffsetResponse message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns CommitOffsetResponse
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Topic.CommitOffsetResponse;

            /**
             * Verifies a CommitOffsetResponse message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a CommitOffsetResponse message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns CommitOffsetResponse
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Topic.CommitOffsetResponse;

            /**
             * Creates a plain object from a CommitOffsetResponse message. Also converts values to other types if specified.
             * @param message CommitOffsetResponse
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Topic.CommitOffsetResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this CommitOffsetResponse to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a CommitOffsetResult. */
        interface ICommitOffsetResult {
        }

        /** Represents a CommitOffsetResult. */
        class CommitOffsetResult implements ICommitOffsetResult {

            /**
             * Constructs a new CommitOffsetResult.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Topic.ICommitOffsetResult);

            /**
             * Creates a new CommitOffsetResult instance using the specified properties.
             * @param [properties] Properties to set
             * @returns CommitOffsetResult instance
             */
            public static create(properties?: Ydb.Topic.ICommitOffsetResult): Ydb.Topic.CommitOffsetResult;

            /**
             * Encodes the specified CommitOffsetResult message. Does not implicitly {@link Ydb.Topic.CommitOffsetResult.verify|verify} messages.
             * @param message CommitOffsetResult message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Topic.ICommitOffsetResult, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified CommitOffsetResult message, length delimited. Does not implicitly {@link Ydb.Topic.CommitOffsetResult.verify|verify} messages.
             * @param message CommitOffsetResult message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Topic.ICommitOffsetResult, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a CommitOffsetResult message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns CommitOffsetResult
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Topic.CommitOffsetResult;

            /**
             * Decodes a CommitOffsetResult message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns CommitOffsetResult
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Topic.CommitOffsetResult;

            /**
             * Verifies a CommitOffsetResult message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a CommitOffsetResult message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns CommitOffsetResult
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Topic.CommitOffsetResult;

            /**
             * Creates a plain object from a CommitOffsetResult message. Also converts values to other types if specified.
             * @param message CommitOffsetResult
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Topic.CommitOffsetResult, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this CommitOffsetResult to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a MultipleWindowsStat. */
        interface IMultipleWindowsStat {

            /** MultipleWindowsStat perMinute */
            perMinute?: (number|Long|null);

            /** MultipleWindowsStat perHour */
            perHour?: (number|Long|null);

            /** MultipleWindowsStat perDay */
            perDay?: (number|Long|null);
        }

        /** Represents a MultipleWindowsStat. */
        class MultipleWindowsStat implements IMultipleWindowsStat {

            /**
             * Constructs a new MultipleWindowsStat.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Topic.IMultipleWindowsStat);

            /** MultipleWindowsStat perMinute. */
            public perMinute: (number|Long);

            /** MultipleWindowsStat perHour. */
            public perHour: (number|Long);

            /** MultipleWindowsStat perDay. */
            public perDay: (number|Long);

            /**
             * Creates a new MultipleWindowsStat instance using the specified properties.
             * @param [properties] Properties to set
             * @returns MultipleWindowsStat instance
             */
            public static create(properties?: Ydb.Topic.IMultipleWindowsStat): Ydb.Topic.MultipleWindowsStat;

            /**
             * Encodes the specified MultipleWindowsStat message. Does not implicitly {@link Ydb.Topic.MultipleWindowsStat.verify|verify} messages.
             * @param message MultipleWindowsStat message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Topic.IMultipleWindowsStat, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified MultipleWindowsStat message, length delimited. Does not implicitly {@link Ydb.Topic.MultipleWindowsStat.verify|verify} messages.
             * @param message MultipleWindowsStat message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Topic.IMultipleWindowsStat, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a MultipleWindowsStat message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns MultipleWindowsStat
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Topic.MultipleWindowsStat;

            /**
             * Decodes a MultipleWindowsStat message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns MultipleWindowsStat
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Topic.MultipleWindowsStat;

            /**
             * Verifies a MultipleWindowsStat message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a MultipleWindowsStat message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns MultipleWindowsStat
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Topic.MultipleWindowsStat;

            /**
             * Creates a plain object from a MultipleWindowsStat message. Also converts values to other types if specified.
             * @param message MultipleWindowsStat
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Topic.MultipleWindowsStat, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this MultipleWindowsStat to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a Consumer. */
        interface IConsumer {

            /** Consumer name */
            name?: (string|null);

            /** Consumer important */
            important?: (boolean|null);

            /** Consumer readFrom */
            readFrom?: (google.protobuf.ITimestamp|null);

            /** Consumer supportedCodecs */
            supportedCodecs?: (Ydb.Topic.ISupportedCodecs|null);

            /** Consumer attributes */
            attributes?: ({ [k: string]: string }|null);

            /** Consumer consumerStats */
            consumerStats?: (Ydb.Topic.Consumer.IConsumerStats|null);
        }

        /** Represents a Consumer. */
        class Consumer implements IConsumer {

            /**
             * Constructs a new Consumer.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Topic.IConsumer);

            /** Consumer name. */
            public name: string;

            /** Consumer important. */
            public important: boolean;

            /** Consumer readFrom. */
            public readFrom?: (google.protobuf.ITimestamp|null);

            /** Consumer supportedCodecs. */
            public supportedCodecs?: (Ydb.Topic.ISupportedCodecs|null);

            /** Consumer attributes. */
            public attributes: { [k: string]: string };

            /** Consumer consumerStats. */
            public consumerStats?: (Ydb.Topic.Consumer.IConsumerStats|null);

            /**
             * Creates a new Consumer instance using the specified properties.
             * @param [properties] Properties to set
             * @returns Consumer instance
             */
            public static create(properties?: Ydb.Topic.IConsumer): Ydb.Topic.Consumer;

            /**
             * Encodes the specified Consumer message. Does not implicitly {@link Ydb.Topic.Consumer.verify|verify} messages.
             * @param message Consumer message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Topic.IConsumer, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified Consumer message, length delimited. Does not implicitly {@link Ydb.Topic.Consumer.verify|verify} messages.
             * @param message Consumer message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Topic.IConsumer, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a Consumer message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns Consumer
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Topic.Consumer;

            /**
             * Decodes a Consumer message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns Consumer
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Topic.Consumer;

            /**
             * Verifies a Consumer message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a Consumer message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns Consumer
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Topic.Consumer;

            /**
             * Creates a plain object from a Consumer message. Also converts values to other types if specified.
             * @param message Consumer
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Topic.Consumer, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this Consumer to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        namespace Consumer {

            /** Properties of a ConsumerStats. */
            interface IConsumerStats {

                /** ConsumerStats minPartitionsLastReadTime */
                minPartitionsLastReadTime?: (google.protobuf.ITimestamp|null);

                /** ConsumerStats maxReadTimeLag */
                maxReadTimeLag?: (google.protobuf.IDuration|null);

                /** ConsumerStats maxWriteTimeLag */
                maxWriteTimeLag?: (google.protobuf.IDuration|null);

                /** ConsumerStats bytesRead */
                bytesRead?: (Ydb.Topic.IMultipleWindowsStat|null);
            }

            /** Represents a ConsumerStats. */
            class ConsumerStats implements IConsumerStats {

                /**
                 * Constructs a new ConsumerStats.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: Ydb.Topic.Consumer.IConsumerStats);

                /** ConsumerStats minPartitionsLastReadTime. */
                public minPartitionsLastReadTime?: (google.protobuf.ITimestamp|null);

                /** ConsumerStats maxReadTimeLag. */
                public maxReadTimeLag?: (google.protobuf.IDuration|null);

                /** ConsumerStats maxWriteTimeLag. */
                public maxWriteTimeLag?: (google.protobuf.IDuration|null);

                /** ConsumerStats bytesRead. */
                public bytesRead?: (Ydb.Topic.IMultipleWindowsStat|null);

                /**
                 * Creates a new ConsumerStats instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns ConsumerStats instance
                 */
                public static create(properties?: Ydb.Topic.Consumer.IConsumerStats): Ydb.Topic.Consumer.ConsumerStats;

                /**
                 * Encodes the specified ConsumerStats message. Does not implicitly {@link Ydb.Topic.Consumer.ConsumerStats.verify|verify} messages.
                 * @param message ConsumerStats message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: Ydb.Topic.Consumer.IConsumerStats, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified ConsumerStats message, length delimited. Does not implicitly {@link Ydb.Topic.Consumer.ConsumerStats.verify|verify} messages.
                 * @param message ConsumerStats message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: Ydb.Topic.Consumer.IConsumerStats, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a ConsumerStats message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns ConsumerStats
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Topic.Consumer.ConsumerStats;

                /**
                 * Decodes a ConsumerStats message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns ConsumerStats
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Topic.Consumer.ConsumerStats;

                /**
                 * Verifies a ConsumerStats message.
                 * @param message Plain object to verify
                 * @returns `null` if valid, otherwise the reason why it is not
                 */
                public static verify(message: { [k: string]: any }): (string|null);

                /**
                 * Creates a ConsumerStats message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns ConsumerStats
                 */
                public static fromObject(object: { [k: string]: any }): Ydb.Topic.Consumer.ConsumerStats;

                /**
                 * Creates a plain object from a ConsumerStats message. Also converts values to other types if specified.
                 * @param message ConsumerStats
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: Ydb.Topic.Consumer.ConsumerStats, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this ConsumerStats to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };
            }
        }

        /** Properties of an AlterConsumer. */
        interface IAlterConsumer {

            /** AlterConsumer name */
            name?: (string|null);

            /** AlterConsumer setImportant */
            setImportant?: (boolean|null);

            /** AlterConsumer setReadFrom */
            setReadFrom?: (google.protobuf.ITimestamp|null);

            /** AlterConsumer setSupportedCodecs */
            setSupportedCodecs?: (Ydb.Topic.ISupportedCodecs|null);

            /** AlterConsumer alterAttributes */
            alterAttributes?: ({ [k: string]: string }|null);
        }

        /** Represents an AlterConsumer. */
        class AlterConsumer implements IAlterConsumer {

            /**
             * Constructs a new AlterConsumer.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Topic.IAlterConsumer);

            /** AlterConsumer name. */
            public name: string;

            /** AlterConsumer setImportant. */
            public setImportant?: (boolean|null);

            /** AlterConsumer setReadFrom. */
            public setReadFrom?: (google.protobuf.ITimestamp|null);

            /** AlterConsumer setSupportedCodecs. */
            public setSupportedCodecs?: (Ydb.Topic.ISupportedCodecs|null);

            /** AlterConsumer alterAttributes. */
            public alterAttributes: { [k: string]: string };

            /** AlterConsumer _setImportant. */
            public _setImportant?: "setImportant";

            /**
             * Creates a new AlterConsumer instance using the specified properties.
             * @param [properties] Properties to set
             * @returns AlterConsumer instance
             */
            public static create(properties?: Ydb.Topic.IAlterConsumer): Ydb.Topic.AlterConsumer;

            /**
             * Encodes the specified AlterConsumer message. Does not implicitly {@link Ydb.Topic.AlterConsumer.verify|verify} messages.
             * @param message AlterConsumer message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Topic.IAlterConsumer, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified AlterConsumer message, length delimited. Does not implicitly {@link Ydb.Topic.AlterConsumer.verify|verify} messages.
             * @param message AlterConsumer message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Topic.IAlterConsumer, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes an AlterConsumer message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns AlterConsumer
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Topic.AlterConsumer;

            /**
             * Decodes an AlterConsumer message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns AlterConsumer
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Topic.AlterConsumer;

            /**
             * Verifies an AlterConsumer message.
             * @param message Plain 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 AlterConsumer message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns AlterConsumer
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Topic.AlterConsumer;

            /**
             * Creates a plain object from an AlterConsumer message. Also converts values to other types if specified.
             * @param message AlterConsumer
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Topic.AlterConsumer, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this AlterConsumer to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a PartitioningSettings. */
        interface IPartitioningSettings {

            /** PartitioningSettings minActivePartitions */
            minActivePartitions?: (number|Long|null);

            /** PartitioningSettings partitionCountLimit */
            partitionCountLimit?: (number|Long|null);
        }

        /** Represents a PartitioningSettings. */
        class PartitioningSettings implements IPartitioningSettings {

            /**
             * Constructs a new PartitioningSettings.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Topic.IPartitioningSettings);

            /** PartitioningSettings minActivePartitions. */
            public minActivePartitions: (number|Long);

            /** PartitioningSettings partitionCountLimit. */
            public partitionCountLimit: (number|Long);

            /**
             * Creates a new PartitioningSettings instance using the specified properties.
             * @param [properties] Properties to set
             * @returns PartitioningSettings instance
             */
            public static create(properties?: Ydb.Topic.IPartitioningSettings): Ydb.Topic.PartitioningSettings;

            /**
             * Encodes the specified PartitioningSettings message. Does not implicitly {@link Ydb.Topic.PartitioningSettings.verify|verify} messages.
             * @param message PartitioningSettings message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Topic.IPartitioningSettings, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified PartitioningSettings message, length delimited. Does not implicitly {@link Ydb.Topic.PartitioningSettings.verify|verify} messages.
             * @param message PartitioningSettings message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Topic.IPartitioningSettings, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a PartitioningSettings message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns PartitioningSettings
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Topic.PartitioningSettings;

            /**
             * Decodes a PartitioningSettings message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns PartitioningSettings
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Topic.PartitioningSettings;

            /**
             * Verifies a PartitioningSettings message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a PartitioningSettings message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns PartitioningSettings
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Topic.PartitioningSettings;

            /**
             * Creates a plain object from a PartitioningSettings message. Also converts values to other types if specified.
             * @param message PartitioningSettings
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Topic.PartitioningSettings, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this PartitioningSettings to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of an AlterPartitioningSettings. */
        interface IAlterPartitioningSettings {

            /** AlterPartitioningSettings setMinActivePartitions */
            setMinActivePartitions?: (number|Long|null);

            /** AlterPartitioningSettings setPartitionCountLimit */
            setPartitionCountLimit?: (number|Long|null);
        }

        /** Represents an AlterPartitioningSettings. */
        class AlterPartitioningSettings implements IAlterPartitioningSettings {

            /**
             * Constructs a new AlterPartitioningSettings.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Topic.IAlterPartitioningSettings);

            /** AlterPartitioningSettings setMinActivePartitions. */
            public setMinActivePartitions?: (number|Long|null);

            /** AlterPartitioningSettings setPartitionCountLimit. */
            public setPartitionCountLimit?: (number|Long|null);

            /** AlterPartitioningSettings _setMinActivePartitions. */
            public _setMinActivePartitions?: "setMinActivePartitions";

            /** AlterPartitioningSettings _setPartitionCountLimit. */
            public _setPartitionCountLimit?: "setPartitionCountLimit";

            /**
             * Creates a new AlterPartitioningSettings instance using the specified properties.
             * @param [properties] Properties to set
             * @returns AlterPartitioningSettings instance
             */
            public static create(properties?: Ydb.Topic.IAlterPartitioningSettings): Ydb.Topic.AlterPartitioningSettings;

            /**
             * Encodes the specified AlterPartitioningSettings message. Does not implicitly {@link Ydb.Topic.AlterPartitioningSettings.verify|verify} messages.
             * @param message AlterPartitioningSettings message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Topic.IAlterPartitioningSettings, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified AlterPartitioningSettings message, length delimited. Does not implicitly {@link Ydb.Topic.AlterPartitioningSettings.verify|verify} messages.
             * @param message AlterPartitioningSettings message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Topic.IAlterPartitioningSettings, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes an AlterPartitioningSettings message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns AlterPartitioningSettings
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Topic.AlterPartitioningSettings;

            /**
             * Decodes an AlterPartitioningSettings message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns AlterPartitioningSettings
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Topic.AlterPartitioningSettings;

            /**
             * Verifies an AlterPartitioningSettings message.
             * @param message Plain 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 AlterPartitioningSettings message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns AlterPartitioningSettings
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Topic.AlterPartitioningSettings;

            /**
             * Creates a plain object from an AlterPartitioningSettings message. Also converts values to other types if specified.
             * @param message AlterPartitioningSettings
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Topic.AlterPartitioningSettings, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this AlterPartitioningSettings to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** MeteringMode enum. */
        enum MeteringMode {
            METERING_MODE_UNSPECIFIED = 0,
            METERING_MODE_RESERVED_CAPACITY = 1,
            METERING_MODE_REQUEST_UNITS = 2
        }

        /** Properties of a CreateTopicRequest. */
        interface ICreateTopicRequest {

            /** CreateTopicRequest operationParams */
            operationParams?: (Ydb.Operations.IOperationParams|null);

            /** CreateTopicRequest path */
            path?: (string|null);

            /** CreateTopicRequest partitioningSettings */
            partitioningSettings?: (Ydb.Topic.IPartitioningSettings|null);

            /** CreateTopicRequest retentionPeriod */
            retentionPeriod?: (google.protobuf.IDuration|null);

            /** CreateTopicRequest retentionStorageMb */
            retentionStorageMb?: (number|Long|null);

            /** CreateTopicRequest supportedCodecs */
            supportedCodecs?: (Ydb.Topic.ISupportedCodecs|null);

            /** CreateTopicRequest partitionWriteSpeedBytesPerSecond */
            partitionWriteSpeedBytesPerSecond?: (number|Long|null);

            /** CreateTopicRequest partitionWriteBurstBytes */
            partitionWriteBurstBytes?: (number|Long|null);

            /** CreateTopicRequest attributes */
            attributes?: ({ [k: string]: string }|null);

            /** CreateTopicRequest consumers */
            consumers?: (Ydb.Topic.IConsumer[]|null);

            /** CreateTopicRequest meteringMode */
            meteringMode?: (Ydb.Topic.MeteringMode|null);
        }

        /** Represents a CreateTopicRequest. */
        class CreateTopicRequest implements ICreateTopicRequest {

            /**
             * Constructs a new CreateTopicRequest.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Topic.ICreateTopicRequest);

            /** CreateTopicRequest operationParams. */
            public operationParams?: (Ydb.Operations.IOperationParams|null);

            /** CreateTopicRequest path. */
            public path: string;

            /** CreateTopicRequest partitioningSettings. */
            public partitioningSettings?: (Ydb.Topic.IPartitioningSettings|null);

            /** CreateTopicRequest retentionPeriod. */
            public retentionPeriod?: (google.protobuf.IDuration|null);

            /** CreateTopicRequest retentionStorageMb. */
            public retentionStorageMb: (number|Long);

            /** CreateTopicRequest supportedCodecs. */
            public supportedCodecs?: (Ydb.Topic.ISupportedCodecs|null);

            /** CreateTopicRequest partitionWriteSpeedBytesPerSecond. */
            public partitionWriteSpeedBytesPerSecond: (number|Long);

            /** CreateTopicRequest partitionWriteBurstBytes. */
            public partitionWriteBurstBytes: (number|Long);

            /** CreateTopicRequest attributes. */
            public attributes: { [k: string]: string };

            /** CreateTopicRequest consumers. */
            public consumers: Ydb.Topic.IConsumer[];

            /** CreateTopicRequest meteringMode. */
            public meteringMode: Ydb.Topic.MeteringMode;

            /**
             * Creates a new CreateTopicRequest instance using the specified properties.
             * @param [properties] Properties to set
             * @returns CreateTopicRequest instance
             */
            public static create(properties?: Ydb.Topic.ICreateTopicRequest): Ydb.Topic.CreateTopicRequest;

            /**
             * Encodes the specified CreateTopicRequest message. Does not implicitly {@link Ydb.Topic.CreateTopicRequest.verify|verify} messages.
             * @param message CreateTopicRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Topic.ICreateTopicRequest, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified CreateTopicRequest message, length delimited. Does not implicitly {@link Ydb.Topic.CreateTopicRequest.verify|verify} messages.
             * @param message CreateTopicRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Topic.ICreateTopicRequest, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a CreateTopicRequest message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns CreateTopicRequest
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Topic.CreateTopicRequest;

            /**
             * Decodes a CreateTopicRequest message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns CreateTopicRequest
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Topic.CreateTopicRequest;

            /**
             * Verifies a CreateTopicRequest message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a CreateTopicRequest message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns CreateTopicRequest
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Topic.CreateTopicRequest;

            /**
             * Creates a plain object from a CreateTopicRequest message. Also converts values to other types if specified.
             * @param message CreateTopicRequest
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Topic.CreateTopicRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this CreateTopicRequest to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a CreateTopicResponse. */
        interface ICreateTopicResponse {

            /** CreateTopicResponse operation */
            operation?: (Ydb.Operations.IOperation|null);
        }

        /** Represents a CreateTopicResponse. */
        class CreateTopicResponse implements ICreateTopicResponse {

            /**
             * Constructs a new CreateTopicResponse.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Topic.ICreateTopicResponse);

            /** CreateTopicResponse operation. */
            public operation?: (Ydb.Operations.IOperation|null);

            /**
             * Creates a new CreateTopicResponse instance using the specified properties.
             * @param [properties] Properties to set
             * @returns CreateTopicResponse instance
             */
            public static create(properties?: Ydb.Topic.ICreateTopicResponse): Ydb.Topic.CreateTopicResponse;

            /**
             * Encodes the specified CreateTopicResponse message. Does not implicitly {@link Ydb.Topic.CreateTopicResponse.verify|verify} messages.
             * @param message CreateTopicResponse message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Topic.ICreateTopicResponse, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified CreateTopicResponse message, length delimited. Does not implicitly {@link Ydb.Topic.CreateTopicResponse.verify|verify} messages.
             * @param message CreateTopicResponse message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Topic.ICreateTopicResponse, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a CreateTopicResponse message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns CreateTopicResponse
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Topic.CreateTopicResponse;

            /**
             * Decodes a CreateTopicResponse message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns CreateTopicResponse
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Topic.CreateTopicResponse;

            /**
             * Verifies a CreateTopicResponse message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a CreateTopicResponse message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns CreateTopicResponse
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Topic.CreateTopicResponse;

            /**
             * Creates a plain object from a CreateTopicResponse message. Also converts values to other types if specified.
             * @param message CreateTopicResponse
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Topic.CreateTopicResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this CreateTopicResponse to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a CreateTopicResult. */
        interface ICreateTopicResult {
        }

        /** Represents a CreateTopicResult. */
        class CreateTopicResult implements ICreateTopicResult {

            /**
             * Constructs a new CreateTopicResult.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Topic.ICreateTopicResult);

            /**
             * Creates a new CreateTopicResult instance using the specified properties.
             * @param [properties] Properties to set
             * @returns CreateTopicResult instance
             */
            public static create(properties?: Ydb.Topic.ICreateTopicResult): Ydb.Topic.CreateTopicResult;

            /**
             * Encodes the specified CreateTopicResult message. Does not implicitly {@link Ydb.Topic.CreateTopicResult.verify|verify} messages.
             * @param message CreateTopicResult message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Topic.ICreateTopicResult, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified CreateTopicResult message, length delimited. Does not implicitly {@link Ydb.Topic.CreateTopicResult.verify|verify} messages.
             * @param message CreateTopicResult message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Topic.ICreateTopicResult, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a CreateTopicResult message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns CreateTopicResult
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Topic.CreateTopicResult;

            /**
             * Decodes a CreateTopicResult message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns CreateTopicResult
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Topic.CreateTopicResult;

            /**
             * Verifies a CreateTopicResult message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a CreateTopicResult message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns CreateTopicResult
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Topic.CreateTopicResult;

            /**
             * Creates a plain object from a CreateTopicResult message. Also converts values to other types if specified.
             * @param message CreateTopicResult
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Topic.CreateTopicResult, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this CreateTopicResult to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a PartitionLocation. */
        interface IPartitionLocation {

            /** PartitionLocation nodeId */
            nodeId?: (number|null);

            /** PartitionLocation generation */
            generation?: (number|Long|null);
        }

        /** Represents a PartitionLocation. */
        class PartitionLocation implements IPartitionLocation {

            /**
             * Constructs a new PartitionLocation.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Topic.IPartitionLocation);

            /** PartitionLocation nodeId. */
            public nodeId: number;

            /** PartitionLocation generation. */
            public generation: (number|Long);

            /**
             * Creates a new PartitionLocation instance using the specified properties.
             * @param [properties] Properties to set
             * @returns PartitionLocation instance
             */
            public static create(properties?: Ydb.Topic.IPartitionLocation): Ydb.Topic.PartitionLocation;

            /**
             * Encodes the specified PartitionLocation message. Does not implicitly {@link Ydb.Topic.PartitionLocation.verify|verify} messages.
             * @param message PartitionLocation message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Topic.IPartitionLocation, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified PartitionLocation message, length delimited. Does not implicitly {@link Ydb.Topic.PartitionLocation.verify|verify} messages.
             * @param message PartitionLocation message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Topic.IPartitionLocation, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a PartitionLocation message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns PartitionLocation
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Topic.PartitionLocation;

            /**
             * Decodes a PartitionLocation message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns PartitionLocation
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Topic.PartitionLocation;

            /**
             * Verifies a PartitionLocation message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a PartitionLocation message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns PartitionLocation
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Topic.PartitionLocation;

            /**
             * Creates a plain object from a PartitionLocation message. Also converts values to other types if specified.
             * @param message PartitionLocation
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Topic.PartitionLocation, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this PartitionLocation to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a DescribeTopicRequest. */
        interface IDescribeTopicRequest {

            /** DescribeTopicRequest operationParams */
            operationParams?: (Ydb.Operations.IOperationParams|null);

            /** DescribeTopicRequest path */
            path?: (string|null);

            /** DescribeTopicRequest includeStats */
            includeStats?: (boolean|null);

            /** DescribeTopicRequest includeLocation */
            includeLocation?: (boolean|null);
        }

        /** Represents a DescribeTopicRequest. */
        class DescribeTopicRequest implements IDescribeTopicRequest {

            /**
             * Constructs a new DescribeTopicRequest.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Topic.IDescribeTopicRequest);

            /** DescribeTopicRequest operationParams. */
            public operationParams?: (Ydb.Operations.IOperationParams|null);

            /** DescribeTopicRequest path. */
            public path: string;

            /** DescribeTopicRequest includeStats. */
            public includeStats: boolean;

            /** DescribeTopicRequest includeLocation. */
            public includeLocation: boolean;

            /**
             * Creates a new DescribeTopicRequest instance using the specified properties.
             * @param [properties] Properties to set
             * @returns DescribeTopicRequest instance
             */
            public static create(properties?: Ydb.Topic.IDescribeTopicRequest): Ydb.Topic.DescribeTopicRequest;

            /**
             * Encodes the specified DescribeTopicRequest message. Does not implicitly {@link Ydb.Topic.DescribeTopicRequest.verify|verify} messages.
             * @param message DescribeTopicRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Topic.IDescribeTopicRequest, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified DescribeTopicRequest message, length delimited. Does not implicitly {@link Ydb.Topic.DescribeTopicRequest.verify|verify} messages.
             * @param message DescribeTopicRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Topic.IDescribeTopicRequest, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a DescribeTopicRequest message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns DescribeTopicRequest
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Topic.DescribeTopicRequest;

            /**
             * Decodes a DescribeTopicRequest message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns DescribeTopicRequest
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Topic.DescribeTopicRequest;

            /**
             * Verifies a DescribeTopicRequest message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a DescribeTopicRequest message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns DescribeTopicRequest
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Topic.DescribeTopicRequest;

            /**
             * Creates a plain object from a DescribeTopicRequest message. Also converts values to other types if specified.
             * @param message DescribeTopicRequest
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Topic.DescribeTopicRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this DescribeTopicRequest to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a DescribeTopicResponse. */
        interface IDescribeTopicResponse {

            /** DescribeTopicResponse operation */
            operation?: (Ydb.Operations.IOperation|null);
        }

        /** Represents a DescribeTopicResponse. */
        class DescribeTopicResponse implements IDescribeTopicResponse {

            /**
             * Constructs a new DescribeTopicResponse.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Topic.IDescribeTopicResponse);

            /** DescribeTopicResponse operation. */
            public operation?: (Ydb.Operations.IOperation|null);

            /**
             * Creates a new DescribeTopicResponse instance using the specified properties.
             * @param [properties] Properties to set
             * @returns DescribeTopicResponse instance
             */
            public static create(properties?: Ydb.Topic.IDescribeTopicResponse): Ydb.Topic.DescribeTopicResponse;

            /**
             * Encodes the specified DescribeTopicResponse message. Does not implicitly {@link Ydb.Topic.DescribeTopicResponse.verify|verify} messages.
             * @param message DescribeTopicResponse message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Topic.IDescribeTopicResponse, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified DescribeTopicResponse message, length delimited. Does not implicitly {@link Ydb.Topic.DescribeTopicResponse.verify|verify} messages.
             * @param message DescribeTopicResponse message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Topic.IDescribeTopicResponse, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a DescribeTopicResponse message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns DescribeTopicResponse
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Topic.DescribeTopicResponse;

            /**
             * Decodes a DescribeTopicResponse message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns DescribeTopicResponse
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Topic.DescribeTopicResponse;

            /**
             * Verifies a DescribeTopicResponse message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a DescribeTopicResponse message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns DescribeTopicResponse
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Topic.DescribeTopicResponse;

            /**
             * Creates a plain object from a DescribeTopicResponse message. Also converts values to other types if specified.
             * @param message DescribeTopicResponse
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Topic.DescribeTopicResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this DescribeTopicResponse to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a DescribeTopicResult. */
        interface IDescribeTopicResult {

            /** DescribeTopicResult self */
            self?: (Ydb.Scheme.IEntry|null);

            /** DescribeTopicResult partitioningSettings */
            partitioningSettings?: (Ydb.Topic.IPartitioningSettings|null);

            /** DescribeTopicResult partitions */
            partitions?: (Ydb.Topic.DescribeTopicResult.IPartitionInfo[]|null);

            /** DescribeTopicResult retentionPeriod */
            retentionPeriod?: (google.protobuf.IDuration|null);

            /** DescribeTopicResult retentionStorageMb */
            retentionStorageMb?: (number|Long|null);

            /** DescribeTopicResult supportedCodecs */
            supportedCodecs?: (Ydb.Topic.ISupportedCodecs|null);

            /** DescribeTopicResult partitionWriteSpeedBytesPerSecond */
            partitionWriteSpeedBytesPerSecond?: (number|Long|null);

            /** DescribeTopicResult partitionTotalReadSpeedBytesPerSecond */
            partitionTotalReadSpeedBytesPerSecond?: (number|Long|null);

            /** DescribeTopicResult partitionConsumerReadSpeedBytesPerSecond */
            partitionConsumerReadSpeedBytesPerSecond?: (number|Long|null);

            /** DescribeTopicResult partitionWriteBurstBytes */
            partitionWriteBurstBytes?: (number|Long|null);

            /** DescribeTopicResult attributes */
            attributes?: ({ [k: string]: string }|null);

            /** DescribeTopicResult consumers */
            consumers?: (Ydb.Topic.IConsumer[]|null);

            /** DescribeTopicResult meteringMode */
            meteringMode?: (Ydb.Topic.MeteringMode|null);

            /** DescribeTopicResult topicStats */
            topicStats?: (Ydb.Topic.DescribeTopicResult.ITopicStats|null);
        }

        /** Represents a DescribeTopicResult. */
        class DescribeTopicResult implements IDescribeTopicResult {

            /**
             * Constructs a new DescribeTopicResult.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Topic.IDescribeTopicResult);

            /** DescribeTopicResult self. */
            public self?: (Ydb.Scheme.IEntry|null);

            /** DescribeTopicResult partitioningSettings. */
            public partitioningSettings?: (Ydb.Topic.IPartitioningSettings|null);

            /** DescribeTopicResult partitions. */
            public partitions: Ydb.Topic.DescribeTopicResult.IPartitionInfo[];

            /** DescribeTopicResult retentionPeriod. */
            public retentionPeriod?: (google.protobuf.IDuration|null);

            /** DescribeTopicResult retentionStorageMb. */
            public retentionStorageMb: (number|Long);

            /** DescribeTopicResult supportedCodecs. */
            public supportedCodecs?: (Ydb.Topic.ISupportedCodecs|null);

            /** DescribeTopicResult partitionWriteSpeedBytesPerSecond. */
            public partitionWriteSpeedBytesPerSecond: (number|Long);

            /** DescribeTopicResult partitionTotalReadSpeedBytesPerSecond. */
            public partitionTotalReadSpeedBytesPerSecond: (number|Long);

            /** DescribeTopicResult partitionConsumerReadSpeedBytesPerSecond. */
            public partitionConsumerReadSpeedBytesPerSecond: (number|Long);

            /** DescribeTopicResult partitionWriteBurstBytes. */
            public partitionWriteBurstBytes: (number|Long);

            /** DescribeTopicResult attributes. */
            public attributes: { [k: string]: string };

            /** DescribeTopicResult consumers. */
            public consumers: Ydb.Topic.IConsumer[];

            /** DescribeTopicResult meteringMode. */
            public meteringMode: Ydb.Topic.MeteringMode;

            /** DescribeTopicResult topicStats. */
            public topicStats?: (Ydb.Topic.DescribeTopicResult.ITopicStats|null);

            /**
             * Creates a new DescribeTopicResult instance using the specified properties.
             * @param [properties] Properties to set
             * @returns DescribeTopicResult instance
             */
            public static create(properties?: Ydb.Topic.IDescribeTopicResult): Ydb.Topic.DescribeTopicResult;

            /**
             * Encodes the specified DescribeTopicResult message. Does not implicitly {@link Ydb.Topic.DescribeTopicResult.verify|verify} messages.
             * @param message DescribeTopicResult message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Topic.IDescribeTopicResult, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified DescribeTopicResult message, length delimited. Does not implicitly {@link Ydb.Topic.DescribeTopicResult.verify|verify} messages.
             * @param message DescribeTopicResult message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Topic.IDescribeTopicResult, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a DescribeTopicResult message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns DescribeTopicResult
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Topic.DescribeTopicResult;

            /**
             * Decodes a DescribeTopicResult message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns DescribeTopicResult
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Topic.DescribeTopicResult;

            /**
             * Verifies a DescribeTopicResult message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a DescribeTopicResult message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns DescribeTopicResult
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Topic.DescribeTopicResult;

            /**
             * Creates a plain object from a DescribeTopicResult message. Also converts values to other types if specified.
             * @param message DescribeTopicResult
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Topic.DescribeTopicResult, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this DescribeTopicResult to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        namespace DescribeTopicResult {

            /** Properties of a PartitionInfo. */
            interface IPartitionInfo {

                /** PartitionInfo partitionId */
                partitionId?: (number|Long|null);

                /** PartitionInfo active */
                active?: (boolean|null);

                /** PartitionInfo childPartitionIds */
                childPartitionIds?: ((number|Long)[]|null);

                /** PartitionInfo parentPartitionIds */
                parentPartitionIds?: ((number|Long)[]|null);

                /** PartitionInfo partitionStats */
                partitionStats?: (Ydb.Topic.IPartitionStats|null);

                /** PartitionInfo partitionLocation */
                partitionLocation?: (Ydb.Topic.IPartitionLocation|null);
            }

            /** Represents a PartitionInfo. */
            class PartitionInfo implements IPartitionInfo {

                /**
                 * Constructs a new PartitionInfo.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: Ydb.Topic.DescribeTopicResult.IPartitionInfo);

                /** PartitionInfo partitionId. */
                public partitionId: (number|Long);

                /** PartitionInfo active. */
                public active: boolean;

                /** PartitionInfo childPartitionIds. */
                public childPartitionIds: (number|Long)[];

                /** PartitionInfo parentPartitionIds. */
                public parentPartitionIds: (number|Long)[];

                /** PartitionInfo partitionStats. */
                public partitionStats?: (Ydb.Topic.IPartitionStats|null);

                /** PartitionInfo partitionLocation. */
                public partitionLocation?: (Ydb.Topic.IPartitionLocation|null);

                /**
                 * Creates a new PartitionInfo instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns PartitionInfo instance
                 */
                public static create(properties?: Ydb.Topic.DescribeTopicResult.IPartitionInfo): Ydb.Topic.DescribeTopicResult.PartitionInfo;

                /**
                 * Encodes the specified PartitionInfo message. Does not implicitly {@link Ydb.Topic.DescribeTopicResult.PartitionInfo.verify|verify} messages.
                 * @param message PartitionInfo message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: Ydb.Topic.DescribeTopicResult.IPartitionInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified PartitionInfo message, length delimited. Does not implicitly {@link Ydb.Topic.DescribeTopicResult.PartitionInfo.verify|verify} messages.
                 * @param message PartitionInfo message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: Ydb.Topic.DescribeTopicResult.IPartitionInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a PartitionInfo message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns PartitionInfo
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Topic.DescribeTopicResult.PartitionInfo;

                /**
                 * Decodes a PartitionInfo message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns PartitionInfo
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Topic.DescribeTopicResult.PartitionInfo;

                /**
                 * Verifies a PartitionInfo message.
                 * @param message Plain object to verify
                 * @returns `null` if valid, otherwise the reason why it is not
                 */
                public static verify(message: { [k: string]: any }): (string|null);

                /**
                 * Creates a PartitionInfo message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns PartitionInfo
                 */
                public static fromObject(object: { [k: string]: any }): Ydb.Topic.DescribeTopicResult.PartitionInfo;

                /**
                 * Creates a plain object from a PartitionInfo message. Also converts values to other types if specified.
                 * @param message PartitionInfo
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: Ydb.Topic.DescribeTopicResult.PartitionInfo, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this PartitionInfo to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };
            }

            /** Properties of a TopicStats. */
            interface ITopicStats {

                /** TopicStats storeSizeBytes */
                storeSizeBytes?: (number|Long|null);

                /** TopicStats minLastWriteTime */
                minLastWriteTime?: (google.protobuf.ITimestamp|null);

                /** TopicStats maxWriteTimeLag */
                maxWriteTimeLag?: (google.protobuf.IDuration|null);

                /** TopicStats bytesWritten */
                bytesWritten?: (Ydb.Topic.IMultipleWindowsStat|null);
            }

            /** Represents a TopicStats. */
            class TopicStats implements ITopicStats {

                /**
                 * Constructs a new TopicStats.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: Ydb.Topic.DescribeTopicResult.ITopicStats);

                /** TopicStats storeSizeBytes. */
                public storeSizeBytes: (number|Long);

                /** TopicStats minLastWriteTime. */
                public minLastWriteTime?: (google.protobuf.ITimestamp|null);

                /** TopicStats maxWriteTimeLag. */
                public maxWriteTimeLag?: (google.protobuf.IDuration|null);

                /** TopicStats bytesWritten. */
                public bytesWritten?: (Ydb.Topic.IMultipleWindowsStat|null);

                /**
                 * Creates a new TopicStats instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns TopicStats instance
                 */
                public static create(properties?: Ydb.Topic.DescribeTopicResult.ITopicStats): Ydb.Topic.DescribeTopicResult.TopicStats;

                /**
                 * Encodes the specified TopicStats message. Does not implicitly {@link Ydb.Topic.DescribeTopicResult.TopicStats.verify|verify} messages.
                 * @param message TopicStats message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: Ydb.Topic.DescribeTopicResult.ITopicStats, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified TopicStats message, length delimited. Does not implicitly {@link Ydb.Topic.DescribeTopicResult.TopicStats.verify|verify} messages.
                 * @param message TopicStats message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: Ydb.Topic.DescribeTopicResult.ITopicStats, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a TopicStats message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns TopicStats
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Topic.DescribeTopicResult.TopicStats;

                /**
                 * Decodes a TopicStats message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns TopicStats
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Topic.DescribeTopicResult.TopicStats;

                /**
                 * Verifies a TopicStats message.
                 * @param message Plain object to verify
                 * @returns `null` if valid, otherwise the reason why it is not
                 */
                public static verify(message: { [k: string]: any }): (string|null);

                /**
                 * Creates a TopicStats message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns TopicStats
                 */
                public static fromObject(object: { [k: string]: any }): Ydb.Topic.DescribeTopicResult.TopicStats;

                /**
                 * Creates a plain object from a TopicStats message. Also converts values to other types if specified.
                 * @param message TopicStats
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: Ydb.Topic.DescribeTopicResult.TopicStats, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this TopicStats to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };
            }
        }

        /** Properties of a DescribePartitionRequest. */
        interface IDescribePartitionRequest {

            /** DescribePartitionRequest operationParams */
            operationParams?: (Ydb.Operations.IOperationParams|null);

            /** DescribePartitionRequest path */
            path?: (string|null);

            /** DescribePartitionRequest partitionId */
            partitionId?: (number|Long|null);

            /** DescribePartitionRequest includeStats */
            includeStats?: (boolean|null);

            /** DescribePartitionRequest includeLocation */
            includeLocation?: (boolean|null);
        }

        /** Represents a DescribePartitionRequest. */
        class DescribePartitionRequest implements IDescribePartitionRequest {

            /**
             * Constructs a new DescribePartitionRequest.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Topic.IDescribePartitionRequest);

            /** DescribePartitionRequest operationParams. */
            public operationParams?: (Ydb.Operations.IOperationParams|null);

            /** DescribePartitionRequest path. */
            public path: string;

            /** DescribePartitionRequest partitionId. */
            public partitionId: (number|Long);

            /** DescribePartitionRequest includeStats. */
            public includeStats: boolean;

            /** DescribePartitionRequest includeLocation. */
            public includeLocation: boolean;

            /**
             * Creates a new DescribePartitionRequest instance using the specified properties.
             * @param [properties] Properties to set
             * @returns DescribePartitionRequest instance
             */
            public static create(properties?: Ydb.Topic.IDescribePartitionRequest): Ydb.Topic.DescribePartitionRequest;

            /**
             * Encodes the specified DescribePartitionRequest message. Does not implicitly {@link Ydb.Topic.DescribePartitionRequest.verify|verify} messages.
             * @param message DescribePartitionRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Topic.IDescribePartitionRequest, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified DescribePartitionRequest message, length delimited. Does not implicitly {@link Ydb.Topic.DescribePartitionRequest.verify|verify} messages.
             * @param message DescribePartitionRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Topic.IDescribePartitionRequest, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a DescribePartitionRequest message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns DescribePartitionRequest
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Topic.DescribePartitionRequest;

            /**
             * Decodes a DescribePartitionRequest message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns DescribePartitionRequest
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Topic.DescribePartitionRequest;

            /**
             * Verifies a DescribePartitionRequest message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a DescribePartitionRequest message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns DescribePartitionRequest
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Topic.DescribePartitionRequest;

            /**
             * Creates a plain object from a DescribePartitionRequest message. Also converts values to other types if specified.
             * @param message DescribePartitionRequest
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Topic.DescribePartitionRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this DescribePartitionRequest to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a DescribePartitionResponse. */
        interface IDescribePartitionResponse {

            /** DescribePartitionResponse operation */
            operation?: (Ydb.Operations.IOperation|null);
        }

        /** Represents a DescribePartitionResponse. */
        class DescribePartitionResponse implements IDescribePartitionResponse {

            /**
             * Constructs a new DescribePartitionResponse.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Topic.IDescribePartitionResponse);

            /** DescribePartitionResponse operation. */
            public operation?: (Ydb.Operations.IOperation|null);

            /**
             * Creates a new DescribePartitionResponse instance using the specified properties.
             * @param [properties] Properties to set
             * @returns DescribePartitionResponse instance
             */
            public static create(properties?: Ydb.Topic.IDescribePartitionResponse): Ydb.Topic.DescribePartitionResponse;

            /**
             * Encodes the specified DescribePartitionResponse message. Does not implicitly {@link Ydb.Topic.DescribePartitionResponse.verify|verify} messages.
             * @param message DescribePartitionResponse message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Topic.IDescribePartitionResponse, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified DescribePartitionResponse message, length delimited. Does not implicitly {@link Ydb.Topic.DescribePartitionResponse.verify|verify} messages.
             * @param message DescribePartitionResponse message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Topic.IDescribePartitionResponse, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a DescribePartitionResponse message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns DescribePartitionResponse
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Topic.DescribePartitionResponse;

            /**
             * Decodes a DescribePartitionResponse message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns DescribePartitionResponse
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Topic.DescribePartitionResponse;

            /**
             * Verifies a DescribePartitionResponse message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a DescribePartitionResponse message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns DescribePartitionResponse
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Topic.DescribePartitionResponse;

            /**
             * Creates a plain object from a DescribePartitionResponse message. Also converts values to other types if specified.
             * @param message DescribePartitionResponse
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Topic.DescribePartitionResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this DescribePartitionResponse to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a DescribePartitionResult. */
        interface IDescribePartitionResult {

            /** DescribePartitionResult partition */
            partition?: (Ydb.Topic.DescribeTopicResult.IPartitionInfo|null);
        }

        /** Represents a DescribePartitionResult. */
        class DescribePartitionResult implements IDescribePartitionResult {

            /**
             * Constructs a new DescribePartitionResult.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Topic.IDescribePartitionResult);

            /** DescribePartitionResult partition. */
            public partition?: (Ydb.Topic.DescribeTopicResult.IPartitionInfo|null);

            /**
             * Creates a new DescribePartitionResult instance using the specified properties.
             * @param [properties] Properties to set
             * @returns DescribePartitionResult instance
             */
            public static create(properties?: Ydb.Topic.IDescribePartitionResult): Ydb.Topic.DescribePartitionResult;

            /**
             * Encodes the specified DescribePartitionResult message. Does not implicitly {@link Ydb.Topic.DescribePartitionResult.verify|verify} messages.
             * @param message DescribePartitionResult message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Topic.IDescribePartitionResult, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified DescribePartitionResult message, length delimited. Does not implicitly {@link Ydb.Topic.DescribePartitionResult.verify|verify} messages.
             * @param message DescribePartitionResult message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Topic.IDescribePartitionResult, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a DescribePartitionResult message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns DescribePartitionResult
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Topic.DescribePartitionResult;

            /**
             * Decodes a DescribePartitionResult message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns DescribePartitionResult
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Topic.DescribePartitionResult;

            /**
             * Verifies a DescribePartitionResult message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a DescribePartitionResult message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns DescribePartitionResult
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Topic.DescribePartitionResult;

            /**
             * Creates a plain object from a DescribePartitionResult message. Also converts values to other types if specified.
             * @param message DescribePartitionResult
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Topic.DescribePartitionResult, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this DescribePartitionResult to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a DescribeConsumerRequest. */
        interface IDescribeConsumerRequest {

            /** DescribeConsumerRequest operationParams */
            operationParams?: (Ydb.Operations.IOperationParams|null);

            /** DescribeConsumerRequest path */
            path?: (string|null);

            /** DescribeConsumerRequest consumer */
            consumer?: (string|null);

            /** DescribeConsumerRequest includeStats */
            includeStats?: (boolean|null);

            /** DescribeConsumerRequest includeLocation */
            includeLocation?: (boolean|null);
        }

        /** Represents a DescribeConsumerRequest. */
        class DescribeConsumerRequest implements IDescribeConsumerRequest {

            /**
             * Constructs a new DescribeConsumerRequest.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Topic.IDescribeConsumerRequest);

            /** DescribeConsumerRequest operationParams. */
            public operationParams?: (Ydb.Operations.IOperationParams|null);

            /** DescribeConsumerRequest path. */
            public path: string;

            /** DescribeConsumerRequest consumer. */
            public consumer: string;

            /** DescribeConsumerRequest includeStats. */
            public includeStats: boolean;

            /** DescribeConsumerRequest includeLocation. */
            public includeLocation: boolean;

            /**
             * Creates a new DescribeConsumerRequest instance using the specified properties.
             * @param [properties] Properties to set
             * @returns DescribeConsumerRequest instance
             */
            public static create(properties?: Ydb.Topic.IDescribeConsumerRequest): Ydb.Topic.DescribeConsumerRequest;

            /**
             * Encodes the specified DescribeConsumerRequest message. Does not implicitly {@link Ydb.Topic.DescribeConsumerRequest.verify|verify} messages.
             * @param message DescribeConsumerRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Topic.IDescribeConsumerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified DescribeConsumerRequest message, length delimited. Does not implicitly {@link Ydb.Topic.DescribeConsumerRequest.verify|verify} messages.
             * @param message DescribeConsumerRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Topic.IDescribeConsumerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a DescribeConsumerRequest message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns DescribeConsumerRequest
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Topic.DescribeConsumerRequest;

            /**
             * Decodes a DescribeConsumerRequest message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns DescribeConsumerRequest
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Topic.DescribeConsumerRequest;

            /**
             * Verifies a DescribeConsumerRequest message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a DescribeConsumerRequest message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns DescribeConsumerRequest
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Topic.DescribeConsumerRequest;

            /**
             * Creates a plain object from a DescribeConsumerRequest message. Also converts values to other types if specified.
             * @param message DescribeConsumerRequest
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Topic.DescribeConsumerRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this DescribeConsumerRequest to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a DescribeConsumerResponse. */
        interface IDescribeConsumerResponse {

            /** DescribeConsumerResponse operation */
            operation?: (Ydb.Operations.IOperation|null);
        }

        /** Represents a DescribeConsumerResponse. */
        class DescribeConsumerResponse implements IDescribeConsumerResponse {

            /**
             * Constructs a new DescribeConsumerResponse.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Topic.IDescribeConsumerResponse);

            /** DescribeConsumerResponse operation. */
            public operation?: (Ydb.Operations.IOperation|null);

            /**
             * Creates a new DescribeConsumerResponse instance using the specified properties.
             * @param [properties] Properties to set
             * @returns DescribeConsumerResponse instance
             */
            public static create(properties?: Ydb.Topic.IDescribeConsumerResponse): Ydb.Topic.DescribeConsumerResponse;

            /**
             * Encodes the specified DescribeConsumerResponse message. Does not implicitly {@link Ydb.Topic.DescribeConsumerResponse.verify|verify} messages.
             * @param message DescribeConsumerResponse message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Topic.IDescribeConsumerResponse, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified DescribeConsumerResponse message, length delimited. Does not implicitly {@link Ydb.Topic.DescribeConsumerResponse.verify|verify} messages.
             * @param message DescribeConsumerResponse message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Topic.IDescribeConsumerResponse, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a DescribeConsumerResponse message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns DescribeConsumerResponse
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Topic.DescribeConsumerResponse;

            /**
             * Decodes a DescribeConsumerResponse message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns DescribeConsumerResponse
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Topic.DescribeConsumerResponse;

            /**
             * Verifies a DescribeConsumerResponse message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a DescribeConsumerResponse message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns DescribeConsumerResponse
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Topic.DescribeConsumerResponse;

            /**
             * Creates a plain object from a DescribeConsumerResponse message. Also converts values to other types if specified.
             * @param message DescribeConsumerResponse
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Topic.DescribeConsumerResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this DescribeConsumerResponse to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a DescribeConsumerResult. */
        interface IDescribeConsumerResult {

            /** DescribeConsumerResult self */
            self?: (Ydb.Scheme.IEntry|null);

            /** DescribeConsumerResult consumer */
            consumer?: (Ydb.Topic.IConsumer|null);

            /** DescribeConsumerResult partitions */
            partitions?: (Ydb.Topic.DescribeConsumerResult.IPartitionInfo[]|null);
        }

        /** Represents a DescribeConsumerResult. */
        class DescribeConsumerResult implements IDescribeConsumerResult {

            /**
             * Constructs a new DescribeConsumerResult.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Topic.IDescribeConsumerResult);

            /** DescribeConsumerResult self. */
            public self?: (Ydb.Scheme.IEntry|null);

            /** DescribeConsumerResult consumer. */
            public consumer?: (Ydb.Topic.IConsumer|null);

            /** DescribeConsumerResult partitions. */
            public partitions: Ydb.Topic.DescribeConsumerResult.IPartitionInfo[];

            /**
             * Creates a new DescribeConsumerResult instance using the specified properties.
             * @param [properties] Properties to set
             * @returns DescribeConsumerResult instance
             */
            public static create(properties?: Ydb.Topic.IDescribeConsumerResult): Ydb.Topic.DescribeConsumerResult;

            /**
             * Encodes the specified DescribeConsumerResult message. Does not implicitly {@link Ydb.Topic.DescribeConsumerResult.verify|verify} messages.
             * @param message DescribeConsumerResult message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Topic.IDescribeConsumerResult, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified DescribeConsumerResult message, length delimited. Does not implicitly {@link Ydb.Topic.DescribeConsumerResult.verify|verify} messages.
             * @param message DescribeConsumerResult message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Topic.IDescribeConsumerResult, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a DescribeConsumerResult message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns DescribeConsumerResult
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Topic.DescribeConsumerResult;

            /**
             * Decodes a DescribeConsumerResult message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns DescribeConsumerResult
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Topic.DescribeConsumerResult;

            /**
             * Verifies a DescribeConsumerResult message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a DescribeConsumerResult message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns DescribeConsumerResult
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Topic.DescribeConsumerResult;

            /**
             * Creates a plain object from a DescribeConsumerResult message. Also converts values to other types if specified.
             * @param message DescribeConsumerResult
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Topic.DescribeConsumerResult, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this DescribeConsumerResult to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        namespace DescribeConsumerResult {

            /** Properties of a PartitionInfo. */
            interface IPartitionInfo {

                /** PartitionInfo partitionId */
                partitionId?: (number|Long|null);

                /** PartitionInfo active */
                active?: (boolean|null);

                /** PartitionInfo childPartitionIds */
                childPartitionIds?: ((number|Long)[]|null);

                /** PartitionInfo parentPartitionIds */
                parentPartitionIds?: ((number|Long)[]|null);

                /** PartitionInfo partitionStats */
                partitionStats?: (Ydb.Topic.IPartitionStats|null);

                /** PartitionInfo partitionConsumerStats */
                partitionConsumerStats?: (Ydb.Topic.DescribeConsumerResult.IPartitionConsumerStats|null);

                /** PartitionInfo partitionLocation */
                partitionLocation?: (Ydb.Topic.IPartitionLocation|null);
            }

            /** Represents a PartitionInfo. */
            class PartitionInfo implements IPartitionInfo {

                /**
                 * Constructs a new PartitionInfo.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: Ydb.Topic.DescribeConsumerResult.IPartitionInfo);

                /** PartitionInfo partitionId. */
                public partitionId: (number|Long);

                /** PartitionInfo active. */
                public active: boolean;

                /** PartitionInfo childPartitionIds. */
                public childPartitionIds: (number|Long)[];

                /** PartitionInfo parentPartitionIds. */
                public parentPartitionIds: (number|Long)[];

                /** PartitionInfo partitionStats. */
                public partitionStats?: (Ydb.Topic.IPartitionStats|null);

                /** PartitionInfo partitionConsumerStats. */
                public partitionConsumerStats?: (Ydb.Topic.DescribeConsumerResult.IPartitionConsumerStats|null);

                /** PartitionInfo partitionLocation. */
                public partitionLocation?: (Ydb.Topic.IPartitionLocation|null);

                /**
                 * Creates a new PartitionInfo instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns PartitionInfo instance
                 */
                public static create(properties?: Ydb.Topic.DescribeConsumerResult.IPartitionInfo): Ydb.Topic.DescribeConsumerResult.PartitionInfo;

                /**
                 * Encodes the specified PartitionInfo message. Does not implicitly {@link Ydb.Topic.DescribeConsumerResult.PartitionInfo.verify|verify} messages.
                 * @param message PartitionInfo message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: Ydb.Topic.DescribeConsumerResult.IPartitionInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified PartitionInfo message, length delimited. Does not implicitly {@link Ydb.Topic.DescribeConsumerResult.PartitionInfo.verify|verify} messages.
                 * @param message PartitionInfo message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: Ydb.Topic.DescribeConsumerResult.IPartitionInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a PartitionInfo message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns PartitionInfo
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Topic.DescribeConsumerResult.PartitionInfo;

                /**
                 * Decodes a PartitionInfo message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns PartitionInfo
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Topic.DescribeConsumerResult.PartitionInfo;

                /**
                 * Verifies a PartitionInfo message.
                 * @param message Plain object to verify
                 * @returns `null` if valid, otherwise the reason why it is not
                 */
                public static verify(message: { [k: string]: any }): (string|null);

                /**
                 * Creates a PartitionInfo message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns PartitionInfo
                 */
                public static fromObject(object: { [k: string]: any }): Ydb.Topic.DescribeConsumerResult.PartitionInfo;

                /**
                 * Creates a plain object from a PartitionInfo message. Also converts values to other types if specified.
                 * @param message PartitionInfo
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: Ydb.Topic.DescribeConsumerResult.PartitionInfo, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this PartitionInfo to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };
            }

            /** Properties of a PartitionConsumerStats. */
            interface IPartitionConsumerStats {

                /** PartitionConsumerStats lastReadOffset */
                lastReadOffset?: (number|Long|null);

                /** PartitionConsumerStats committedOffset */
                committedOffset?: (number|Long|null);

                /** PartitionConsumerStats readSessionId */
                readSessionId?: (string|null);

                /** PartitionConsumerStats partitionReadSessionCreateTime */
                partitionReadSessionCreateTime?: (google.protobuf.ITimestamp|null);

                /** PartitionConsumerStats lastReadTime */
                lastReadTime?: (google.protobuf.ITimestamp|null);

                /** PartitionConsumerStats maxReadTimeLag */
                maxReadTimeLag?: (google.protobuf.IDuration|null);

                /** PartitionConsumerStats maxWriteTimeLag */
                maxWriteTimeLag?: (google.protobuf.IDuration|null);

                /** PartitionConsumerStats bytesRead */
                bytesRead?: (Ydb.Topic.IMultipleWindowsStat|null);

                /** PartitionConsumerStats readerName */
                readerName?: (string|null);

                /** PartitionConsumerStats connectionNodeId */
                connectionNodeId?: (number|null);
            }

            /** Represents a PartitionConsumerStats. */
            class PartitionConsumerStats implements IPartitionConsumerStats {

                /**
                 * Constructs a new PartitionConsumerStats.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: Ydb.Topic.DescribeConsumerResult.IPartitionConsumerStats);

                /** PartitionConsumerStats lastReadOffset. */
                public lastReadOffset: (number|Long);

                /** PartitionConsumerStats committedOffset. */
                public committedOffset: (number|Long);

                /** PartitionConsumerStats readSessionId. */
                public readSessionId: string;

                /** PartitionConsumerStats partitionReadSessionCreateTime. */
                public partitionReadSessionCreateTime?: (google.protobuf.ITimestamp|null);

                /** PartitionConsumerStats lastReadTime. */
                public lastReadTime?: (google.protobuf.ITimestamp|null);

                /** PartitionConsumerStats maxReadTimeLag. */
                public maxReadTimeLag?: (google.protobuf.IDuration|null);

                /** PartitionConsumerStats maxWriteTimeLag. */
                public maxWriteTimeLag?: (google.protobuf.IDuration|null);

                /** PartitionConsumerStats bytesRead. */
                public bytesRead?: (Ydb.Topic.IMultipleWindowsStat|null);

                /** PartitionConsumerStats readerName. */
                public readerName: string;

                /** PartitionConsumerStats connectionNodeId. */
                public connectionNodeId: number;

                /**
                 * Creates a new PartitionConsumerStats instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns PartitionConsumerStats instance
                 */
                public static create(properties?: Ydb.Topic.DescribeConsumerResult.IPartitionConsumerStats): Ydb.Topic.DescribeConsumerResult.PartitionConsumerStats;

                /**
                 * Encodes the specified PartitionConsumerStats message. Does not implicitly {@link Ydb.Topic.DescribeConsumerResult.PartitionConsumerStats.verify|verify} messages.
                 * @param message PartitionConsumerStats message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: Ydb.Topic.DescribeConsumerResult.IPartitionConsumerStats, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified PartitionConsumerStats message, length delimited. Does not implicitly {@link Ydb.Topic.DescribeConsumerResult.PartitionConsumerStats.verify|verify} messages.
                 * @param message PartitionConsumerStats message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: Ydb.Topic.DescribeConsumerResult.IPartitionConsumerStats, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a PartitionConsumerStats message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns PartitionConsumerStats
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Topic.DescribeConsumerResult.PartitionConsumerStats;

                /**
                 * Decodes a PartitionConsumerStats message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns PartitionConsumerStats
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Topic.DescribeConsumerResult.PartitionConsumerStats;

                /**
                 * Verifies a PartitionConsumerStats message.
                 * @param message Plain object to verify
                 * @returns `null` if valid, otherwise the reason why it is not
                 */
                public static verify(message: { [k: string]: any }): (string|null);

                /**
                 * Creates a PartitionConsumerStats message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns PartitionConsumerStats
                 */
                public static fromObject(object: { [k: string]: any }): Ydb.Topic.DescribeConsumerResult.PartitionConsumerStats;

                /**
                 * Creates a plain object from a PartitionConsumerStats message. Also converts values to other types if specified.
                 * @param message PartitionConsumerStats
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: Ydb.Topic.DescribeConsumerResult.PartitionConsumerStats, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this PartitionConsumerStats to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };
            }
        }

        /** Properties of a PartitionStats. */
        interface IPartitionStats {

            /** PartitionStats partitionOffsets */
            partitionOffsets?: (Ydb.Topic.IOffsetsRange|null);

            /** PartitionStats storeSizeBytes */
            storeSizeBytes?: (number|Long|null);

            /** PartitionStats lastWriteTime */
            lastWriteTime?: (google.protobuf.ITimestamp|null);

            /** PartitionStats maxWriteTimeLag */
            maxWriteTimeLag?: (google.protobuf.IDuration|null);

            /** PartitionStats bytesWritten */
            bytesWritten?: (Ydb.Topic.IMultipleWindowsStat|null);

            /** PartitionStats partitionNodeId */
            partitionNodeId?: (number|null);
        }

        /** Represents a PartitionStats. */
        class PartitionStats implements IPartitionStats {

            /**
             * Constructs a new PartitionStats.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Topic.IPartitionStats);

            /** PartitionStats partitionOffsets. */
            public partitionOffsets?: (Ydb.Topic.IOffsetsRange|null);

            /** PartitionStats storeSizeBytes. */
            public storeSizeBytes: (number|Long);

            /** PartitionStats lastWriteTime. */
            public lastWriteTime?: (google.protobuf.ITimestamp|null);

            /** PartitionStats maxWriteTimeLag. */
            public maxWriteTimeLag?: (google.protobuf.IDuration|null);

            /** PartitionStats bytesWritten. */
            public bytesWritten?: (Ydb.Topic.IMultipleWindowsStat|null);

            /** PartitionStats partitionNodeId. */
            public partitionNodeId: number;

            /**
             * Creates a new PartitionStats instance using the specified properties.
             * @param [properties] Properties to set
             * @returns PartitionStats instance
             */
            public static create(properties?: Ydb.Topic.IPartitionStats): Ydb.Topic.PartitionStats;

            /**
             * Encodes the specified PartitionStats message. Does not implicitly {@link Ydb.Topic.PartitionStats.verify|verify} messages.
             * @param message PartitionStats message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Topic.IPartitionStats, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified PartitionStats message, length delimited. Does not implicitly {@link Ydb.Topic.PartitionStats.verify|verify} messages.
             * @param message PartitionStats message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Topic.IPartitionStats, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a PartitionStats message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns PartitionStats
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Topic.PartitionStats;

            /**
             * Decodes a PartitionStats message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns PartitionStats
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Topic.PartitionStats;

            /**
             * Verifies a PartitionStats message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a PartitionStats message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns PartitionStats
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Topic.PartitionStats;

            /**
             * Creates a plain object from a PartitionStats message. Also converts values to other types if specified.
             * @param message PartitionStats
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Topic.PartitionStats, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this PartitionStats to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of an AlterTopicRequest. */
        interface IAlterTopicRequest {

            /** AlterTopicRequest operationParams */
            operationParams?: (Ydb.Operations.IOperationParams|null);

            /** AlterTopicRequest path */
            path?: (string|null);

            /** AlterTopicRequest alterPartitioningSettings */
            alterPartitioningSettings?: (Ydb.Topic.IAlterPartitioningSettings|null);

            /** AlterTopicRequest setRetentionPeriod */
            setRetentionPeriod?: (google.protobuf.IDuration|null);

            /** AlterTopicRequest setRetentionStorageMb */
            setRetentionStorageMb?: (number|Long|null);

            /** AlterTopicRequest setSupportedCodecs */
            setSupportedCodecs?: (Ydb.Topic.ISupportedCodecs|null);

            /** AlterTopicRequest setPartitionWriteSpeedBytesPerSecond */
            setPartitionWriteSpeedBytesPerSecond?: (number|Long|null);

            /** AlterTopicRequest setPartitionWriteBurstBytes */
            setPartitionWriteBurstBytes?: (number|Long|null);

            /** AlterTopicRequest alterAttributes */
            alterAttributes?: ({ [k: string]: string }|null);

            /** AlterTopicRequest addConsumers */
            addConsumers?: (Ydb.Topic.IConsumer[]|null);

            /** AlterTopicRequest dropConsumers */
            dropConsumers?: (string[]|null);

            /** AlterTopicRequest alterConsumers */
            alterConsumers?: (Ydb.Topic.IAlterConsumer[]|null);

            /** AlterTopicRequest setMeteringMode */
            setMeteringMode?: (Ydb.Topic.MeteringMode|null);
        }

        /** Represents an AlterTopicRequest. */
        class AlterTopicRequest implements IAlterTopicRequest {

            /**
             * Constructs a new AlterTopicRequest.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Topic.IAlterTopicRequest);

            /** AlterTopicRequest operationParams. */
            public operationParams?: (Ydb.Operations.IOperationParams|null);

            /** AlterTopicRequest path. */
            public path: string;

            /** AlterTopicRequest alterPartitioningSettings. */
            public alterPartitioningSettings?: (Ydb.Topic.IAlterPartitioningSettings|null);

            /** AlterTopicRequest setRetentionPeriod. */
            public setRetentionPeriod?: (google.protobuf.IDuration|null);

            /** AlterTopicRequest setRetentionStorageMb. */
            public setRetentionStorageMb?: (number|Long|null);

            /** AlterTopicRequest setSupportedCodecs. */
            public setSupportedCodecs?: (Ydb.Topic.ISupportedCodecs|null);

            /** AlterTopicRequest setPartitionWriteSpeedBytesPerSecond. */
            public setPartitionWriteSpeedBytesPerSecond?: (number|Long|null);

            /** AlterTopicRequest setPartitionWriteBurstBytes. */
            public setPartitionWriteBurstBytes?: (number|Long|null);

            /** AlterTopicRequest alterAttributes. */
            public alterAttributes: { [k: string]: string };

            /** AlterTopicRequest addConsumers. */
            public addConsumers: Ydb.Topic.IConsumer[];

            /** AlterTopicRequest dropConsumers. */
            public dropConsumers: string[];

            /** AlterTopicRequest alterConsumers. */
            public alterConsumers: Ydb.Topic.IAlterConsumer[];

            /** AlterTopicRequest setMeteringMode. */
            public setMeteringMode: Ydb.Topic.MeteringMode;

            /** AlterTopicRequest _setRetentionStorageMb. */
            public _setRetentionStorageMb?: "setRetentionStorageMb";

            /** AlterTopicRequest _setPartitionWriteSpeedBytesPerSecond. */
            public _setPartitionWriteSpeedBytesPerSecond?: "setPartitionWriteSpeedBytesPerSecond";

            /** AlterTopicRequest _setPartitionWriteBurstBytes. */
            public _setPartitionWriteBurstBytes?: "setPartitionWriteBurstBytes";

            /**
             * Creates a new AlterTopicRequest instance using the specified properties.
             * @param [properties] Properties to set
             * @returns AlterTopicRequest instance
             */
            public static create(properties?: Ydb.Topic.IAlterTopicRequest): Ydb.Topic.AlterTopicRequest;

            /**
             * Encodes the specified AlterTopicRequest message. Does not implicitly {@link Ydb.Topic.AlterTopicRequest.verify|verify} messages.
             * @param message AlterTopicRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Topic.IAlterTopicRequest, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified AlterTopicRequest message, length delimited. Does not implicitly {@link Ydb.Topic.AlterTopicRequest.verify|verify} messages.
             * @param message AlterTopicRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Topic.IAlterTopicRequest, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes an AlterTopicRequest message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns AlterTopicRequest
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Topic.AlterTopicRequest;

            /**
             * Decodes an AlterTopicRequest message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns AlterTopicRequest
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Topic.AlterTopicRequest;

            /**
             * Verifies an AlterTopicRequest message.
             * @param message Plain 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 AlterTopicRequest message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns AlterTopicRequest
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Topic.AlterTopicRequest;

            /**
             * Creates a plain object from an AlterTopicRequest message. Also converts values to other types if specified.
             * @param message AlterTopicRequest
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Topic.AlterTopicRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this AlterTopicRequest to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of an AlterTopicResponse. */
        interface IAlterTopicResponse {

            /** AlterTopicResponse operation */
            operation?: (Ydb.Operations.IOperation|null);
        }

        /** Represents an AlterTopicResponse. */
        class AlterTopicResponse implements IAlterTopicResponse {

            /**
             * Constructs a new AlterTopicResponse.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Topic.IAlterTopicResponse);

            /** AlterTopicResponse operation. */
            public operation?: (Ydb.Operations.IOperation|null);

            /**
             * Creates a new AlterTopicResponse instance using the specified properties.
             * @param [properties] Properties to set
             * @returns AlterTopicResponse instance
             */
            public static create(properties?: Ydb.Topic.IAlterTopicResponse): Ydb.Topic.AlterTopicResponse;

            /**
             * Encodes the specified AlterTopicResponse message. Does not implicitly {@link Ydb.Topic.AlterTopicResponse.verify|verify} messages.
             * @param message AlterTopicResponse message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Topic.IAlterTopicResponse, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified AlterTopicResponse message, length delimited. Does not implicitly {@link Ydb.Topic.AlterTopicResponse.verify|verify} messages.
             * @param message AlterTopicResponse message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Topic.IAlterTopicResponse, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes an AlterTopicResponse message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns AlterTopicResponse
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Topic.AlterTopicResponse;

            /**
             * Decodes an AlterTopicResponse message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns AlterTopicResponse
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Topic.AlterTopicResponse;

            /**
             * Verifies an AlterTopicResponse message.
             * @param message Plain 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 AlterTopicResponse message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns AlterTopicResponse
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Topic.AlterTopicResponse;

            /**
             * Creates a plain object from an AlterTopicResponse message. Also converts values to other types if specified.
             * @param message AlterTopicResponse
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Topic.AlterTopicResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this AlterTopicResponse to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of an AlterTopicResult. */
        interface IAlterTopicResult {
        }

        /** Represents an AlterTopicResult. */
        class AlterTopicResult implements IAlterTopicResult {

            /**
             * Constructs a new AlterTopicResult.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Topic.IAlterTopicResult);

            /**
             * Creates a new AlterTopicResult instance using the specified properties.
             * @param [properties] Properties to set
             * @returns AlterTopicResult instance
             */
            public static create(properties?: Ydb.Topic.IAlterTopicResult): Ydb.Topic.AlterTopicResult;

            /**
             * Encodes the specified AlterTopicResult message. Does not implicitly {@link Ydb.Topic.AlterTopicResult.verify|verify} messages.
             * @param message AlterTopicResult message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Topic.IAlterTopicResult, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified AlterTopicResult message, length delimited. Does not implicitly {@link Ydb.Topic.AlterTopicResult.verify|verify} messages.
             * @param message AlterTopicResult message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Topic.IAlterTopicResult, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes an AlterTopicResult message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns AlterTopicResult
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Topic.AlterTopicResult;

            /**
             * Decodes an AlterTopicResult message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns AlterTopicResult
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Topic.AlterTopicResult;

            /**
             * Verifies an AlterTopicResult message.
             * @param message Plain 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 AlterTopicResult message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns AlterTopicResult
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Topic.AlterTopicResult;

            /**
             * Creates a plain object from an AlterTopicResult message. Also converts values to other types if specified.
             * @param message AlterTopicResult
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Topic.AlterTopicResult, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this AlterTopicResult to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a DropTopicRequest. */
        interface IDropTopicRequest {

            /** DropTopicRequest operationParams */
            operationParams?: (Ydb.Operations.IOperationParams|null);

            /** DropTopicRequest path */
            path?: (string|null);
        }

        /** Represents a DropTopicRequest. */
        class DropTopicRequest implements IDropTopicRequest {

            /**
             * Constructs a new DropTopicRequest.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Topic.IDropTopicRequest);

            /** DropTopicRequest operationParams. */
            public operationParams?: (Ydb.Operations.IOperationParams|null);

            /** DropTopicRequest path. */
            public path: string;

            /**
             * Creates a new DropTopicRequest instance using the specified properties.
             * @param [properties] Properties to set
             * @returns DropTopicRequest instance
             */
            public static create(properties?: Ydb.Topic.IDropTopicRequest): Ydb.Topic.DropTopicRequest;

            /**
             * Encodes the specified DropTopicRequest message. Does not implicitly {@link Ydb.Topic.DropTopicRequest.verify|verify} messages.
             * @param message DropTopicRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Topic.IDropTopicRequest, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified DropTopicRequest message, length delimited. Does not implicitly {@link Ydb.Topic.DropTopicRequest.verify|verify} messages.
             * @param message DropTopicRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Topic.IDropTopicRequest, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a DropTopicRequest message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns DropTopicRequest
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Topic.DropTopicRequest;

            /**
             * Decodes a DropTopicRequest message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns DropTopicRequest
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Topic.DropTopicRequest;

            /**
             * Verifies a DropTopicRequest message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a DropTopicRequest message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns DropTopicRequest
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Topic.DropTopicRequest;

            /**
             * Creates a plain object from a DropTopicRequest message. Also converts values to other types if specified.
             * @param message DropTopicRequest
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Topic.DropTopicRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this DropTopicRequest to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a DropTopicResponse. */
        interface IDropTopicResponse {

            /** DropTopicResponse operation */
            operation?: (Ydb.Operations.IOperation|null);
        }

        /** Represents a DropTopicResponse. */
        class DropTopicResponse implements IDropTopicResponse {

            /**
             * Constructs a new DropTopicResponse.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Topic.IDropTopicResponse);

            /** DropTopicResponse operation. */
            public operation?: (Ydb.Operations.IOperation|null);

            /**
             * Creates a new DropTopicResponse instance using the specified properties.
             * @param [properties] Properties to set
             * @returns DropTopicResponse instance
             */
            public static create(properties?: Ydb.Topic.IDropTopicResponse): Ydb.Topic.DropTopicResponse;

            /**
             * Encodes the specified DropTopicResponse message. Does not implicitly {@link Ydb.Topic.DropTopicResponse.verify|verify} messages.
             * @param message DropTopicResponse message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Topic.IDropTopicResponse, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified DropTopicResponse message, length delimited. Does not implicitly {@link Ydb.Topic.DropTopicResponse.verify|verify} messages.
             * @param message DropTopicResponse message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Topic.IDropTopicResponse, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a DropTopicResponse message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns DropTopicResponse
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Topic.DropTopicResponse;

            /**
             * Decodes a DropTopicResponse message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns DropTopicResponse
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Topic.DropTopicResponse;

            /**
             * Verifies a DropTopicResponse message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a DropTopicResponse message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns DropTopicResponse
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Topic.DropTopicResponse;

            /**
             * Creates a plain object from a DropTopicResponse message. Also converts values to other types if specified.
             * @param message DropTopicResponse
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Topic.DropTopicResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this DropTopicResponse to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a DropTopicResult. */
        interface IDropTopicResult {
        }

        /** Represents a DropTopicResult. */
        class DropTopicResult implements IDropTopicResult {

            /**
             * Constructs a new DropTopicResult.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Topic.IDropTopicResult);

            /**
             * Creates a new DropTopicResult instance using the specified properties.
             * @param [properties] Properties to set
             * @returns DropTopicResult instance
             */
            public static create(properties?: Ydb.Topic.IDropTopicResult): Ydb.Topic.DropTopicResult;

            /**
             * Encodes the specified DropTopicResult message. Does not implicitly {@link Ydb.Topic.DropTopicResult.verify|verify} messages.
             * @param message DropTopicResult message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Topic.IDropTopicResult, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified DropTopicResult message, length delimited. Does not implicitly {@link Ydb.Topic.DropTopicResult.verify|verify} messages.
             * @param message DropTopicResult message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Topic.IDropTopicResult, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a DropTopicResult message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns DropTopicResult
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Topic.DropTopicResult;

            /**
             * Decodes a DropTopicResult message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns DropTopicResult
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Topic.DropTopicResult;

            /**
             * Verifies a DropTopicResult message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a DropTopicResult message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns DropTopicResult
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Topic.DropTopicResult;

            /**
             * Creates a plain object from a DropTopicResult message. Also converts values to other types if specified.
             * @param message DropTopicResult
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Topic.DropTopicResult, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this DropTopicResult to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Namespace V1. */
        namespace V1 {

            /** Represents a TopicService */
            class TopicService extends $protobuf.rpc.Service {

                /**
                 * Constructs a new TopicService 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 TopicService 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): TopicService;

                /**
                 * Calls StreamWrite.
                 * @param request FromClient message or plain object
                 * @param callback Node-style callback called with the error, if any, and FromServer
                 */
                public streamWrite(request: Ydb.Topic.StreamWriteMessage.IFromClient, callback: Ydb.Topic.V1.TopicService.StreamWriteCallback): void;

                /**
                 * Calls StreamWrite.
                 * @param request FromClient message or plain object
                 * @returns Promise
                 */
                public streamWrite(request: Ydb.Topic.StreamWriteMessage.IFromClient): Promise<Ydb.Topic.StreamWriteMessage.FromServer>;

                /**
                 * Calls StreamRead.
                 * @param request FromClient message or plain object
                 * @param callback Node-style callback called with the error, if any, and FromServer
                 */
                public streamRead(request: Ydb.Topic.StreamReadMessage.IFromClient, callback: Ydb.Topic.V1.TopicService.StreamReadCallback): void;

                /**
                 * Calls StreamRead.
                 * @param request FromClient message or plain object
                 * @returns Promise
                 */
                public streamRead(request: Ydb.Topic.StreamReadMessage.IFromClient): Promise<Ydb.Topic.StreamReadMessage.FromServer>;

                /**
                 * Calls CommitOffset.
                 * @param request CommitOffsetRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and CommitOffsetResponse
                 */
                public commitOffset(request: Ydb.Topic.ICommitOffsetRequest, callback: Ydb.Topic.V1.TopicService.CommitOffsetCallback): void;

                /**
                 * Calls CommitOffset.
                 * @param request CommitOffsetRequest message or plain object
                 * @returns Promise
                 */
                public commitOffset(request: Ydb.Topic.ICommitOffsetRequest): Promise<Ydb.Topic.CommitOffsetResponse>;

                /**
                 * Calls UpdateOffsetsInTransaction.
                 * @param request UpdateOffsetsInTransactionRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and UpdateOffsetsInTransactionResponse
                 */
                public updateOffsetsInTransaction(request: Ydb.Topic.IUpdateOffsetsInTransactionRequest, callback: Ydb.Topic.V1.TopicService.UpdateOffsetsInTransactionCallback): void;

                /**
                 * Calls UpdateOffsetsInTransaction.
                 * @param request UpdateOffsetsInTransactionRequest message or plain object
                 * @returns Promise
                 */
                public updateOffsetsInTransaction(request: Ydb.Topic.IUpdateOffsetsInTransactionRequest): Promise<Ydb.Topic.UpdateOffsetsInTransactionResponse>;

                /**
                 * Calls CreateTopic.
                 * @param request CreateTopicRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and CreateTopicResponse
                 */
                public createTopic(request: Ydb.Topic.ICreateTopicRequest, callback: Ydb.Topic.V1.TopicService.CreateTopicCallback): void;

                /**
                 * Calls CreateTopic.
                 * @param request CreateTopicRequest message or plain object
                 * @returns Promise
                 */
                public createTopic(request: Ydb.Topic.ICreateTopicRequest): Promise<Ydb.Topic.CreateTopicResponse>;

                /**
                 * Calls DescribeTopic.
                 * @param request DescribeTopicRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and DescribeTopicResponse
                 */
                public describeTopic(request: Ydb.Topic.IDescribeTopicRequest, callback: Ydb.Topic.V1.TopicService.DescribeTopicCallback): void;

                /**
                 * Calls DescribeTopic.
                 * @param request DescribeTopicRequest message or plain object
                 * @returns Promise
                 */
                public describeTopic(request: Ydb.Topic.IDescribeTopicRequest): Promise<Ydb.Topic.DescribeTopicResponse>;

                /**
                 * Calls DescribeConsumer.
                 * @param request DescribeConsumerRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and DescribeConsumerResponse
                 */
                public describeConsumer(request: Ydb.Topic.IDescribeConsumerRequest, callback: Ydb.Topic.V1.TopicService.DescribeConsumerCallback): void;

                /**
                 * Calls DescribeConsumer.
                 * @param request DescribeConsumerRequest message or plain object
                 * @returns Promise
                 */
                public describeConsumer(request: Ydb.Topic.IDescribeConsumerRequest): Promise<Ydb.Topic.DescribeConsumerResponse>;

                /**
                 * Calls AlterTopic.
                 * @param request AlterTopicRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and AlterTopicResponse
                 */
                public alterTopic(request: Ydb.Topic.IAlterTopicRequest, callback: Ydb.Topic.V1.TopicService.AlterTopicCallback): void;

                /**
                 * Calls AlterTopic.
                 * @param request AlterTopicRequest message or plain object
                 * @returns Promise
                 */
                public alterTopic(request: Ydb.Topic.IAlterTopicRequest): Promise<Ydb.Topic.AlterTopicResponse>;

                /**
                 * Calls DropTopic.
                 * @param request DropTopicRequest message or plain object
                 * @param callback Node-style callback called with the error, if any, and DropTopicResponse
                 */
                public dropTopic(request: Ydb.Topic.IDropTopicRequest, callback: Ydb.Topic.V1.TopicService.DropTopicCallback): void;

                /**
                 * Calls DropTopic.
                 * @param request DropTopicRequest message or plain object
                 * @returns Promise
                 */
                public dropTopic(request: Ydb.Topic.IDropTopicRequest): Promise<Ydb.Topic.DropTopicResponse>;
            }

            namespace TopicService {

                /**
                 * Callback as used by {@link Ydb.Topic.V1.TopicService#streamWrite}.
                 * @param error Error, if any
                 * @param [response] FromServer
                 */
                type StreamWriteCallback = (error: (Error|null), response?: Ydb.Topic.StreamWriteMessage.FromServer) => void;

                /**
                 * Callback as used by {@link Ydb.Topic.V1.TopicService#streamRead}.
                 * @param error Error, if any
                 * @param [response] FromServer
                 */
                type StreamReadCallback = (error: (Error|null), response?: Ydb.Topic.StreamReadMessage.FromServer) => void;

                /**
                 * Callback as used by {@link Ydb.Topic.V1.TopicService#commitOffset}.
                 * @param error Error, if any
                 * @param [response] CommitOffsetResponse
                 */
                type CommitOffsetCallback = (error: (Error|null), response?: Ydb.Topic.CommitOffsetResponse) => void;

                /**
                 * Callback as used by {@link Ydb.Topic.V1.TopicService#updateOffsetsInTransaction}.
                 * @param error Error, if any
                 * @param [response] UpdateOffsetsInTransactionResponse
                 */
                type UpdateOffsetsInTransactionCallback = (error: (Error|null), response?: Ydb.Topic.UpdateOffsetsInTransactionResponse) => void;

                /**
                 * Callback as used by {@link Ydb.Topic.V1.TopicService#createTopic}.
                 * @param error Error, if any
                 * @param [response] CreateTopicResponse
                 */
                type CreateTopicCallback = (error: (Error|null), response?: Ydb.Topic.CreateTopicResponse) => void;

                /**
                 * Callback as used by {@link Ydb.Topic.V1.TopicService#describeTopic}.
                 * @param error Error, if any
                 * @param [response] DescribeTopicResponse
                 */
                type DescribeTopicCallback = (error: (Error|null), response?: Ydb.Topic.DescribeTopicResponse) => void;

                /**
                 * Callback as used by {@link Ydb.Topic.V1.TopicService#describeConsumer}.
                 * @param error Error, if any
                 * @param [response] DescribeConsumerResponse
                 */
                type DescribeConsumerCallback = (error: (Error|null), response?: Ydb.Topic.DescribeConsumerResponse) => void;

                /**
                 * Callback as used by {@link Ydb.Topic.V1.TopicService#alterTopic}.
                 * @param error Error, if any
                 * @param [response] AlterTopicResponse
                 */
                type AlterTopicCallback = (error: (Error|null), response?: Ydb.Topic.AlterTopicResponse) => void;

                /**
                 * Callback as used by {@link Ydb.Topic.V1.TopicService#dropTopic}.
                 * @param error Error, if any
                 * @param [response] DropTopicResponse
                 */
                type DropTopicCallback = (error: (Error|null), response?: Ydb.Topic.DropTopicResponse) => void;
            }
        }
    }

    /** Namespace Formats. */
    namespace Formats {

        /** Properties of an ArrowBatchSettings. */
        interface IArrowBatchSettings {

            /** ArrowBatchSettings schema */
            schema?: (Uint8Array|null);
        }

        /** Represents an ArrowBatchSettings. */
        class ArrowBatchSettings implements IArrowBatchSettings {

            /**
             * Constructs a new ArrowBatchSettings.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Formats.IArrowBatchSettings);

            /** ArrowBatchSettings schema. */
            public schema: Uint8Array;

            /**
             * Creates a new ArrowBatchSettings instance using the specified properties.
             * @param [properties] Properties to set
             * @returns ArrowBatchSettings instance
             */
            public static create(properties?: Ydb.Formats.IArrowBatchSettings): Ydb.Formats.ArrowBatchSettings;

            /**
             * Encodes the specified ArrowBatchSettings message. Does not implicitly {@link Ydb.Formats.ArrowBatchSettings.verify|verify} messages.
             * @param message ArrowBatchSettings message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Formats.IArrowBatchSettings, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified ArrowBatchSettings message, length delimited. Does not implicitly {@link Ydb.Formats.ArrowBatchSettings.verify|verify} messages.
             * @param message ArrowBatchSettings message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Formats.IArrowBatchSettings, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes an ArrowBatchSettings message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns ArrowBatchSettings
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Formats.ArrowBatchSettings;

            /**
             * Decodes an ArrowBatchSettings message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns ArrowBatchSettings
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Formats.ArrowBatchSettings;

            /**
             * Verifies an ArrowBatchSettings message.
             * @param message Plain 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 ArrowBatchSettings message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns ArrowBatchSettings
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Formats.ArrowBatchSettings;

            /**
             * Creates a plain object from an ArrowBatchSettings message. Also converts values to other types if specified.
             * @param message ArrowBatchSettings
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Formats.ArrowBatchSettings, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this ArrowBatchSettings to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }

        /** Properties of a CsvSettings. */
        interface ICsvSettings {

            /** CsvSettings skipRows */
            skipRows?: (number|null);

            /** CsvSettings delimiter */
            delimiter?: (Uint8Array|null);

            /** CsvSettings nullValue */
            nullValue?: (Uint8Array|null);

            /** CsvSettings header */
            header?: (boolean|null);
        }

        /** Represents a CsvSettings. */
        class CsvSettings implements ICsvSettings {

            /**
             * Constructs a new CsvSettings.
             * @param [properties] Properties to set
             */
            constructor(properties?: Ydb.Formats.ICsvSettings);

            /** CsvSettings skipRows. */
            public skipRows: number;

            /** CsvSettings delimiter. */
            public delimiter: Uint8Array;

            /** CsvSettings nullValue. */
            public nullValue: Uint8Array;

            /** CsvSettings header. */
            public header: boolean;

            /**
             * Creates a new CsvSettings instance using the specified properties.
             * @param [properties] Properties to set
             * @returns CsvSettings instance
             */
            public static create(properties?: Ydb.Formats.ICsvSettings): Ydb.Formats.CsvSettings;

            /**
             * Encodes the specified CsvSettings message. Does not implicitly {@link Ydb.Formats.CsvSettings.verify|verify} messages.
             * @param message CsvSettings message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: Ydb.Formats.ICsvSettings, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified CsvSettings message, length delimited. Does not implicitly {@link Ydb.Formats.CsvSettings.verify|verify} messages.
             * @param message CsvSettings message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: Ydb.Formats.ICsvSettings, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a CsvSettings message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns CsvSettings
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Ydb.Formats.CsvSettings;

            /**
             * Decodes a CsvSettings message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns CsvSettings
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Ydb.Formats.CsvSettings;

            /**
             * Verifies a CsvSettings message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a CsvSettings message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns CsvSettings
             */
            public static fromObject(object: { [k: string]: any }): Ydb.Formats.CsvSettings;

            /**
             * Creates a plain object from a CsvSettings message. Also converts values to other types if specified.
             * @param message CsvSettings
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: Ydb.Formats.CsvSettings, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this CsvSettings to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }
    }
}

/** Namespace google. */
export namespace google {

    /** Namespace protobuf. */
    namespace protobuf {

        /** Properties of an Any. */
        interface IAny {

            /** Any type_url */
            type_url?: (string|null);

            /** Any value */
            value?: (Uint8Array|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;

            /**
             * 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 };
        }

        /** Properties of a Duration. */
        interface IDuration {

            /** Duration seconds */
            seconds?: (number|Long|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);

            /** 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 };
        }

        /** 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 };
        }

        /** 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);
        }

        /** 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;

            /**
             * 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 };
        }

        /** 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 };
        }

        namespace DescriptorProto {

            /** Properties of an ExtensionRange. */
            interface IExtensionRange {

                /** ExtensionRange start */
                start?: (number|null);

                /** ExtensionRange end */
                end?: (number|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;

                /**
                 * 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 };
            }

            /** 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 };
            }
        }

        /** Properties of a FieldDescriptorProto. */
        interface IFieldDescriptorProto {

            /** FieldDescriptorProto name */
            name?: (string|null);

            /** FieldDescriptorProto number */
            number?: (number|null);

            /** FieldDescriptorProto label */
            label?: (google.protobuf.FieldDescriptorProto.Label|null);

            /** FieldDescriptorProto type */
            type?: (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);
        }

        /** 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;

            /** FieldDescriptorProto type. */
            public type: 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);

            /**
             * 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 };
        }

        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_REQUIRED = 2,
                LABEL_REPEATED = 3
            }
        }

        /** 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 };
        }

        /** 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);
        }

        /** 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);

            /**
             * 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 };
        }

        /** 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 };
        }

        /** 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 };
        }

        /** 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 };
        }

        /** 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|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 uninterpretedOption */
            uninterpretedOption?: (google.protobuf.IUninterpretedOption[]|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;

            /** 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 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 };
        }

        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 uninterpretedOption */
            uninterpretedOption?: (google.protobuf.IUninterpretedOption[]|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 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 };
        }

        /** Properties of a FieldOptions. */
        interface IFieldOptions {

            /** FieldOptions ctype */
            ctype?: (google.protobuf.FieldOptions.CType|null);

            /** FieldOptions packed */
            packed?: (boolean|null);

            /** FieldOptions jstype */
            jstype?: (google.protobuf.FieldOptions.JSType|null);

            /** FieldOptions lazy */
            lazy?: (boolean|null);

            /** FieldOptions deprecated */
            deprecated?: (boolean|null);

            /** FieldOptions weak */
            weak?: (boolean|null);

            /** FieldOptions uninterpretedOption */
            uninterpretedOption?: (google.protobuf.IUninterpretedOption[]|null);

            /** FieldOptions .Ydb.required */
            ".Ydb.required"?: (boolean|null);

            /** FieldOptions .Ydb.size */
            ".Ydb.size"?: (Ydb.ILimit|null);

            /** FieldOptions .Ydb.length */
            ".Ydb.length"?: (Ydb.ILimit|null);

            /** FieldOptions .Ydb.mapKey */
            ".Ydb.mapKey"?: (Ydb.IMapKey|null);

            /** FieldOptions .Ydb.value */
            ".Ydb.value"?: (string|null);

            /** FieldOptions .Ydb.sensitive */
            ".Ydb.sensitive"?: (boolean|null);

            /** FieldOptions .yandex.cloud.required */
            ".yandex.cloud.required"?: (boolean|null);

            /** FieldOptions .yandex.cloud.pattern */
            ".yandex.cloud.pattern"?: (string|null);

            /** FieldOptions .yandex.cloud.value */
            ".yandex.cloud.value"?: (string|null);

            /** FieldOptions .yandex.cloud.size */
            ".yandex.cloud.size"?: (string|null);

            /** FieldOptions .yandex.cloud.length */
            ".yandex.cloud.length"?: (string|null);

            /** FieldOptions .yandex.cloud.unique */
            ".yandex.cloud.unique"?: (boolean|null);

            /** FieldOptions .yandex.cloud.mapKey */
            ".yandex.cloud.mapKey"?: (yandex.cloud.IMapKeySpec|null);

            /** FieldOptions .yandex.cloud.bytes */
            ".yandex.cloud.bytes"?: (string|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;

            /** FieldOptions packed. */
            public packed: boolean;

            /** FieldOptions jstype. */
            public jstype: google.protobuf.FieldOptions.JSType;

            /** FieldOptions lazy. */
            public lazy: boolean;

            /** FieldOptions deprecated. */
            public deprecated: boolean;

            /** FieldOptions weak. */
            public weak: boolean;

            /** 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 };
        }

        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
            }
        }

        /** Properties of an OneofOptions. */
        interface IOneofOptions {

            /** OneofOptions uninterpretedOption */
            uninterpretedOption?: (google.protobuf.IUninterpretedOption[]|null);

            /** OneofOptions .yandex.cloud.exactlyOne */
            ".yandex.cloud.exactlyOne"?: (boolean|null);
        }

        /** Represents an OneofOptions. */
        class OneofOptions implements IOneofOptions {

            /**
             * Constructs a new OneofOptions.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.IOneofOptions);

            /** 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 };
        }

        /** Properties of an EnumOptions. */
        interface IEnumOptions {

            /** EnumOptions allowAlias */
            allowAlias?: (boolean|null);

            /** EnumOptions deprecated */
            deprecated?: (boolean|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 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 };
        }

        /** Properties of an EnumValueOptions. */
        interface IEnumValueOptions {

            /** EnumValueOptions deprecated */
            deprecated?: (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 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 };
        }

        /** Properties of a ServiceOptions. */
        interface IServiceOptions {

            /** ServiceOptions deprecated */
            deprecated?: (boolean|null);

            /** ServiceOptions uninterpretedOption */
            uninterpretedOption?: (google.protobuf.IUninterpretedOption[]|null);
        }

        /** Represents a ServiceOptions. */
        class ServiceOptions implements IServiceOptions {

            /**
             * Constructs a new ServiceOptions.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.IServiceOptions);

            /** 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 };
        }

        /** Properties of a MethodOptions. */
        interface IMethodOptions {

            /** MethodOptions deprecated */
            deprecated?: (boolean|null);

            /** MethodOptions uninterpretedOption */
            uninterpretedOption?: (google.protobuf.IUninterpretedOption[]|null);

            /** MethodOptions .google.api.http */
            ".google.api.http"?: (google.api.IHttpRule|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 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 };
        }

        /** Properties of an UninterpretedOption. */
        interface IUninterpretedOption {

            /** UninterpretedOption name */
            name?: (google.protobuf.UninterpretedOption.INamePart[]|null);

            /** UninterpretedOption identifierValue */
            identifierValue?: (string|null);

            /** UninterpretedOption positiveIntValue */
            positiveIntValue?: (number|Long|null);

            /** UninterpretedOption negativeIntValue */
            negativeIntValue?: (number|Long|null);

            /** UninterpretedOption doubleValue */
            doubleValue?: (number|null);

            /** UninterpretedOption stringValue */
            stringValue?: (Uint8Array|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);

            /** UninterpretedOption negativeIntValue. */
            public negativeIntValue: (number|Long);

            /** UninterpretedOption doubleValue. */
            public doubleValue: number;

            /** UninterpretedOption stringValue. */
            public stringValue: Uint8Array;

            /** 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 };
        }

        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 };
            }
        }

        /** 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 };
        }

        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 };
            }
        }

        /** 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 };
        }

        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);
            }

            /** 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;

                /**
                 * 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 };
            }
        }

        /** Properties of a Timestamp. */
        interface ITimestamp {

            /** Timestamp seconds */
            seconds?: (number|Long|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);

            /** 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 };
        }

        /** 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 };
        }

        /** Properties of a Value. */
        interface IValue {

            /** Value nullValue */
            nullValue?: (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|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 };
        }

        /** 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 };
        }

        /** 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 };
        }
    }

    /** Namespace api. */
    namespace api {

        /** Properties of a Http. */
        interface IHttp {

            /** Http rules */
            rules?: (google.api.IHttpRule[]|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[];

            /**
             * 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 };
        }

        /** Properties of a HttpRule. */
        interface IHttpRule {

            /** 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 selector */
            selector?: (string|null);

            /** HttpRule body */
            body?: (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 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 selector. */
            public selector: string;

            /** HttpRule body. */
            public body: 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 };
        }

        /** 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 };
        }
    }
}

/** Namespace yandex. */
export namespace yandex {

    /** Namespace cloud. */
    namespace cloud {

        /** Namespace iam. */
        namespace iam {

            /** Namespace v1. */
            namespace v1 {

                /** Represents an IamTokenService */
                class IamTokenService extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new IamTokenService 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 IamTokenService 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): IamTokenService;

                    /**
                     * Calls Create.
                     * @param request CreateIamTokenRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and CreateIamTokenResponse
                     */
                    public create(request: yandex.cloud.iam.v1.ICreateIamTokenRequest, callback: yandex.cloud.iam.v1.IamTokenService.CreateCallback): void;

                    /**
                     * Calls Create.
                     * @param request CreateIamTokenRequest message or plain object
                     * @returns Promise
                     */
                    public create(request: yandex.cloud.iam.v1.ICreateIamTokenRequest): Promise<yandex.cloud.iam.v1.CreateIamTokenResponse>;

                    /**
                     * Calls CreateForServiceAccount.
                     * @param request CreateIamTokenForServiceAccountRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and CreateIamTokenResponse
                     */
                    public createForServiceAccount(request: yandex.cloud.iam.v1.ICreateIamTokenForServiceAccountRequest, callback: yandex.cloud.iam.v1.IamTokenService.CreateForServiceAccountCallback): void;

                    /**
                     * Calls CreateForServiceAccount.
                     * @param request CreateIamTokenForServiceAccountRequest message or plain object
                     * @returns Promise
                     */
                    public createForServiceAccount(request: yandex.cloud.iam.v1.ICreateIamTokenForServiceAccountRequest): Promise<yandex.cloud.iam.v1.CreateIamTokenResponse>;

                    /**
                     * Calls Revoke.
                     * @param request RevokeIamTokenRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and RevokeIamTokenResponse
                     */
                    public revoke(request: yandex.cloud.iam.v1.IRevokeIamTokenRequest, callback: yandex.cloud.iam.v1.IamTokenService.RevokeCallback): void;

                    /**
                     * Calls Revoke.
                     * @param request RevokeIamTokenRequest message or plain object
                     * @returns Promise
                     */
                    public revoke(request: yandex.cloud.iam.v1.IRevokeIamTokenRequest): Promise<yandex.cloud.iam.v1.RevokeIamTokenResponse>;
                }

                namespace IamTokenService {

                    /**
                     * Callback as used by {@link yandex.cloud.iam.v1.IamTokenService#create}.
                     * @param error Error, if any
                     * @param [response] CreateIamTokenResponse
                     */
                    type CreateCallback = (error: (Error|null), response?: yandex.cloud.iam.v1.CreateIamTokenResponse) => void;

                    /**
                     * Callback as used by {@link yandex.cloud.iam.v1.IamTokenService#createForServiceAccount}.
                     * @param error Error, if any
                     * @param [response] CreateIamTokenResponse
                     */
                    type CreateForServiceAccountCallback = (error: (Error|null), response?: yandex.cloud.iam.v1.CreateIamTokenResponse) => void;

                    /**
                     * Callback as used by {@link yandex.cloud.iam.v1.IamTokenService#revoke}.
                     * @param error Error, if any
                     * @param [response] RevokeIamTokenResponse
                     */
                    type RevokeCallback = (error: (Error|null), response?: yandex.cloud.iam.v1.RevokeIamTokenResponse) => void;
                }

                /** Properties of a CreateIamTokenRequest. */
                interface ICreateIamTokenRequest {

                    /** CreateIamTokenRequest yandexPassportOauthToken */
                    yandexPassportOauthToken?: (string|null);

                    /** CreateIamTokenRequest jwt */
                    jwt?: (string|null);
                }

                /** Represents a CreateIamTokenRequest. */
                class CreateIamTokenRequest implements ICreateIamTokenRequest {

                    /**
                     * Constructs a new CreateIamTokenRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: yandex.cloud.iam.v1.ICreateIamTokenRequest);

                    /** CreateIamTokenRequest yandexPassportOauthToken. */
                    public yandexPassportOauthToken?: (string|null);

                    /** CreateIamTokenRequest jwt. */
                    public jwt?: (string|null);

                    /** CreateIamTokenRequest identity. */
                    public identity?: ("yandexPassportOauthToken"|"jwt");

                    /**
                     * Creates a new CreateIamTokenRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CreateIamTokenRequest instance
                     */
                    public static create(properties?: yandex.cloud.iam.v1.ICreateIamTokenRequest): yandex.cloud.iam.v1.CreateIamTokenRequest;

                    /**
                     * Encodes the specified CreateIamTokenRequest message. Does not implicitly {@link yandex.cloud.iam.v1.CreateIamTokenRequest.verify|verify} messages.
                     * @param message CreateIamTokenRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: yandex.cloud.iam.v1.ICreateIamTokenRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CreateIamTokenRequest message, length delimited. Does not implicitly {@link yandex.cloud.iam.v1.CreateIamTokenRequest.verify|verify} messages.
                     * @param message CreateIamTokenRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: yandex.cloud.iam.v1.ICreateIamTokenRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CreateIamTokenRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CreateIamTokenRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): yandex.cloud.iam.v1.CreateIamTokenRequest;

                    /**
                     * Decodes a CreateIamTokenRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CreateIamTokenRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): yandex.cloud.iam.v1.CreateIamTokenRequest;

                    /**
                     * Verifies a CreateIamTokenRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a CreateIamTokenRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CreateIamTokenRequest
                     */
                    public static fromObject(object: { [k: string]: any }): yandex.cloud.iam.v1.CreateIamTokenRequest;

                    /**
                     * Creates a plain object from a CreateIamTokenRequest message. Also converts values to other types if specified.
                     * @param message CreateIamTokenRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: yandex.cloud.iam.v1.CreateIamTokenRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CreateIamTokenRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };
                }

                /** Properties of a CreateIamTokenResponse. */
                interface ICreateIamTokenResponse {

                    /** CreateIamTokenResponse iamToken */
                    iamToken?: (string|null);

                    /** CreateIamTokenResponse expiresAt */
                    expiresAt?: (google.protobuf.ITimestamp|null);
                }

                /** Represents a CreateIamTokenResponse. */
                class CreateIamTokenResponse implements ICreateIamTokenResponse {

                    /**
                     * Constructs a new CreateIamTokenResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: yandex.cloud.iam.v1.ICreateIamTokenResponse);

                    /** CreateIamTokenResponse iamToken. */
                    public iamToken: string;

                    /** CreateIamTokenResponse expiresAt. */
                    public expiresAt?: (google.protobuf.ITimestamp|null);

                    /**
                     * Creates a new CreateIamTokenResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CreateIamTokenResponse instance
                     */
                    public static create(properties?: yandex.cloud.iam.v1.ICreateIamTokenResponse): yandex.cloud.iam.v1.CreateIamTokenResponse;

                    /**
                     * Encodes the specified CreateIamTokenResponse message. Does not implicitly {@link yandex.cloud.iam.v1.CreateIamTokenResponse.verify|verify} messages.
                     * @param message CreateIamTokenResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: yandex.cloud.iam.v1.ICreateIamTokenResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CreateIamTokenResponse message, length delimited. Does not implicitly {@link yandex.cloud.iam.v1.CreateIamTokenResponse.verify|verify} messages.
                     * @param message CreateIamTokenResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: yandex.cloud.iam.v1.ICreateIamTokenResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CreateIamTokenResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CreateIamTokenResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): yandex.cloud.iam.v1.CreateIamTokenResponse;

                    /**
                     * Decodes a CreateIamTokenResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CreateIamTokenResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): yandex.cloud.iam.v1.CreateIamTokenResponse;

                    /**
                     * Verifies a CreateIamTokenResponse message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a CreateIamTokenResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CreateIamTokenResponse
                     */
                    public static fromObject(object: { [k: string]: any }): yandex.cloud.iam.v1.CreateIamTokenResponse;

                    /**
                     * Creates a plain object from a CreateIamTokenResponse message. Also converts values to other types if specified.
                     * @param message CreateIamTokenResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: yandex.cloud.iam.v1.CreateIamTokenResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CreateIamTokenResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };
                }

                /** Properties of a CreateIamTokenForServiceAccountRequest. */
                interface ICreateIamTokenForServiceAccountRequest {

                    /** CreateIamTokenForServiceAccountRequest serviceAccountId */
                    serviceAccountId?: (string|null);
                }

                /** Represents a CreateIamTokenForServiceAccountRequest. */
                class CreateIamTokenForServiceAccountRequest implements ICreateIamTokenForServiceAccountRequest {

                    /**
                     * Constructs a new CreateIamTokenForServiceAccountRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: yandex.cloud.iam.v1.ICreateIamTokenForServiceAccountRequest);

                    /** CreateIamTokenForServiceAccountRequest serviceAccountId. */
                    public serviceAccountId: string;

                    /**
                     * Creates a new CreateIamTokenForServiceAccountRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CreateIamTokenForServiceAccountRequest instance
                     */
                    public static create(properties?: yandex.cloud.iam.v1.ICreateIamTokenForServiceAccountRequest): yandex.cloud.iam.v1.CreateIamTokenForServiceAccountRequest;

                    /**
                     * Encodes the specified CreateIamTokenForServiceAccountRequest message. Does not implicitly {@link yandex.cloud.iam.v1.CreateIamTokenForServiceAccountRequest.verify|verify} messages.
                     * @param message CreateIamTokenForServiceAccountRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: yandex.cloud.iam.v1.ICreateIamTokenForServiceAccountRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CreateIamTokenForServiceAccountRequest message, length delimited. Does not implicitly {@link yandex.cloud.iam.v1.CreateIamTokenForServiceAccountRequest.verify|verify} messages.
                     * @param message CreateIamTokenForServiceAccountRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: yandex.cloud.iam.v1.ICreateIamTokenForServiceAccountRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CreateIamTokenForServiceAccountRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CreateIamTokenForServiceAccountRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): yandex.cloud.iam.v1.CreateIamTokenForServiceAccountRequest;

                    /**
                     * Decodes a CreateIamTokenForServiceAccountRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CreateIamTokenForServiceAccountRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): yandex.cloud.iam.v1.CreateIamTokenForServiceAccountRequest;

                    /**
                     * Verifies a CreateIamTokenForServiceAccountRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a CreateIamTokenForServiceAccountRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CreateIamTokenForServiceAccountRequest
                     */
                    public static fromObject(object: { [k: string]: any }): yandex.cloud.iam.v1.CreateIamTokenForServiceAccountRequest;

                    /**
                     * Creates a plain object from a CreateIamTokenForServiceAccountRequest message. Also converts values to other types if specified.
                     * @param message CreateIamTokenForServiceAccountRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: yandex.cloud.iam.v1.CreateIamTokenForServiceAccountRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CreateIamTokenForServiceAccountRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };
                }

                /** Properties of a RevokeIamTokenRequest. */
                interface IRevokeIamTokenRequest {

                    /** RevokeIamTokenRequest iamToken */
                    iamToken?: (string|null);
                }

                /** Represents a RevokeIamTokenRequest. */
                class RevokeIamTokenRequest implements IRevokeIamTokenRequest {

                    /**
                     * Constructs a new RevokeIamTokenRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: yandex.cloud.iam.v1.IRevokeIamTokenRequest);

                    /** RevokeIamTokenRequest iamToken. */
                    public iamToken: string;

                    /**
                     * Creates a new RevokeIamTokenRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RevokeIamTokenRequest instance
                     */
                    public static create(properties?: yandex.cloud.iam.v1.IRevokeIamTokenRequest): yandex.cloud.iam.v1.RevokeIamTokenRequest;

                    /**
                     * Encodes the specified RevokeIamTokenRequest message. Does not implicitly {@link yandex.cloud.iam.v1.RevokeIamTokenRequest.verify|verify} messages.
                     * @param message RevokeIamTokenRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: yandex.cloud.iam.v1.IRevokeIamTokenRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RevokeIamTokenRequest message, length delimited. Does not implicitly {@link yandex.cloud.iam.v1.RevokeIamTokenRequest.verify|verify} messages.
                     * @param message RevokeIamTokenRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: yandex.cloud.iam.v1.IRevokeIamTokenRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RevokeIamTokenRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RevokeIamTokenRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): yandex.cloud.iam.v1.RevokeIamTokenRequest;

                    /**
                     * Decodes a RevokeIamTokenRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RevokeIamTokenRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): yandex.cloud.iam.v1.RevokeIamTokenRequest;

                    /**
                     * Verifies a RevokeIamTokenRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RevokeIamTokenRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RevokeIamTokenRequest
                     */
                    public static fromObject(object: { [k: string]: any }): yandex.cloud.iam.v1.RevokeIamTokenRequest;

                    /**
                     * Creates a plain object from a RevokeIamTokenRequest message. Also converts values to other types if specified.
                     * @param message RevokeIamTokenRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: yandex.cloud.iam.v1.RevokeIamTokenRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RevokeIamTokenRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };
                }

                /** Properties of a RevokeIamTokenResponse. */
                interface IRevokeIamTokenResponse {

                    /** RevokeIamTokenResponse subjectId */
                    subjectId?: (string|null);
                }

                /** Represents a RevokeIamTokenResponse. */
                class RevokeIamTokenResponse implements IRevokeIamTokenResponse {

                    /**
                     * Constructs a new RevokeIamTokenResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: yandex.cloud.iam.v1.IRevokeIamTokenResponse);

                    /** RevokeIamTokenResponse subjectId. */
                    public subjectId: string;

                    /**
                     * Creates a new RevokeIamTokenResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RevokeIamTokenResponse instance
                     */
                    public static create(properties?: yandex.cloud.iam.v1.IRevokeIamTokenResponse): yandex.cloud.iam.v1.RevokeIamTokenResponse;

                    /**
                     * Encodes the specified RevokeIamTokenResponse message. Does not implicitly {@link yandex.cloud.iam.v1.RevokeIamTokenResponse.verify|verify} messages.
                     * @param message RevokeIamTokenResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: yandex.cloud.iam.v1.IRevokeIamTokenResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RevokeIamTokenResponse message, length delimited. Does not implicitly {@link yandex.cloud.iam.v1.RevokeIamTokenResponse.verify|verify} messages.
                     * @param message RevokeIamTokenResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: yandex.cloud.iam.v1.IRevokeIamTokenResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RevokeIamTokenResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RevokeIamTokenResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): yandex.cloud.iam.v1.RevokeIamTokenResponse;

                    /**
                     * Decodes a RevokeIamTokenResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RevokeIamTokenResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): yandex.cloud.iam.v1.RevokeIamTokenResponse;

                    /**
                     * Verifies a RevokeIamTokenResponse message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RevokeIamTokenResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RevokeIamTokenResponse
                     */
                    public static fromObject(object: { [k: string]: any }): yandex.cloud.iam.v1.RevokeIamTokenResponse;

                    /**
                     * Creates a plain object from a RevokeIamTokenResponse message. Also converts values to other types if specified.
                     * @param message RevokeIamTokenResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: yandex.cloud.iam.v1.RevokeIamTokenResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RevokeIamTokenResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };
                }
            }
        }

        /** Properties of a MapKeySpec. */
        interface IMapKeySpec {

            /** MapKeySpec value */
            value?: (string|null);

            /** MapKeySpec pattern */
            pattern?: (string|null);

            /** MapKeySpec length */
            length?: (string|null);
        }

        /** Represents a MapKeySpec. */
        class MapKeySpec implements IMapKeySpec {

            /**
             * Constructs a new MapKeySpec.
             * @param [properties] Properties to set
             */
            constructor(properties?: yandex.cloud.IMapKeySpec);

            /** MapKeySpec value. */
            public value: string;

            /** MapKeySpec pattern. */
            public pattern: string;

            /** MapKeySpec length. */
            public length: string;

            /**
             * Creates a new MapKeySpec instance using the specified properties.
             * @param [properties] Properties to set
             * @returns MapKeySpec instance
             */
            public static create(properties?: yandex.cloud.IMapKeySpec): yandex.cloud.MapKeySpec;

            /**
             * Encodes the specified MapKeySpec message. Does not implicitly {@link yandex.cloud.MapKeySpec.verify|verify} messages.
             * @param message MapKeySpec message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: yandex.cloud.IMapKeySpec, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified MapKeySpec message, length delimited. Does not implicitly {@link yandex.cloud.MapKeySpec.verify|verify} messages.
             * @param message MapKeySpec message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: yandex.cloud.IMapKeySpec, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a MapKeySpec message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns MapKeySpec
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): yandex.cloud.MapKeySpec;

            /**
             * Decodes a MapKeySpec message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns MapKeySpec
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): yandex.cloud.MapKeySpec;

            /**
             * Verifies a MapKeySpec message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a MapKeySpec message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns MapKeySpec
             */
            public static fromObject(object: { [k: string]: any }): yandex.cloud.MapKeySpec;

            /**
             * Creates a plain object from a MapKeySpec message. Also converts values to other types if specified.
             * @param message MapKeySpec
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: yandex.cloud.MapKeySpec, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this MapKeySpec to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };
        }
    }
}
