TlvTypeLength:
    | {
        length: TlvLength;
        type: SignedInt;
    }
    | {
        length: TlvLength;
        type: UnsignedInt;
    }
    | {
        type: Boolean;
        value: boolean;
    }
    | {
        length: FourBytes | EightBytes;
        type: Float;
    }
    | {
        length: TlvLength;
        type: Utf8String;
    }
    | {
        length: TlvLength;
        type: ByteString;
    }
    | {
        type: Null;
    }
    | {
        type: Structure;
    }
    | {
        type: Array;
    }
    | {
        type: List;
    }
    | {
        type: EndOfContainer;
    }

Type and length or value, when applicable.