export type TFunctionAnyParametersAnyReturn = (...args: Array) => any; export type TArguments = F extends (...args: infer A) => any ? A : never; export interface IRGBA { a?: number; b: number; g: number; r: number; } export interface IHSL { h: number; l: number; s: number; } export interface IHSV { h: number; s: number; v: number; } export declare function memoizeInvalidate(fn: F, cacheTime?: number): [F, (...args: TArguments) => void, () => void];