How to Provide Complex Types As "arg" For A Transaction Using FCL

I am getting an error for using any type.
e TypeError: Cannot read properties of undefined (reading 'asArgument')

My code -

const cadence = `
    import Vevent from 0xCanvas
    import VeventVerifiers from 0xCanvas
 
    transaction(prices: {UFix64: UInt64}) {

        let Collection: &Vevent.Collection

        prepare(signer: AuthAccount) {
            if signer.borrow<&Vevent.Collection>(from: Vevent.CollectionStoragePath) == nil {
                signer.save(<- Vevent.createEmptyCollection(), to: Vevent.CollectionStoragePath)
                signer.link<&Vevent.Collection{Vevent.CollectionPublic}>(Vevent.CollectionPublicPath, target: Vevent.CollectionStoragePath)
            }

            self.Collection = signer.borrow<&Vevent.Collection>(from: Vevent.CollectionStoragePath)!
        }

        execute {
            self.Collection.createProject(prices: prices, verifier: [VeventVerifiers.DoodlesSock()])
        }
    }
`;

const value = {
    "1.0": "10",
    "2.0": "20",
    "3.0": "30",
};

// List of arguments
const args = (arg: any, t: any) => [
    // We need to pass UInt8 value, but it should be a string, remember? :)
    arg(value, t.any),
];

// "mutate" method will return us transaction id
const txId = await fcl.mutate({
    cadence,
    args,
    limit: 999,
});

// We can use this id to check the status of our transaction
const status = await fcl.tx(txId).onceSealed();

console.log("status", status);