import type { GenEnum, GenFile, GenMessage } from "@bufbuild/protobuf/codegenv1";
import type { NullValue } from "../google/protobuf/struct_pb.js";
import type { Message } from "@bufbuild/protobuf";
/**
 * Describes the file protos/ydb_value.proto.
 */
export declare const file_protos_ydb_value: GenFile;
/**
 * @generated from message Ydb.DecimalType
 */
export type DecimalType = Message<"Ydb.DecimalType"> & {
    /**
     * @generated from field: uint32 precision = 1;
     */
    precision: number;
    /**
     * @generated from field: uint32 scale = 2;
     */
    scale: number;
};
/**
 * Describes the message Ydb.DecimalType.
 * Use `create(DecimalTypeSchema)` to create a new message.
 */
export declare const DecimalTypeSchema: GenMessage<DecimalType>;
/**
 * @generated from message Ydb.OptionalType
 */
export type OptionalType = Message<"Ydb.OptionalType"> & {
    /**
     * @generated from field: Ydb.Type item = 1;
     */
    item?: Type;
};
/**
 * Describes the message Ydb.OptionalType.
 * Use `create(OptionalTypeSchema)` to create a new message.
 */
export declare const OptionalTypeSchema: GenMessage<OptionalType>;
/**
 * @generated from message Ydb.ListType
 */
export type ListType = Message<"Ydb.ListType"> & {
    /**
     * @generated from field: Ydb.Type item = 1;
     */
    item?: Type;
};
/**
 * Describes the message Ydb.ListType.
 * Use `create(ListTypeSchema)` to create a new message.
 */
export declare const ListTypeSchema: GenMessage<ListType>;
/**
 * @generated from message Ydb.VariantType
 */
export type VariantType = Message<"Ydb.VariantType"> & {
    /**
     * @generated from oneof Ydb.VariantType.type
     */
    type: {
        /**
         * @generated from field: Ydb.TupleType tuple_items = 1;
         */
        value: TupleType;
        case: "tupleItems";
    } | {
        /**
         * @generated from field: Ydb.StructType struct_items = 2;
         */
        value: StructType;
        case: "structItems";
    } | {
        case: undefined;
        value?: undefined;
    };
};
/**
 * Describes the message Ydb.VariantType.
 * Use `create(VariantTypeSchema)` to create a new message.
 */
export declare const VariantTypeSchema: GenMessage<VariantType>;
/**
 * @generated from message Ydb.TupleType
 */
export type TupleType = Message<"Ydb.TupleType"> & {
    /**
     * @generated from field: repeated Ydb.Type elements = 1;
     */
    elements: Type[];
};
/**
 * Describes the message Ydb.TupleType.
 * Use `create(TupleTypeSchema)` to create a new message.
 */
export declare const TupleTypeSchema: GenMessage<TupleType>;
/**
 * @generated from message Ydb.StructMember
 */
export type StructMember = Message<"Ydb.StructMember"> & {
    /**
     * @generated from field: string name = 1;
     */
    name: string;
    /**
     * @generated from field: Ydb.Type type = 2;
     */
    type?: Type;
};
/**
 * Describes the message Ydb.StructMember.
 * Use `create(StructMemberSchema)` to create a new message.
 */
export declare const StructMemberSchema: GenMessage<StructMember>;
/**
 * @generated from message Ydb.StructType
 */
export type StructType = Message<"Ydb.StructType"> & {
    /**
     * @generated from field: repeated Ydb.StructMember members = 1;
     */
    members: StructMember[];
};
/**
 * Describes the message Ydb.StructType.
 * Use `create(StructTypeSchema)` to create a new message.
 */
export declare const StructTypeSchema: GenMessage<StructType>;
/**
 * @generated from message Ydb.DictType
 */
export type DictType = Message<"Ydb.DictType"> & {
    /**
     * @generated from field: Ydb.Type key = 1;
     */
    key?: Type;
    /**
     * @generated from field: Ydb.Type payload = 2;
     */
    payload?: Type;
};
/**
 * Describes the message Ydb.DictType.
 * Use `create(DictTypeSchema)` to create a new message.
 */
export declare const DictTypeSchema: GenMessage<DictType>;
/**
 * @generated from message Ydb.TaggedType
 */
export type TaggedType = Message<"Ydb.TaggedType"> & {
    /**
     * @generated from field: string tag = 1;
     */
    tag: string;
    /**
     * @generated from field: Ydb.Type type = 2;
     */
    type?: Type;
};
/**
 * Describes the message Ydb.TaggedType.
 * Use `create(TaggedTypeSchema)` to create a new message.
 */
export declare const TaggedTypeSchema: GenMessage<TaggedType>;
/**
 * @generated from message Ydb.PgType
 */
export type PgType = Message<"Ydb.PgType"> & {
    /**
     * @generated from field: string type_name = 10;
     */
    typeName: string;
    /**
     * @generated from field: string type_modifier = 11;
     */
    typeModifier: string;
    /**
     * pg object id of the type
     * full registry could be found here: https://github.com/postgres/postgres/blob/master/src/include/catalog/pg_type.dat
     *
     * @generated from field: uint32 oid = 1;
     */
    oid: number;
    /**
     * advanced type details useful for pg wire format proxying
     *
     * @generated from field: int32 typlen = 2;
     */
    typlen: number;
    /**
     * @generated from field: int32 typmod = 3;
     */
    typmod: number;
};
/**
 * Describes the message Ydb.PgType.
 * Use `create(PgTypeSchema)` to create a new message.
 */
export declare const PgTypeSchema: GenMessage<PgType>;
/**
 * @generated from message Ydb.Type
 */
export type Type = Message<"Ydb.Type"> & {
    /**
     * @generated from oneof Ydb.Type.type
     */
    type: {
        /**
         * Data types
         *
         * @generated from field: Ydb.Type.PrimitiveTypeId type_id = 1;
         */
        value: Type_PrimitiveTypeId;
        case: "typeId";
    } | {
        /**
         * @generated from field: Ydb.DecimalType decimal_type = 2;
         */
        value: DecimalType;
        case: "decimalType";
    } | {
        /**
         * Container types
         *
         * @generated from field: Ydb.OptionalType optional_type = 101;
         */
        value: OptionalType;
        case: "optionalType";
    } | {
        /**
         * @generated from field: Ydb.ListType list_type = 102;
         */
        value: ListType;
        case: "listType";
    } | {
        /**
         * @generated from field: Ydb.TupleType tuple_type = 103;
         */
        value: TupleType;
        case: "tupleType";
    } | {
        /**
         * @generated from field: Ydb.StructType struct_type = 104;
         */
        value: StructType;
        case: "structType";
    } | {
        /**
         * @generated from field: Ydb.DictType dict_type = 105;
         */
        value: DictType;
        case: "dictType";
    } | {
        /**
         * @generated from field: Ydb.VariantType variant_type = 106;
         */
        value: VariantType;
        case: "variantType";
    } | {
        /**
         * @generated from field: Ydb.TaggedType tagged_type = 107;
         */
        value: TaggedType;
        case: "taggedType";
    } | {
        /**
         * Special types
         *
         * @generated from field: google.protobuf.NullValue void_type = 201;
         */
        value: NullValue;
        case: "voidType";
    } | {
        /**
         * @generated from field: google.protobuf.NullValue null_type = 202;
         */
        value: NullValue;
        case: "nullType";
    } | {
        /**
         * @generated from field: google.protobuf.NullValue empty_list_type = 203;
         */
        value: NullValue;
        case: "emptyListType";
    } | {
        /**
         * @generated from field: google.protobuf.NullValue empty_dict_type = 204;
         */
        value: NullValue;
        case: "emptyDictType";
    } | {
        /**
         * @generated from field: Ydb.PgType pg_type = 205;
         */
        value: PgType;
        case: "pgType";
    } | {
        case: undefined;
        value?: undefined;
    };
};
/**
 * Describes the message Ydb.Type.
 * Use `create(TypeSchema)` to create a new message.
 */
export declare const TypeSchema: GenMessage<Type>;
/**
 * @generated from enum Ydb.Type.PrimitiveTypeId
 */
export declare enum Type_PrimitiveTypeId {
    /**
     * @generated from enum value: PRIMITIVE_TYPE_ID_UNSPECIFIED = 0;
     */
    PRIMITIVE_TYPE_ID_UNSPECIFIED = 0,
    /**
     * @generated from enum value: BOOL = 6;
     */
    BOOL = 6,
    /**
     * @generated from enum value: INT8 = 7;
     */
    INT8 = 7,
    /**
     * @generated from enum value: UINT8 = 5;
     */
    UINT8 = 5,
    /**
     * @generated from enum value: INT16 = 8;
     */
    INT16 = 8,
    /**
     * @generated from enum value: UINT16 = 9;
     */
    UINT16 = 9,
    /**
     * @generated from enum value: INT32 = 1;
     */
    INT32 = 1,
    /**
     * @generated from enum value: UINT32 = 2;
     */
    UINT32 = 2,
    /**
     * @generated from enum value: INT64 = 3;
     */
    INT64 = 3,
    /**
     * @generated from enum value: UINT64 = 4;
     */
    UINT64 = 4,
    /**
     * @generated from enum value: FLOAT = 33;
     */
    FLOAT = 33,
    /**
     * @generated from enum value: DOUBLE = 32;
     */
    DOUBLE = 32,
    /**
     * @generated from enum value: DATE = 48;
     */
    DATE = 48,
    /**
     * @generated from enum value: DATETIME = 49;
     */
    DATETIME = 49,
    /**
     * @generated from enum value: TIMESTAMP = 50;
     */
    TIMESTAMP = 50,
    /**
     * @generated from enum value: INTERVAL = 51;
     */
    INTERVAL = 51,
    /**
     * @generated from enum value: TZ_DATE = 52;
     */
    TZ_DATE = 52,
    /**
     * @generated from enum value: TZ_DATETIME = 53;
     */
    TZ_DATETIME = 53,
    /**
     * @generated from enum value: TZ_TIMESTAMP = 54;
     */
    TZ_TIMESTAMP = 54,
    /**
     * @generated from enum value: DATE32 = 64;
     */
    DATE32 = 64,
    /**
     * @generated from enum value: DATETIME64 = 65;
     */
    DATETIME64 = 65,
    /**
     * @generated from enum value: TIMESTAMP64 = 66;
     */
    TIMESTAMP64 = 66,
    /**
     * @generated from enum value: INTERVAL64 = 67;
     */
    INTERVAL64 = 67,
    /**
     * @generated from enum value: STRING = 4097;
     */
    STRING = 4097,
    /**
     * @generated from enum value: UTF8 = 4608;
     */
    UTF8 = 4608,
    /**
     * @generated from enum value: YSON = 4609;
     */
    YSON = 4609,
    /**
     * @generated from enum value: JSON = 4610;
     */
    JSON = 4610,
    /**
     * @generated from enum value: UUID = 4611;
     */
    UUID = 4611,
    /**
     * @generated from enum value: JSON_DOCUMENT = 4612;
     */
    JSON_DOCUMENT = 4612,
    /**
     * @generated from enum value: DYNUMBER = 4866;
     */
    DYNUMBER = 4866
}
/**
 * Describes the enum Ydb.Type.PrimitiveTypeId.
 */
export declare const Type_PrimitiveTypeIdSchema: GenEnum<Type_PrimitiveTypeId>;
/**
 * @generated from message Ydb.ValuePair
 */
export type ValuePair = Message<"Ydb.ValuePair"> & {
    /**
     * @generated from field: Ydb.Value key = 1;
     */
    key?: Value;
    /**
     * @generated from field: Ydb.Value payload = 2;
     */
    payload?: Value;
};
/**
 * Describes the message Ydb.ValuePair.
 * Use `create(ValuePairSchema)` to create a new message.
 */
export declare const ValuePairSchema: GenMessage<ValuePair>;
/**
 * @generated from message Ydb.Value
 */
export type Value = Message<"Ydb.Value"> & {
    /**
     * @generated from oneof Ydb.Value.value
     */
    value: {
        /**
         * @generated from field: bool bool_value = 1;
         */
        value: boolean;
        case: "boolValue";
    } | {
        /**
         * @generated from field: sfixed32 int32_value = 2;
         */
        value: number;
        case: "int32Value";
    } | {
        /**
         * @generated from field: fixed32 uint32_value = 3;
         */
        value: number;
        case: "uint32Value";
    } | {
        /**
         * @generated from field: sfixed64 int64_value = 4;
         */
        value: bigint;
        case: "int64Value";
    } | {
        /**
         * @generated from field: fixed64 uint64_value = 5;
         */
        value: bigint;
        case: "uint64Value";
    } | {
        /**
         * @generated from field: float float_value = 6;
         */
        value: number;
        case: "floatValue";
    } | {
        /**
         * @generated from field: double double_value = 7;
         */
        value: number;
        case: "doubleValue";
    } | {
        /**
         * @generated from field: bytes bytes_value = 8;
         */
        value: Uint8Array;
        case: "bytesValue";
    } | {
        /**
         * @generated from field: string text_value = 9;
         */
        value: string;
        case: "textValue";
    } | {
        /**
         * Set if current TValue is terminal Null
         *
         * @generated from field: google.protobuf.NullValue null_flag_value = 10;
         */
        value: NullValue;
        case: "nullFlagValue";
    } | {
        /**
         * Represents nested TValue for Optional<Optional<T>>(Null), or Variant<T> types
         *
         * @generated from field: Ydb.Value nested_value = 11;
         */
        value: Value;
        case: "nestedValue";
    } | {
        /**
         * @generated from field: fixed64 low_128 = 15;
         */
        value: bigint;
        case: "low128";
    } | {
        case: undefined;
        value?: undefined;
    };
    /**
     * Used for List, Tuple, Struct types
     *
     * @generated from field: repeated Ydb.Value items = 12;
     */
    items: Value[];
    /**
     * Used for Dict type
     *
     * @generated from field: repeated Ydb.ValuePair pairs = 13;
     */
    pairs: ValuePair[];
    /**
     * Used for Variant type
     *
     * @generated from field: uint32 variant_index = 14;
     */
    variantIndex: number;
    /**
     * @generated from field: fixed64 high_128 = 16;
     */
    high128: bigint;
};
/**
 * Describes the message Ydb.Value.
 * Use `create(ValueSchema)` to create a new message.
 */
export declare const ValueSchema: GenMessage<Value>;
/**
 * @generated from message Ydb.TypedValue
 */
export type TypedValue = Message<"Ydb.TypedValue"> & {
    /**
     * @generated from field: Ydb.Type type = 1;
     */
    type?: Type;
    /**
     * @generated from field: Ydb.Value value = 2;
     */
    value?: Value;
};
/**
 * Describes the message Ydb.TypedValue.
 * Use `create(TypedValueSchema)` to create a new message.
 */
export declare const TypedValueSchema: GenMessage<TypedValue>;
/**
 * @generated from message Ydb.Column
 */
export type Column = Message<"Ydb.Column"> & {
    /**
     * Name of column
     *
     * @generated from field: string name = 1;
     */
    name: string;
    /**
     * Type of column
     *
     * @generated from field: Ydb.Type type = 2;
     */
    type?: Type;
};
/**
 * Describes the message Ydb.Column.
 * Use `create(ColumnSchema)` to create a new message.
 */
export declare const ColumnSchema: GenMessage<Column>;
/**
 * Represents table-like structure with ordered set of rows and columns
 *
 * @generated from message Ydb.ResultSet
 */
export type ResultSet = Message<"Ydb.ResultSet"> & {
    /**
     * Metadata of columns
     *
     * @generated from field: repeated Ydb.Column columns = 1;
     */
    columns: Column[];
    /**
     * Rows of table
     *
     * @generated from field: repeated Ydb.Value rows = 2;
     */
    rows: Value[];
    /**
     * Flag indicates the result was truncated
     *
     * @generated from field: bool truncated = 3;
     */
    truncated: boolean;
};
/**
 * Describes the message Ydb.ResultSet.
 * Use `create(ResultSetSchema)` to create a new message.
 */
export declare const ResultSetSchema: GenMessage<ResultSet>;
//# sourceMappingURL=ydb_value_pb.d.ts.map