import env from '../core/env'; 
 | 
  
 | 
type RequestAnimationFrameType = typeof window.requestAnimationFrame 
 | 
  
 | 
let requestAnimationFrame: RequestAnimationFrameType; 
 | 
  
 | 
requestAnimationFrame = ( 
 | 
    env.hasGlobalWindow 
 | 
        && ( 
 | 
            (window.requestAnimationFrame && window.requestAnimationFrame.bind(window)) 
 | 
            // https://github.com/ecomfe/zrender/issues/189#issuecomment-224919809 
 | 
            || ((window as any).msRequestAnimationFrame && (window as any).msRequestAnimationFrame.bind(window)) 
 | 
            || (window as any).mozRequestAnimationFrame 
 | 
            // @ts-ignore 
 | 
            || window.webkitRequestAnimationFrame 
 | 
        ) 
 | 
) || function (func: Parameters<RequestAnimationFrameType>[0]): number { 
 | 
    return setTimeout(func, 16) as any; 
 | 
}; 
 | 
  
 | 
export default requestAnimationFrame; 
 |