Because this will return a struct, we'll present you another way to query the smart contract and decode the struct using mx js sdk:
const getStreamDetails = async (streamId: number): Promise<any> => {
let abi = new SmartContractAbi(AbiRegistry.create(ScAbi), ["CoinDrip"]);
let contract = new SmartContract({ address: new Address(contractAddress), abi: abi });
let getSteramDetails = <Interaction>contract.methods.getStreamData([streamId]);
const parser = new ResultsParser();
let ViewQueryResponse = await new ApiNetworkProvider(network.apiAddress).queryContract(
getSteramDetails.buildQuery()
);
let ViewEndpointDefinition = contract.getEndpoint("getStreamData");
let ViewValues = parser?.parseQueryResponse(ViewQueryResponse, ViewEndpointDefinition)?.firstValue?.valueOf();
return ViewValues;
};