import type { GenEnum, GenFile, GenMessage } from "@bufbuild/protobuf/codegenv1";
import type { Operation, OperationParams } from "./ydb_operation_pb.js";
import type { ResultSet, Type, TypedValue } from "./ydb_value_pb.js";
import type { QueryStatsCollection_Mode } from "./ydb_table_pb.js";
import type { QueryStats } from "./ydb_query_stats_pb.js";
import type { IssueMessage } from "./ydb_issue_message_pb.js";
import type { StatusIds_StatusCode } from "./ydb_status_codes_pb.js";
import type { Message } from "@bufbuild/protobuf";
/**
 * Describes the file protos/ydb_scripting.proto.
 */
export declare const file_protos_ydb_scripting: GenFile;
/**
 * @generated from message Ydb.Scripting.ExecuteYqlRequest
 */
export type ExecuteYqlRequest = Message<"Ydb.Scripting.ExecuteYqlRequest"> & {
    /**
     * @generated from field: Ydb.Operations.OperationParams operation_params = 1;
     */
    operationParams?: OperationParams;
    /**
     * @generated from field: string script = 2;
     */
    script: string;
    /**
     * @generated from field: map<string, Ydb.TypedValue> parameters = 3;
     */
    parameters: {
        [key: string]: TypedValue;
    };
    /**
     * @generated from field: Ydb.Table.QueryStatsCollection.Mode collect_stats = 4;
     */
    collectStats: QueryStatsCollection_Mode;
};
/**
 * Describes the message Ydb.Scripting.ExecuteYqlRequest.
 * Use `create(ExecuteYqlRequestSchema)` to create a new message.
 */
export declare const ExecuteYqlRequestSchema: GenMessage<ExecuteYqlRequest>;
/**
 * @generated from message Ydb.Scripting.ExecuteYqlResponse
 */
export type ExecuteYqlResponse = Message<"Ydb.Scripting.ExecuteYqlResponse"> & {
    /**
     * @generated from field: Ydb.Operations.Operation operation = 1;
     */
    operation?: Operation;
};
/**
 * Describes the message Ydb.Scripting.ExecuteYqlResponse.
 * Use `create(ExecuteYqlResponseSchema)` to create a new message.
 */
export declare const ExecuteYqlResponseSchema: GenMessage<ExecuteYqlResponse>;
/**
 * @generated from message Ydb.Scripting.ExecuteYqlResult
 */
export type ExecuteYqlResult = Message<"Ydb.Scripting.ExecuteYqlResult"> & {
    /**
     * @generated from field: repeated Ydb.ResultSet result_sets = 1;
     */
    resultSets: ResultSet[];
    /**
     * @generated from field: Ydb.TableStats.QueryStats query_stats = 2;
     */
    queryStats?: QueryStats;
};
/**
 * Describes the message Ydb.Scripting.ExecuteYqlResult.
 * Use `create(ExecuteYqlResultSchema)` to create a new message.
 */
export declare const ExecuteYqlResultSchema: GenMessage<ExecuteYqlResult>;
/**
 * Response for StreamExecuteYql is a stream of ExecuteYqlPartialResponse messages.
 * These responses can contain ExecuteYqlPartialResult messages with
 * results (or result parts) for data or scan queries in the script.
 * YqlScript can have multiple results (result sets).
 * Each result set has an index (starting at 0).
 *
 * @generated from message Ydb.Scripting.ExecuteYqlPartialResponse
 */
export type ExecuteYqlPartialResponse = Message<"Ydb.Scripting.ExecuteYqlPartialResponse"> & {
    /**
     * @generated from field: Ydb.StatusIds.StatusCode status = 1;
     */
    status: StatusIds_StatusCode;
    /**
     * @generated from field: repeated Ydb.Issue.IssueMessage issues = 2;
     */
    issues: IssueMessage[];
    /**
     * @generated from field: Ydb.Scripting.ExecuteYqlPartialResult result = 3;
     */
    result?: ExecuteYqlPartialResult;
};
/**
 * Describes the message Ydb.Scripting.ExecuteYqlPartialResponse.
 * Use `create(ExecuteYqlPartialResponseSchema)` to create a new message.
 */
export declare const ExecuteYqlPartialResponseSchema: GenMessage<ExecuteYqlPartialResponse>;
/**
 * Contains result set (or a result set part) for one data or scan query in the script.
 * One result set can be split into several responses with same result_index.
 * Only the final response can contain query stats.
 *
 * @generated from message Ydb.Scripting.ExecuteYqlPartialResult
 */
export type ExecuteYqlPartialResult = Message<"Ydb.Scripting.ExecuteYqlPartialResult"> & {
    /**
     * Index of current result
     *
     * @generated from field: uint32 result_set_index = 1;
     */
    resultSetIndex: number;
    /**
     * Result set (or a result set part) for one data or scan query
     *
     * @generated from field: Ydb.ResultSet result_set = 2;
     */
    resultSet?: ResultSet;
    /**
     * @generated from field: Ydb.TableStats.QueryStats query_stats = 3;
     */
    queryStats?: QueryStats;
};
/**
 * Describes the message Ydb.Scripting.ExecuteYqlPartialResult.
 * Use `create(ExecuteYqlPartialResultSchema)` to create a new message.
 */
export declare const ExecuteYqlPartialResultSchema: GenMessage<ExecuteYqlPartialResult>;
/**
 * @generated from message Ydb.Scripting.ExplainYqlRequest
 */
export type ExplainYqlRequest = Message<"Ydb.Scripting.ExplainYqlRequest"> & {
    /**
     * @generated from field: Ydb.Operations.OperationParams operation_params = 1;
     */
    operationParams?: OperationParams;
    /**
     * @generated from field: string script = 2;
     */
    script: string;
    /**
     * @generated from field: Ydb.Scripting.ExplainYqlRequest.Mode mode = 3;
     */
    mode: ExplainYqlRequest_Mode;
};
/**
 * Describes the message Ydb.Scripting.ExplainYqlRequest.
 * Use `create(ExplainYqlRequestSchema)` to create a new message.
 */
export declare const ExplainYqlRequestSchema: GenMessage<ExplainYqlRequest>;
/**
 * @generated from enum Ydb.Scripting.ExplainYqlRequest.Mode
 */
export declare enum ExplainYqlRequest_Mode {
    /**
     * @generated from enum value: MODE_UNSPECIFIED = 0;
     */
    MODE_UNSPECIFIED = 0,
    /**
     * PARSE = 1;
     *
     * @generated from enum value: VALIDATE = 2;
     */
    VALIDATE = 2,
    /**
     * @generated from enum value: PLAN = 3;
     */
    PLAN = 3
}
/**
 * Describes the enum Ydb.Scripting.ExplainYqlRequest.Mode.
 */
export declare const ExplainYqlRequest_ModeSchema: GenEnum<ExplainYqlRequest_Mode>;
/**
 * @generated from message Ydb.Scripting.ExplainYqlResponse
 */
export type ExplainYqlResponse = Message<"Ydb.Scripting.ExplainYqlResponse"> & {
    /**
     * @generated from field: Ydb.Operations.Operation operation = 1;
     */
    operation?: Operation;
};
/**
 * Describes the message Ydb.Scripting.ExplainYqlResponse.
 * Use `create(ExplainYqlResponseSchema)` to create a new message.
 */
export declare const ExplainYqlResponseSchema: GenMessage<ExplainYqlResponse>;
/**
 * @generated from message Ydb.Scripting.ExplainYqlResult
 */
export type ExplainYqlResult = Message<"Ydb.Scripting.ExplainYqlResult"> & {
    /**
     * @generated from field: map<string, Ydb.Type> parameters_types = 1;
     */
    parametersTypes: {
        [key: string]: Type;
    };
    /**
     * @generated from field: string plan = 2;
     */
    plan: string;
};
/**
 * Describes the message Ydb.Scripting.ExplainYqlResult.
 * Use `create(ExplainYqlResultSchema)` to create a new message.
 */
export declare const ExplainYqlResultSchema: GenMessage<ExplainYqlResult>;
//# sourceMappingURL=ydb_scripting_pb.d.ts.map