import type { IFIXParser, IMessageStore, Logger } from 'fixparser';
import { type IMessage } from 'fixparser-common';
export type MessageStoreKDBOptions = {
    host: string;
    port: number;
    tableName?: string;
    parser: IFIXParser;
    maxBufferSize?: number;
    writeInterval?: number;
    logger?: Logger;
    onReady: () => void;
};
export declare class MessageStoreKDB implements IMessageStore<IMessage> {
    /**
     * A number representing the next expected message sequence number.
     * @private
     */
    private nextMsgSeqNum;
    private readonly inMemoryMessageStore;
    private readonly host;
    private readonly port;
    private readonly tableName;
    private readonly ws;
    private readonly parser;
    private readonly logger;
    private readonly writeInterval;
    private readonly writeIntervalId;
    private maxBufferSize;
    constructor({
        host,
        port,
        tableName,
        parser,
        logger,
        onReady,
        maxBufferSize,
        writeInterval,
    }: MessageStoreKDBOptions);
    private send;
    private sendAsync;
    private writeToKDB;
    add(message: IMessage): void;
    getByMsgSequence(msgSequence: number): IMessage | undefined;
    getByMsgSequenceAsync(msgSequence: number): Promise<IMessage | undefined>;
    /**
     * Updates a `Message` instance in the store.
     *
     * @param {number} msgSequence - The sequence number of the message to update.
     * @param {Message} message - The updated message.
     *
     * @returns {boolean} - Returns `true` if the message was updated successfully, `false` otherwise.
     */
    update(msgSequence: number, message: IMessage): boolean;
    /**
     * Removes a `Message` instance from the store by its sequence number.
     *
     * @param {number} msgSequence - The sequence number of the message to remove.
     *
     * @returns {void}
     */
    remove(msgSequence: number): void;
    /**
     * Checks if a message with a given sequence number exists in the store.
     *
     * @param {number} msgSequence - The sequence number of the message to check.
     * @returns {boolean} - `true` if the message exists, `false` otherwise.
     */
    exists(msgSequence: number): boolean;
    /**
     * Retrieves all `Message` instances from the store.
     *
     * @returns {Message[]} - An array of all `Message` instances in the store.
     */
    getAll(): IMessage[];
    /**
     * Retrieves all `Message` instances from the store.
     *
     * @returns {Message[]} - An array of all `Message` instances in the store.
     */
    getAllAsync(): Promise<IMessage[]>;
    size(): number;
    /**
     * Resizes the message buffer's capacity.
     *
     * @param {number} newCapacity - The new maximum capacity for the buffer.
     * @returns {void}
     */
    resize(newCapacity: number): void;
    clear(): void;
    getCapacity(): number;
    stopWriteInterval(): void;
    /**
     * Set the next message sequence number.
     *
     * @param nextMsgSeqNum - The next message sequence number.
     * @returns {number} - The next message sequence number.
     */
    setNextMsgSeqNum(nextMsgSeqNum: number): number;
    /**
     * Get the next message sequence number.
     *
     * @returns {number} - The next message sequence number.
     */
    getNextMsgSeqNum(): number;
}
