export declare type ExecDataRepresentation<Data> = {
    origin: string;
    name: string;
    args: {
        [key: string]: {
            args: Data;
        };
    };
};
export declare type ExecDataRepresentationWithRouterExec<Data> = {
    router_exec: {
        origin: string;
        name: string;
        args: {
            [key: string]: {
                args: Data;
            };
        };
    };
};
export declare const dataToExecData: <T>(data: T, execParams: {
    origin: string;
    name: string;
    action: string;
}) => ExecDataRepresentation<T>;
export declare const dataToExecDataWithRouterExec: <T>(data: T, execParams: {
    origin: string;
    name: string;
    action: string;
}) => ExecDataRepresentationWithRouterExec<T>;
export declare abstract class ExecArgsBase<Params, DataRepresentation> {
    params: Params;
    constructor(params: Params);
    abstract toData(): DataRepresentation;
    abstract toExecData(): ExecDataRepresentation<DataRepresentation>;
    toJSON(): string;
    toExecJSON(): string;
}
