declare global {
    interface Window {
        AudiusStems: any;
    }
}
/**
 * Hook to "share state" between components using the global window object.
 * Obviously, comes with caveats with globals.
 *
 * @param name shared name between users of a useGlobal
 * @param initialValue
 * @returns getter, setter
 *  Similar to useState, except
 *  1. The getter is a function to allow for fresh fetches (pulls off of window at each invocation)
 *  2. The setter can/should only be invoked with a mutator function rather than a "new value"
 */
declare const useGlobal: <T>(name: string, initialValue: T) => [() => T, (mutator: (cur: T) => void) => void];
export default useGlobal;
