import { WebSocketRequestOpcode, WebSocketResponseOpcode } from './WebSocketOpcodes.js';
export declare enum WebSocketClientEvent {
    CONNECTED = "connected",
    DISCONNECTED = "disconnected",
    ERROR = "error",
    BLOCK = "block",
    EPOCH = "epoch",
    MEMPOOL = "mempool"
}
export type EventHandler<T = unknown> = (data: T) => void;
export type SubscriptionHandler<T = unknown> = (data: T) => void;
export interface BlockNotification {
    readonly blockNumber: bigint;
    readonly blockHash: string;
    readonly timestamp: bigint;
    readonly txCount: number;
}
export interface EpochNotification {
    readonly epochNumber: bigint;
    readonly epochHash: string;
}
export interface MempoolNotification {
    readonly txId: string;
    readonly transactionType: string;
    readonly timestamp: bigint;
}
export interface InternalPendingRequest {
    readonly resolve: (value: Uint8Array) => void;
    readonly reject: (error: Error) => void;
    readonly timeout: ReturnType<typeof setTimeout>;
}
export interface MethodMapping {
    readonly requestOpcode: WebSocketRequestOpcode;
    readonly responseOpcode: WebSocketResponseOpcode;
    readonly requestType: string;
    readonly responseType: string;
}
