/** * Timing behavior simulation */ import type { TimingBehavior } from '../types/config.js'; /** * Calculate a delay value from a fixed number or random range */ export declare function calculateDelay(delay: number | [number, number] | undefined): number; /** * Calculate transmission delay based on baud rate and frame size * Formula: (frameBytes * 11 bits per byte) / (baudRate / 1000) */ export declare function calculateTransmissionDelay(frameBytes: number, baudRate: number): number; /** * Thin abstraction over setTimeout for dependency injection */ export interface DelayFunction { (ms: number): Promise; } /** * Default delay implementation using setTimeout */ export declare const defaultDelay: DelayFunction; /** * Timing simulator that calculates and applies realistic device delays */ export declare class TimingSimulator { private config; private delayFn; constructor(config: TimingBehavior, delayFn?: DelayFunction); /** * Calculate total delay for a request * @param request - The Modbus request buffer * @param registerCount - Number of registers being accessed * @returns Total delay in milliseconds */ calculateTotalDelay(request: Buffer, registerCount: number): number; /** * Apply timing delay for a request * @param request - The Modbus request buffer * @param registerCount - Number of registers being accessed * @returns Promise that resolves after the calculated delay */ delay(request: Buffer, registerCount: number): Promise; } //# sourceMappingURL=timing.d.ts.map