type Creator = (...args: T) => R; export interface Action { type?: T; toString: () => string; } declare const action: (type: T, create?: Creator) => ((...args: A) => R & { type: T; toString(): T; }) & { type: T; toString(): T; }, type: (action: Action) => string | NonNullable; export { action, type };