/**
 * @module node-opcua-client
 */
import { EventEmitter } from "events";
import { ServerState } from "node-opcua-common";
import type { ClientSessionImpl } from "./private/client_session_impl";
export interface ClientSessionKeepAliveManagerEvents {
    on(event: "keepalive", eventHandler: (lastKnownServerState: ServerState, count: number) => void): this;
    on(event: "failure", eventHandler: () => void): this;
}
export declare class ClientSessionKeepAliveManager extends EventEmitter implements ClientSessionKeepAliveManagerEvents {
    private readonly session;
    private timerId?;
    private pingTimeout;
    private lastKnownState?;
    private transactionInProgress;
    count: number;
    checkInterval: number;
    constructor(session: ClientSessionImpl);
    start(keepAliveInterval?: number): void;
    stop(): void;
    private ping_server;
    /**
     * @private
     * when a session is opened on a server, the client shall send request on a regular basis otherwise the server
     * session object might time out.
     * start_ping make sure that ping_server is called on a regular basis to prevent session to timeout.
     *
     */
    private _ping_server;
}
