declare type BoundMethodsObj = { [key in keyof M]: (state: O, ...args: Array) => any; }; declare type BoundReturnObjs = { [key in keyof O]: (...args: Array) => void; }; export declare function useMethods(initialValue: S, methods: BoundMethodsObj): [S, BoundReturnObjs]; export {};