export type IAction = () => void; export type IAction1 = (x: T) => void; export type IActionN = (...x: T[]) => void; export type IFunc1 = () => TResult; export type IFunc2 = (x: T) => TResult; export type IFuncN = (...x: T[]) => TResult;