export type Action<T1 = void, T2 = void> = [
    T1
] extends [void] ? () => any : [
    T2
] extends [void] ? (arg: T1) => any : ((arg1: T1, arg2: T2) => any);
