import { Connection } from "./connection";
import { Action } from "./action";
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: string | Error;
    session: any;
    constructor(connection: Connection);
    private incrementTotalActions;
    private incrementPendingActions;
    getPendingActionCount(): number;
    private completeAction;
    private logAndReportAction;
    private applyDefaultErrorLogLineFormat;
    private preProcessAction;
    private postProcessAction;
    private reduceParams;
    private prepareStringMethod;
    private validateParam;
    private validateParams;
    lockParams(): void;
    processAction(actionName?: string, apiVersion?: string | number): Promise<this>;
    private runAction;
}
