/** How long the cross-fade takes, in milliseconds. */ export declare const LIGHT_FADE_MS = 300; /** Where the fade is: `mix` is 0 for the true light and 1 for `lit`. */ export interface LightFade { mix: number; target: number; from: number; started: number; /** Whether the last step left it still moving, so another draw is wanted. */ fading: boolean; } export declare const newLightFade: (lit?: boolean) => LightFade; /** * Step the fade to `now`. `lit` is where it is going. A change of `lit` starts a fade from where the mix is now (a fade turned round half way goes back from there); with `reduced` it jumps. Returns the same object, updated. * * @param fade - The fade to step. * @param lit - Whether the light is `lit` now. * @param now - The clock, in milliseconds. * @param reduced - Whether the reader asked for less motion. * @returns The fade: `mix` for this frame and `fading` true while another frame is wanted. */ export declare function stepLightFade(fade: LightFade, lit: boolean, now: number, reduced: boolean): LightFade;