export declare const statuswordBitNames: string[];
export declare const controlwordBitNames: string[];
export declare const supportedDriveModesBitNames: string[];
/**
 * An array of status bit names for the Circulo feedback encoder, ordered according to the specific
 * register sequence required by the firmware. Each entry corresponds to a bit in the encoder's status
 * registers, with the name and description of the error if available, or 'r = reserved' if not defined.
 * The array is padded with 'r = reserved' entries to ensure a total length of 32 bits.
 *
 * The bit names are constructed by iterating over the registers in the order specified by `registerOrder`
 * ([1, 2, 0]), and for each register, iterating through its bits. If a bit has an associated error with a
 * name and description in `circuloEncoderRegisterErrors`, it is included in the format `${error.name} = ${error.description}`.
 * Otherwise, 'r = reserved' is used.
 *
 * @remarks
 * - The ordering of registers and bits is critical to match the firmware's expected bit order.
 * - The source of error names and descriptions is the `circuloEncoderRegisterErrors` mapping.
 * - The final array always contains exactly 32 entries.
 */
export declare const circuloFeedbackEncoderStatusBitNames: string[];
export declare const safetyStatuswordBitsV1Array: string[];
export declare const safetyStatuswordBitsV2Array: string[];
export declare const digitalInputsBitNames: string[];
export declare const digitalOutputsBitNames: string[];
/**
 * Creates an array of {@link BitsViewEntry} objects describing the Safety Statusword
 * object (0x6621) byte-wise bit fields.
 *
 * Each entry represents one byte (8 bits) of the Safety Statusword and contains:
 * - CANopen object index (0x6621)
 * - Subindex corresponding to the byte position (1-based)
 * - Bit size (8)
 * - Bit names for that byte
 * - Optional SMM Launchwave version information
 * - A generated label in the format:
 *   "Safety Statusword Byte X" or
 *   "Safety Statusword V<version> Byte X"
 *
 * If `parameterStructureVersion` is provided, it is converted to the corresponding
 * Launchwave version using `smmParameterStructureVersionToLaunchwaveVersion()`.
 * The resulting version is included in the returned entries and in the generated labels.
 *
 * If `parameterStructureVersion` is not provided, the entries are generated
 * for non-SMM devices and no Launchwave version is associated with them.
 *
 * @param parameterStructureVersion - Optional SMM parameter structure version.
 * If provided, version-specific bit names and labels are generated.
 *
 * @returns Array of {@link BitsViewEntry} objects representing the Safety Statusword bytes.
 */
export declare function createSafetyStatuswordBitsViewEntries(parameterStructureVersion?: number): BitsViewEntry[];
/**
 * Collection of {@link BitsViewEntry} definitions describing commonly used
 * parameter bit fields for the motion master client.
 *
 * Each entry specifies:
 * - CANopen object index and subindex
 * - Bit size (in bits)
 * - Associated bit name array
 * - Human-readable label used in the UI
 *
 * The collection includes:
 * - Encoder feedback status objects
 * - Safety module input diagnostics
 * - CiA 402 Controlword (0x6040) and Statusword (0x6041)
 * - Digital inputs and outputs (0x60FD, 0x60FE)
 * - Supported drive modes (0x6502)
 * - Safety Statusword (0x6621) entries
 *
 * Safety Statusword entries are generated dynamically using
 * {@link createSafetyStatuswordBitsViewEntries}:
 * - `undefined` → Non-SMM devices
 * - `0x0041` → SMM Launchwave V1
 * - `0x0203` → SMM Launchwave V2
 *
 * This array is intended to serve as the central registry of bit-field
 * definitions used for parameter bit visualization.
 */
export declare const parameterBitsViewEntries: BitsViewEntry[];
/**
 * Describes a bit-field view definition for a specific CANopen object entry.
 *
 * A {@link BitsViewEntry} defines how a parameter should be interpreted and
 * visualized as individual bits in the UI.
 *
 * Properties:
 * - `index` — CANopen object index (e.g. 0x6040).
 * - `subindex` — CANopen object subindex.
 * - `size` — Bit width of the value (e.g. 1, 8, 16, 32).
 * - `names` — Array of bit names. The array length should correspond to `size`,
 *   where each element represents the label of a bit position.
 * - `label` — Human-readable label used for display in the UI.
 * - `smmLwVersion` — Optional SMM Launchwave version. If defined, the entry
 *   applies only to that specific SMM version.
 */
export interface BitsViewEntry {
    index: number;
    subindex: number;
    size: number;
    names: string[];
    label: string;
    smmLwVersion?: number;
}
/**
 * Finds a `BitsViewEntry` from the parameter bits view registry based on
 * a given CANopen object index and subindex, optionally filtering by
 * a specific parameter structure version.
 *
 * This function supports both standard (non-SMM) and SMM parameters:
 * - For non-SMM lookups (no `parameterStructureVersion` provided), it returns
 *   entries without a SMM LW version.
 * - For SMM lookups (`parameterStructureVersion` provided), it maps the
 *   structure version to a SMM LW version and returns the entry matching
 *   that version.
 *
 * @param index - The CANopen object index of the parameter.
 * @param subindex - The CANopen object subindex of the parameter.
 * @param parameterStructureVersion - Optional version of the parameter structure
 *                                    used to select the correct SMM LW entry.
 *
 * @returns The matching `BitsViewEntry` if found; otherwise, `undefined`.
 */
export declare function findBitsViewEntry(index: number, subindex: number, parameterStructureVersion?: number): BitsViewEntry | undefined;
/**
 * Converts a SMM parameter structure version to the corresponding Launchwave version.
 *
 * @param version - The SMM parameter structure version as a number.
 * @returns The Launchwave version: returns 1 if the version is less than 0x0203, otherwise returns 2.
 */
export declare function smmParameterStructureVersionToLaunchwaveVersion(version: number): number;
