import { ActionheroLogLevel } from "../modules/log";
import { Action } from "./action";
import { Connection } from "./connection";
export declare enum ActionsStatus {
    Complete = 0,
    GenericError = 1,
    ServerShuttingDown = 2,
    TooManyRequests = 3,
    UnknownAction = 4,
    UnsupportedServerType = 5,
    MissingParams = 6,
    ValidatorErrors = 7
}
export declare class ActionProcessor<ActionClass extends Action> {
    connection: Connection;
    action: ActionClass["name"];
    toProcess: boolean;
    toRender: boolean;
    messageId: number | string;
    params: {
        action?: string;
        apiVersion?: string | number;
        [key: string]: any;
    };
    missingParams: Array<string>;
    validatorErrors: Array<string | Error>;
    actionStartTime: number;
    actionTemplate: ActionClass;
    working: boolean;
    response: {
        [key: string]: any;
    };
    duration: number;
    actionStatus: ActionsStatus;
    session: any;
    constructor(connection: Connection);
    private incrementTotalActions;
    private incrementPendingActions;
    getPendingActionCount(): number;
    private completeAction;
    private logAndReportAction;
    applyDefaultErrorLogLineFormat(error: NodeJS.ErrnoException): {
        errorFields: {
            error: string;
        };
        logLevel: ActionheroLogLevel;
    };
    private preProcessAction;
    private postProcessAction;
    private reduceParams;
    private prepareStringMethod;
    private validateParam;
    private validateParams;
    lockParams(): void;
    processAction(actionName?: string, apiVersion?: string | number): Promise<this>;
    private runAction;
}
