import { ObjectMap } from '@tsdi/ioc';
import { Binding } from '@tsdi/components';
import { TemplateOption } from '@tsdi/activities';
import { TransformActivity } from './TransformActivity';
import { NodeActivityContext } from '../NodeActivityContext';
import { ITransform } from '../ITransform';
export declare type JsonEdit = (json: any, bind?: NodeActivityContext, ctx?: NodeActivityContext) => ObjectMap;
export interface JsonEditActivityOption extends TemplateOption {
    /**
     * edite fields.
     *
     * @type {Binding<JsonEdit>}
     * @memberof SourceActivityOption
     */
    json: Binding<JsonEdit | ObjectMap>;
}
/**
 * edit json, will format new json string.
 *
 * @export
 * @class JsonEditActivity
 * @extends {TransformActivity}
 */
export declare class JsonEditActivity extends TransformActivity {
    json: JsonEdit | ObjectMap;
    execute(ctx: NodeActivityContext): Promise<ITransform>;
    static ρAnn(): any;
}
export declare type JsonReplace = (json: any, bind?: NodeActivityContext) => ObjectMap | Map<string, any>;
export interface JsonReplaceActivityOption extends TemplateOption {
    /**
     * edite fields.
     *
     * @type {Binding<JsonReplace>}
     * @memberof SourceActivityOption
     */
    fields: Binding<JsonReplace>;
}
/**
 * replace json value of key. no format.
 *
 * @export
 * @class JsonReplaceActivity
 * @extends {TransformActivity}
 */
export declare class JsonReplaceActivity extends TransformActivity {
    fields: JsonReplace;
    execute(ctx: NodeActivityContext): Promise<ITransform>;
    static ρAnn(): any;
}
