/// <reference types="node" />
/// <reference types="node" />
import { Socket } from 'net';
import { TLSSocket } from 'tls';
import WebSocket from 'ws';
import { Field } from './fields/Field';
import * as Constants from './fieldtypes';
import { ConnectionType, FIXParserBase, Options, Protocol } from './FIXParserBase';
import { IFIXParser } from './IFIXParser';
import { Message } from './message/Message';
import { MessageBuffer } from './util/MessageBuffer';
import { Parser, Version } from './util/util';
declare class FIXParser implements IFIXParser {
    static version: Version;
    parserName: Parser;
    fixParserBase: FIXParserBase;
    nextNumIn: number;
    nextNumOut: number;
    heartBeatIntervalId: ReturnType<typeof setInterval> | null;
    socket: Socket | WebSocket | TLSSocket | null;
    connected: boolean;
    host: string | null;
    port: number | null;
    protocol: Protocol | null;
    sender: string | null;
    target: string | null;
    heartBeatInterval: number;
    fixVersion: string;
    messageBufferIn: MessageBuffer;
    messageBufferOut: MessageBuffer;
    connectionType: ConnectionType;
    private static onMessageCallback;
    private static onOpenCallback;
    private static onErrorCallback;
    private static onCloseCallback;
    private static onReadyCallback;
    connect({ host, port, protocol, sender, target, heartbeatIntervalSeconds, fixVersion, tlsKey, tlsCert, tlsUseSNI, logging, proxy, onMessage, onOpen, onError, onClose, onReady, }?: Options): void;
    getNextTargetMsgSeqNum(): number;
    setNextTargetMsgSeqNum(nextMsgSeqNum: number): number;
    getTimestamp(dateObject?: Date): string;
    createMessage(...fields: Field[]): Message;
    parse(data: string): Message[];
    send(message: Message): void;
    isConnected(): boolean;
    close(): void;
    stopHeartbeat(): void;
    startHeartbeat(heartBeatInterval?: number): void;
}
export { AllocPositionEffectEnum as AllocPositionEffect } from './fieldtypes/AllocPositionEffectEnum';
export { EncryptMethodEnum as EncryptMethod } from './fieldtypes/EncryptMethodEnum';
export { ExecTypeEnum as ExecType } from './fieldtypes/ExecTypeEnum';
export { FieldEnum as Fields } from './fieldtypes/FieldEnum';
export { HandlInstEnum as HandlInst } from './fieldtypes/HandlInstEnum';
export { MarketDepthEnum as MarketDepth } from './fieldtypes/MarketDepthEnum';
export { MDEntryTypeEnum as MDEntryType } from './fieldtypes/MDEntryTypeEnum';
export { MDUpdateTypeEnum as MDUpdateType } from './fieldtypes/MDUpdateTypeEnum';
export { MessageEnum as Messages } from './fieldtypes/MessageEnum';
export { OrderStatusEnum as OrderStatus } from './fieldtypes/OrderStatusEnum';
export { OrderTypesEnum as OrderTypes } from './fieldtypes/OrderTypesEnum';
export { SideEnum as Side } from './fieldtypes/SideEnum';
export { SubscriptionRequestTypeEnum as SubscriptionRequestType } from './fieldtypes/SubscriptionRequestTypeEnum';
export { TimeInForceEnum as TimeInForce } from './fieldtypes/TimeInForceEnum';
export { Protocol } from './FIXParserBase';
export { Options } from './FIXParserBase';
export { Constants };
export { Field };
export { Message };
export { FIXParser };
