import { VelcronAction, VelcronActionWithAutoAwait, VelcronRenderContext, DeferredPromise, VelcronActionHooks } from "../models";
import { IActionHandler } from "../actions";
export declare class VelcronActions {
    static _actionHandlers: {
        [name: string]: IActionHandler;
    } | null;
    static actionHooks: {
        [name: string]: VelcronActionHooks;
    };
    static registerAction(name: string, handler: IActionHandler): void;
    static parseAndExecuteActions(templates: Array<string>, renderContext: VelcronRenderContext, customActionContext?: VelcronCustomActionExecutionContext): void;
    static parseFunction(target: {
        [name: string]: [];
    }, template: string, renderContext: VelcronRenderContext, params: Array<VelcronActionParameterValue>, foundCb: (name: string, params: {}) => void): void;
    static getActionFromTemplate(partialTemplate: string, eventId: string, renderContext: VelcronRenderContext, customActionContext?: VelcronCustomActionExecutionContext): VelcronAction;
    static valueIsAction(value: string): boolean;
    static executeActions(arr: any, x: any, customActionContext?: VelcronCustomActionExecutionContext): void;
    static executeAction(awAction: VelcronActionWithAutoAwait, callback: (continueExecution: boolean) => void): void;
    static dataBindComputed(renderContext: VelcronRenderContext, template: string): string;
    static parseAndExecuteComputed(renderContext: VelcronRenderContext, template: string): string;
    static registerActionHook<TBefore, TAfter>(actionName: string, handler: VelcronActionHooks<TBefore, TAfter>): void;
    static tryTriggerBeforeActionHook<T>(actionName: string, args: T): T;
    static tryTriggerAfterActionHook<T>(actionName: string, args: T): T;
    private static extractParameterValues;
}
interface VelcronActionParameterValue {
    dataType: VelcronActionParameterDataType;
    value: any;
}
export declare enum VelcronActionParameterDataType {
    text = 0,
    number = 1,
    boolean = 2,
    pointer = 3
}
interface VelcronCustomActionExecutionContext {
    customAction: VelcronAction | null;
    parentAction: VelcronAction | VelcronRenderContext;
    variables: object;
    returnValue: DeferredPromise<any>;
}
export {};
