import * as thrift from "thrift";
import * as BsonType from "./BsonType";
import * as DateType from "./DateType";
import * as DecimalType from "./DecimalType";
import * as EnumType from "./EnumType";
import * as IntType from "./IntType";
import * as JsonType from "./JsonType";
import * as ListType from "./ListType";
import * as MapType from "./MapType";
import * as NullType from "./NullType";
import * as StringType from "./StringType";
import * as TimestampType from "./TimestampType";
import * as TimeType from "./TimeType";
import * as UUIDType from "./UUIDType";
export interface ILogicalTypeArgs {
    STRING?: StringType.StringType;
    MAP?: MapType.MapType;
    LIST?: ListType.ListType;
    ENUM?: EnumType.EnumType;
    DECIMAL?: DecimalType.DecimalType;
    DATE?: DateType.DateType;
    TIME?: TimeType.TimeType;
    TIMESTAMP?: TimestampType.TimestampType;
    INTEGER?: IntType.IntType;
    UNKNOWN?: NullType.NullType;
    JSON?: JsonType.JsonType;
    BSON?: BsonType.BsonType;
    UUID?: UUIDType.UUIDType;
}
export declare class LogicalType {
    STRING?: StringType.StringType;
    MAP?: MapType.MapType;
    LIST?: ListType.ListType;
    ENUM?: EnumType.EnumType;
    DECIMAL?: DecimalType.DecimalType;
    DATE?: DateType.DateType;
    TIME?: TimeType.TimeType;
    TIMESTAMP?: TimestampType.TimestampType;
    INTEGER?: IntType.IntType;
    UNKNOWN?: NullType.NullType;
    JSON?: JsonType.JsonType;
    BSON?: BsonType.BsonType;
    UUID?: UUIDType.UUIDType;
    constructor(args?: ILogicalTypeArgs);
    static fromSTRING(STRING: StringType.StringType): LogicalType;
    static fromMAP(MAP: MapType.MapType): LogicalType;
    static fromLIST(LIST: ListType.ListType): LogicalType;
    static fromENUM(ENUM: EnumType.EnumType): LogicalType;
    static fromDECIMAL(DECIMAL: DecimalType.DecimalType): LogicalType;
    static fromDATE(DATE: DateType.DateType): LogicalType;
    static fromTIME(TIME: TimeType.TimeType): LogicalType;
    static fromTIMESTAMP(TIMESTAMP: TimestampType.TimestampType): LogicalType;
    static fromINTEGER(INTEGER: IntType.IntType): LogicalType;
    static fromUNKNOWN(UNKNOWN: NullType.NullType): LogicalType;
    static fromJSON(JSON: JsonType.JsonType): LogicalType;
    static fromBSON(BSON: BsonType.BsonType): LogicalType;
    static fromUUID(UUID: UUIDType.UUIDType): LogicalType;
    write(output: thrift.TProtocol): void;
    static read(input: thrift.TProtocol): LogicalType;
}
