/**
 * CIA402 refers to the CANopen application profile for drives and motion control.
 * It defines various states that a CiA402-compliant device, such as a motor drive, can be in.
 *
 * @enum
 */
export declare enum Cia402State {
    /**
     * Not ready to switch on (NRS).
     *
     * This is the initial state where the drive is not ready to be switched on.
     * In this state, the drive is not powered or initialized.
     */
    NOT_READY_TO_SWITCH_ON = "NOT_READY_TO_SWITCH_ON",
    /**
     * Switch on disabled (SOD).
     *
     * In this state, the drive is powered and initialized but cannot be switched on.
     * This state is usually used for safety purposes or when certain conditions need to be met before enabling the drive.
     */
    SWITCH_ON_DISABLED = "SWITCH_ON_DISABLED",
    /**
     * Ready to switch on (RTS).
     *
     * In this state, the drive is ready to be switched on.
     * It has been powered and initialized, and it is waiting for the switch-on command.
     */
    READY_TO_SWITCH_ON = "READY_TO_SWITCH_ON",
    /**
     * Switched on (SWO).
     *
     * When the switch-on command is received, the drive enters this state.
     * In this state, the drive is energized and ready to start motion.
     */
    SWITCHED_ON = "SWITCHED_ON",
    /**
     * Operation enabled (OP).
     *
     * This state indicates that the drive is enabled and ready to perform its intended operation.
     * It can receive motion commands and execute them.
     */
    OPERATION_ENABLED = "OPERATION_ENABLED",
    /**
     * Quick stop active (QSA).
     *
     * This state is used to bring the drive to an immediate stop.
     * It is typically triggered by an emergency stop or a quick stop command.
     */
    QUICK_STOP_ACTIVE = "QUICK_STOP_ACTIVE",
    /**
     * Fault reaction active (FRA).
     *
     * When a fault or error condition occurs, the drive enters this state.
     * It indicates that the drive is responding to the fault by taking appropriate actions,
     * such as shutting down or entering a safe state.
     */
    FAULT_REACTION_ACTIVE = "FAULT_REACTION_ACTIVE",
    /**
     * Fault (FLT).
     *
     * This state signifies that a fault condition has been detected and the drive is no longer operational.
     * It requires manual intervention or troubleshooting to resolve the fault
     * and bring the drive back to a functional state.
     */
    FAULT = "FAULT"
}
export declare const cia402StateMap: Map<number, Cia402State>;
export declare function getCia402State(value: number): Cia402State;
export declare function isInternalLimitActive(statusword: number): boolean;
/**
 * In the CiA402 standard for drives and motion control, the controlword is a key component
 * used to command and control the operation of a CiA402-compliant device, such as a motor drive.
 * The controlword is typically a 16-bit value,
 * and it consists of several bits that represent different control commands.
 *
 * @enum
 */
export declare enum ControlwordCommand {
    SHUTDOWN = "SHUTDOWN",
    SWITCH_ON = "SWITCH_ON",
    SWITCH_ON_ENABLE_OPERATION = "SWITCH_ON_ENABLE_OPERATION",
    DISABLE_VOLTAGE = "DISABLE_VOLTAGE",
    /**
     * Quick Stop.
     *
     * This command initiates a quick stop of the drive.
     * When this bit is set to 1, the drive enters the "Quick stop active" state,
     * causing the motor to decelerate and come to a stop as quickly as possible.
     */
    QUICK_STOP = "QUICK_STOP",
    DISABLE_OPERATION = "DISABLE_OPERATION",
    /**
     * Enable Operation.
     *
     * This command enables the drive to perform its intended operation.
     * When this bit is set to 1, the drive transitions from the "Ready to switch on" state to the "Operation enabled" state.
     */
    ENABLE_OPERATION = "ENABLE_OPERATION",
    /**
     * Fault Reset.
     *
     * This command resets a fault condition and clears any fault flags or errors that may have occurred.
     * When this bit is set to 1, the drive attempts to recover from a fault and return to an operational state.
     */
    FAULT_RESET = "FAULT_RESET"
}
/**
 * Return one of the controlword commands based its value.
 *
 * NOTE: DISABLE_OPERATION and ENABLE_OPERATION are never returned.
 * Their values are the same as SWITCH_ON and SWITCH_ON_ENABLE_OPERATION.
 * What controlword is commanded depends on the transition.
 */
export declare function getCommandFromControlword(value: number): ControlwordCommand | undefined;
export declare const controlwordOptions: {
    Shutdown: number;
    'Switch on': number;
    'Switch on + enable operation': number;
    'Disable voltage': number;
    'Quick stop': number;
    'Disable operation': number;
    'Enable operation': number;
    'Fault reset': number;
};
export declare const controlwordCommandOptions: ControlwordCommand[];
export declare const controlwordCommandBitmasks: {
    SHUTDOWN: number[];
    SWITCH_ON: number[];
    SWITCH_ON_ENABLE_OPERATION: number[];
    DISABLE_VOLTAGE: number[];
    QUICK_STOP: number[];
    DISABLE_OPERATION: number[];
    ENABLE_OPERATION: number[];
    FAULT_RESET: number[];
};
export declare function createControlwordCommand(value: number, command: ControlwordCommand): number;
/**
 * CiA402 transitions.
 *
 * List of allowed transitions with controlword command.
 *
 * The following transitions are automatic:
 * - 0: START -> NOT_READY_TO_SWITCH_ON
 * - 1: NOT_READY_TO_SWITCH_ON -> SWITCH_ON_DISABLED
 * - 13: ANY -> FAULT_REACTION_ACTIVE
 * - 14: FAULT_REACTION_ACTIVE -> FAULT
 */
export declare const cia402Transitions: {
    from: Cia402State;
    to: Cia402State;
    transitions: number[];
    command: ControlwordCommand;
}[];
export declare enum ModesOfOperation {
    CYCLIC_SYNC_OUTPUT_TORQUE_MODE = -110,
    CYCLIC_SYNC_OUTPUT_VELOCITY_MODE = -109,
    CYCLIC_SYNC_OUTPUT_POSITION_MODE = -108,
    PROFILE_OUTPUT_VELOCITY_MODE = -103,
    PROFILE_OUTPUT_POSITION_MODE = -101,
    SYSTEM_IDENTIFICATION_MODE = -4,
    OPEN_LOOP_FIELD_MODE = -3,
    DIAGNOSTICS_MODE = -2,
    COGGING_COMPENSATION_RECORDING_MODE = -1,
    NO_MODE_ASSIGNED = 0,
    PROFILE_POSITION_MODE = 1,
    PROFILE_VELOCITY_MODE = 3,
    TORQUE_PROFILE_MODE = 4,
    HOMING_MODE = 6,
    CYCLIC_SYNC_POSITION_MODE = 8,
    CYCLIC_SYNC_VELOCITY_MODE = 9,
    CYCLIC_SYNC_TORQUE_MODE = 10
}
export declare const modesOfOperationOptions: {
    'Cyclic synchronous output torque mode': ModesOfOperation;
    'Cyclic synchronous output velocity mode': ModesOfOperation;
    'Cyclic synchronous output position mode': ModesOfOperation;
    'Profile output velocity mode': ModesOfOperation;
    'Profile output position mode': ModesOfOperation;
    'System Identification Mode': ModesOfOperation;
    'Open loop field mode': ModesOfOperation;
    'Diagnostics mode': ModesOfOperation;
    'Cogging compensation recording mode': ModesOfOperation;
    'No mode assigned': ModesOfOperation;
    'Profile position mode': ModesOfOperation;
    'Profile velocity mode': ModesOfOperation;
    'Torque profile mode': ModesOfOperation;
    'Homing mode': ModesOfOperation;
    'Cyclic synchronous position mode': ModesOfOperation;
    'Cyclic synchronous velocity mode': ModesOfOperation;
    'Cyclic synchronous torque mode': ModesOfOperation;
};
