///
import ModbusAbstractRequest from './abstract-request';
import { RequestToResponse } from './request-response-map';
import ModbusRTURequest from './rtu-request';
import ModbusTCPRequest from './tcp-request';
import { UserRequestError } from './user-request-error';
import { UserRequestMetrics } from './user-request-metrics';
export declare type ModbusRequest = ModbusTCPRequest | ModbusRTURequest;
export interface IUserRequestResolve {
metrics: UserRequestMetrics;
request: Req;
response: RequestToResponse;
}
export declare type PromiseUserRequest = Promise>;
export default class UserRequest {
protected readonly _request: Req;
protected readonly _timeout: number;
protected readonly _promise: PromiseUserRequest;
protected _resolve: (value: IUserRequestResolve) => void;
protected _reject: (err: UserRequestError, Req>) => void;
protected _timer: NodeJS.Timeout;
protected _metrics: UserRequestMetrics;
constructor(request: Req, timeout?: number);
createPayload(): Buffer;
start(cb: () => void): void;
readonly metrics: UserRequestMetrics;
done(): void;
readonly request: Req;
readonly timeout: number;
readonly promise: Promise>;
resolve(response: RequestToResponse): void;
readonly reject: (err: UserRequestError, Req>) => void;
}
//# sourceMappingURL=user-request.d.ts.map