import { TapStreamReader, TapStreamWriter } from '@iotize/tap/client/impl';
import { CanMessageData, CanSignal, CanSignalMap, DataSignal } from './definitions';
export declare const DBC_DATA_FRAME_LENGTH = 8;
export declare function encodeCanMessage<SignalMapType extends CanSignalMap>(input: CanMessageData<SignalMapType>, signals: SignalMapType): Uint8Array;
export declare function decodeCanMessage<SignalMapType extends CanSignalMap>(stream: Uint8Array | TapStreamReader, signals: SignalMapType): CanMessageData<SignalMapType>;
export declare function dbcBitPositionToDataFrameIndex(start: number): number;
export declare function tapStreamReadCanSignal(stream: TapStreamReader | Uint8Array, signal: CanSignal): number;
export declare function decodeSignalValueNumber(result: number, { offset, scaling, signed, bitLength: length }: DataSignal): number;
export declare function encodeSignalValueNumber(value: number, { offset, scaling, signed, bitLength: length }: DataSignal): number;
export declare function tapStreamWriteCanSignal(value: number, signal: CanSignal, stream: TapStreamWriter): void;
export declare function writeBitsToDbcMessageStream(stream: TapStreamWriter, value: number, { endianess, startBit, bitLength, }: Pick<CanSignal, 'endianess' | 'startBit' | 'bitLength'>): void;
export declare function fromSignedOnNBits(value: number, length: number): number;
export declare function toSignedOnNBits(value: number, length: number): number;
