export type ActionFn = (...args: any[]) => any; export type ActionSubscriber = (result?: ReturnType) => void; export type ActionBeforeInterceptor = (next: (...args: any[]) => ReturnType, ...args: Parameters) => ReturnType; export type ActionAfterInterceptor = (result: ReturnType) => ReturnType; export type ActionReturnType = T & { val: () => T; set: (fn: T) => void; __subscribe: (fn: ActionSubscriber) => () => void; interceptBefore: (interceptor: ActionBeforeInterceptor) => void; interceptAfter: (interceptor: ActionAfterInterceptor) => void; __isAction___: boolean; }; export declare function action(fn: T): ActionReturnType; //# sourceMappingURL=action.d.ts.map