indexed_db getObject () - como retornar o resultado

Eu gostaria de saber como definir o tipo de dados e como retornar o objeto (registro) usando getObject (). Atualmente, a única maneira que eu pude usar o resultado (registro) fora da função que obtém é chamar outra função com o resultado. Dessa forma, o tipo de dados não precisa ser especificado. No entanto, se eu quiser retornar o valor, preciso definir o tipo de dados e não consigo encontrar o que é. Eu tentei "dinâmico", mas isso não parece funcionar. Por exemplo ":

fDbSelectOneClient(String sKey, Function fSuccess, String sErmes) {
  try {
    idb.Transaction oDbTxn      =   ogDb1.transaction(sgTblClient, 'readwrite');
    idb.ObjectStore oDbTable    =   oDbTxn.objectStore(sgTblClient); 
    idb.Request     oDbReqGet   =   oDbTable.getObject(sKey);
    oDbReqGet.onSuccess.listen((val){
      if (oDbReqGet.result == null) {
        window.alert("Record $sKey was not found - $sErmes");
      } else {
    ///////return oDbReqGet.result;    /// THIS IS WHAT i WANT TO DO
        fSuccess(oDbReqGet.result);    /// THIS IS WHAT i'm HAVING TO DO  
      }});
    oDbReqGet.onError.first.then((e){window.alert(
      "Error reading single Client. Key = $sKey. Error = ${e}");});
  } catch (oError) {
    window.alert("Error attempting to read record for Client $sKey.
       Error = ${oError}");    
  }
}
fAfterAddOrUpdateClient(oDbRec) {
  /// this is one of the functions used as "fSuccess above

questionAnswers(1)

yourAnswerToTheQuestion