import type { MessageInitShape } from "@bufbuild/protobuf";
import { AttachSessionRequestSchema, BeginTransactionRequestSchema, BeginTransactionResponseSchema, CommitTransactionRequestSchema, CommitTransactionResponseSchema, CreateSessionRequestSchema, CreateSessionResponseSchema, DeleteSessionRequestSchema, DeleteSessionResponseSchema, ExecuteQueryRequestSchema, ExecuteQueryResponsePartSchema, ExecuteScriptRequestSchema, FetchScriptResultsRequestSchema, FetchScriptResultsResponseSchema, RollbackTransactionRequestSchema, RollbackTransactionResponseSchema, SessionStateSchema } from "./protos/ydb_query_pb.js";
import { OperationSchema } from "./protos/ydb_operation_pb.js";
/**
 * @generated from service Ydb.Query.V1.QueryService
 */
export declare const QueryServiceDefinition: {
    /**
     * Sessions are basic primitives for communicating with YDB Query Service. The are similar to
     * connections for classic relational DBs. Sessions serve three main purposes:
     * 1. Provide a flow control for DB requests with limited number of active channels.
     * 2. Distribute load evenly across multiple DB nodes.
     * 3. Store state for volatile stateful operations, such as short-living transactions.
     *
     * @generated from rpc Ydb.Query.V1.QueryService.CreateSession
     */
    readonly createSession: {
        readonly path: "/Ydb.Query.V1.QueryService/CreateSession";
        readonly requestStream: false;
        readonly requestSerialize: (message: MessageInitShape<typeof CreateSessionRequestSchema>) => Uint8Array<ArrayBufferLike>;
        readonly requestDeserialize: (bytes: Uint8Array) => import("@bufbuild/protobuf").Message<"Ydb.Query.CreateSessionRequest">;
        readonly responseStream: false;
        readonly responseSerialize: (message: MessageInitShape<typeof CreateSessionResponseSchema>) => Uint8Array<ArrayBufferLike>;
        readonly responseDeserialize: (bytes: Uint8Array) => import("./protos/ydb_query_pb.js").CreateSessionResponse;
        readonly options: {};
    };
    /**
     * @generated from rpc Ydb.Query.V1.QueryService.DeleteSession
     */
    readonly deleteSession: {
        readonly path: "/Ydb.Query.V1.QueryService/DeleteSession";
        readonly requestStream: false;
        readonly requestSerialize: (message: MessageInitShape<typeof DeleteSessionRequestSchema>) => Uint8Array<ArrayBufferLike>;
        readonly requestDeserialize: (bytes: Uint8Array) => import("./protos/ydb_query_pb.js").DeleteSessionRequest;
        readonly responseStream: false;
        readonly responseSerialize: (message: MessageInitShape<typeof DeleteSessionResponseSchema>) => Uint8Array<ArrayBufferLike>;
        readonly responseDeserialize: (bytes: Uint8Array) => import("./protos/ydb_query_pb.js").DeleteSessionResponse;
        readonly options: {};
    };
    /**
     * @generated from rpc Ydb.Query.V1.QueryService.AttachSession
     */
    readonly attachSession: {
        readonly path: "/Ydb.Query.V1.QueryService/AttachSession";
        readonly requestStream: false;
        readonly requestSerialize: (message: MessageInitShape<typeof AttachSessionRequestSchema>) => Uint8Array<ArrayBufferLike>;
        readonly requestDeserialize: (bytes: Uint8Array) => import("./protos/ydb_query_pb.js").AttachSessionRequest;
        readonly responseStream: true;
        readonly responseSerialize: (message: MessageInitShape<typeof SessionStateSchema>) => Uint8Array<ArrayBufferLike>;
        readonly responseDeserialize: (bytes: Uint8Array) => import("./protos/ydb_query_pb.js").SessionState;
        readonly options: {};
    };
    /**
     * Short-living transactions allow transactional execution of several queries, including support
     * for interactive transactions. Transaction control can be implemented via flags in ExecuteQuery
     * call (recommended), or via explicit calls to Begin/Commit/RollbackTransaction.
     *
     * @generated from rpc Ydb.Query.V1.QueryService.BeginTransaction
     */
    readonly beginTransaction: {
        readonly path: "/Ydb.Query.V1.QueryService/BeginTransaction";
        readonly requestStream: false;
        readonly requestSerialize: (message: MessageInitShape<typeof BeginTransactionRequestSchema>) => Uint8Array<ArrayBufferLike>;
        readonly requestDeserialize: (bytes: Uint8Array) => import("./protos/ydb_query_pb.js").BeginTransactionRequest;
        readonly responseStream: false;
        readonly responseSerialize: (message: MessageInitShape<typeof BeginTransactionResponseSchema>) => Uint8Array<ArrayBufferLike>;
        readonly responseDeserialize: (bytes: Uint8Array) => import("./protos/ydb_query_pb.js").BeginTransactionResponse;
        readonly options: {};
    };
    /**
     * @generated from rpc Ydb.Query.V1.QueryService.CommitTransaction
     */
    readonly commitTransaction: {
        readonly path: "/Ydb.Query.V1.QueryService/CommitTransaction";
        readonly requestStream: false;
        readonly requestSerialize: (message: MessageInitShape<typeof CommitTransactionRequestSchema>) => Uint8Array<ArrayBufferLike>;
        readonly requestDeserialize: (bytes: Uint8Array) => import("./protos/ydb_query_pb.js").CommitTransactionRequest;
        readonly responseStream: false;
        readonly responseSerialize: (message: MessageInitShape<typeof CommitTransactionResponseSchema>) => Uint8Array<ArrayBufferLike>;
        readonly responseDeserialize: (bytes: Uint8Array) => import("./protos/ydb_query_pb.js").CommitTransactionResponse;
        readonly options: {};
    };
    /**
     * @generated from rpc Ydb.Query.V1.QueryService.RollbackTransaction
     */
    readonly rollbackTransaction: {
        readonly path: "/Ydb.Query.V1.QueryService/RollbackTransaction";
        readonly requestStream: false;
        readonly requestSerialize: (message: MessageInitShape<typeof RollbackTransactionRequestSchema>) => Uint8Array<ArrayBufferLike>;
        readonly requestDeserialize: (bytes: Uint8Array) => import("./protos/ydb_query_pb.js").RollbackTransactionRequest;
        readonly responseStream: false;
        readonly responseSerialize: (message: MessageInitShape<typeof RollbackTransactionResponseSchema>) => Uint8Array<ArrayBufferLike>;
        readonly responseDeserialize: (bytes: Uint8Array) => import("./protos/ydb_query_pb.js").RollbackTransactionResponse;
        readonly options: {};
    };
    /**
     * Execute interactive query in a specified short-living transaction.
     * YDB query can contain DML, DDL and DCL statements. Supported mix of different statement types depends
     * on the chosen transaction type.
     * In case of error, including transport errors such as interrupted stream, whole transaction
     * needs to be retried. For non-idempotent transaction, a custom client logic is required to
     * retry conditionally retriable statuses, when transaction execution state is unknown.
     *
     * @generated from rpc Ydb.Query.V1.QueryService.ExecuteQuery
     */
    readonly executeQuery: {
        readonly path: "/Ydb.Query.V1.QueryService/ExecuteQuery";
        readonly requestStream: false;
        readonly requestSerialize: (message: MessageInitShape<typeof ExecuteQueryRequestSchema>) => Uint8Array<ArrayBufferLike>;
        readonly requestDeserialize: (bytes: Uint8Array) => import("./protos/ydb_query_pb.js").ExecuteQueryRequest;
        readonly responseStream: true;
        readonly responseSerialize: (message: MessageInitShape<typeof ExecuteQueryResponsePartSchema>) => Uint8Array<ArrayBufferLike>;
        readonly responseDeserialize: (bytes: Uint8Array) => import("./protos/ydb_query_pb.js").ExecuteQueryResponsePart;
        readonly options: {};
    };
    /**
     * Execute long-running script.
     * YDB scripts can contain all type of statements, including TCL statements. This way you can execute multiple
     * transactions in a single YDB script.
     * ExecuteScript call returns long-running Ydb.Operation object with:
     *   operation.metadata = ExecuteScriptMetadata
     *   operation.result = Empty
     * Script execution metadata contains all information about current execution state, including
     * execution_id, execution statistics and result sets info.
     * You can use standard operation methods such as Get/Cancel/Forget/ListOperations to work with script executions.
     * Script can be executed as persistent, in which case all execution information and results will be stored
     * persistently and available after successful or unsuccessful execution.
     *
     * @generated from rpc Ydb.Query.V1.QueryService.ExecuteScript
     */
    readonly executeScript: {
        readonly path: "/Ydb.Query.V1.QueryService/ExecuteScript";
        readonly requestStream: false;
        readonly requestSerialize: (message: MessageInitShape<typeof ExecuteScriptRequestSchema>) => Uint8Array<ArrayBufferLike>;
        readonly requestDeserialize: (bytes: Uint8Array) => import("./protos/ydb_query_pb.js").ExecuteScriptRequest;
        readonly responseStream: false;
        readonly responseSerialize: (message: MessageInitShape<typeof OperationSchema>) => Uint8Array<ArrayBufferLike>;
        readonly responseDeserialize: (bytes: Uint8Array) => import("./protos/ydb_operation_pb.js").Operation;
        readonly options: {};
    };
    /**
     * Fetch results for script execution using fetch_token for continuation.
     * For script with multiple result sets, parts of different results sets are interleaved in responses.
     * For persistent scripts, you can fetch results in specific position of specific result set using
     * position instead of fetch_token.
     *
     * @generated from rpc Ydb.Query.V1.QueryService.FetchScriptResults
     */
    readonly fetchScriptResults: {
        readonly path: "/Ydb.Query.V1.QueryService/FetchScriptResults";
        readonly requestStream: false;
        readonly requestSerialize: (message: MessageInitShape<typeof FetchScriptResultsRequestSchema>) => Uint8Array<ArrayBufferLike>;
        readonly requestDeserialize: (bytes: Uint8Array) => import("./protos/ydb_query_pb.js").FetchScriptResultsRequest;
        readonly responseStream: false;
        readonly responseSerialize: (message: MessageInitShape<typeof FetchScriptResultsResponseSchema>) => Uint8Array<ArrayBufferLike>;
        readonly responseDeserialize: (bytes: Uint8Array) => import("./protos/ydb_query_pb.js").FetchScriptResultsResponse;
        readonly options: {};
    };
};
//# sourceMappingURL=ydb_query_v1_grpc_pb.d.ts.map