import { BodyConverter } from "../converter/import-adapter";
import { TLVConverter } from "../../client/impl/converter/tlv-converter";
import { TLV } from "../../core/tlv";
import { EncoderDecoder } from "../../core/converter/encoder-decoder.interface";
declare type VariableMeta = {
    id: number;
    converter?: EncoderDecoder<any, Uint8Array>;
    name?: string;
};
export declare class TlvBundleConverter<DataType = Record<string, Uint8Array>> implements BodyConverter<DataType> {
    protected variables: VariableMeta[];
    protected tlvConverter: TLVConverter;
    constructor(variables?: VariableMeta[], tlvConverter?: TLVConverter);
    decode(data: Uint8Array | TLV.TlvNode, context?: any): DataType;
    /**
     * TODO
     */
    encode(data: DataType): Uint8Array;
    /**
     * Converter tlv tree to variable name => value
     */
    private _converteTlvTree;
}
export {};
