import { BabelDescriptor } from '../interfaces';
import { MutationConfig } from './mutation';
interface ActionConfig {
    displayName: string;
    /** 是否自动包裹一个顶层 mutation */
    isWrapMutation: boolean;
    /** 自动包裹的 mutation 的配置 */
    mutationConfig?: MutationConfig;
}
type ActionCallback = (...payload: any[]) => void | Promise<void>;
export declare function action(target: object, name: string | symbol | number, descriptor?: BabelDescriptor<any>): any;
export declare function action(displayName?: string, isWrapMutation?: boolean, mutationConfig?: MutationConfig): (target: object, name: string | symbol | number, descriptor?: BabelDescriptor<any>) => any;
export declare function action(name: string | symbol | number, original: ActionCallback, config?: ActionConfig): (...payload: any[]) => any;
export {};
