import { BDSingletProperty } from '../properties/index.js';
import { BDObject } from './generic/object.js';
import { ApplicationTag, EngineeringUnits } from '@innovation-system/node-bacnet';
export interface BDAnalogInputOpts {
    name: string;
    unit: EngineeringUnits;
    writable?: boolean;
    description?: string;
    minPresentValue?: number;
    maxPresentValue?: number;
    presentValue?: number;
    covIncrement?: number;
}
/**
 * Implements a BACnet Analog Input object
 *
 * The Analog Input object represents a physical or virtual analog input source such as a
 * temperature sensor, pressure sensor, or other analog measurement device. This object
 * type provides a standard way to represent analog inputs in BACnet systems.
 *
 * Required properties according to the BACnet specification:
 * - Object_Identifier (automatically added by BACnetObject)
 * - Object_Name (automatically added by BACnetObject)
 * - Object_Type (automatically added by BACnetObject)
 * - Present_Value (read-only unless Out_Of_Service is true)
 * - Status_Flags
 * - Event_State
 * - Out_Of_Service
 * - Units
 * - Reliability (optional but commonly included)
 *
 * @extends BDObject
 */
export declare class BDAnalogInput extends BDObject {
    /**
     * The current value of the analog input
     *
     * This property represents the current value of the analog input in the
     * units specified by the engineeringUnit property. It's read-only unless
     * outOfService is set to true.
     */
    readonly presentValue: BDSingletProperty<ApplicationTag.REAL>;
    readonly maxPresentValue: BDSingletProperty<ApplicationTag.REAL>;
    readonly minPresentValue: BDSingletProperty<ApplicationTag.REAL>;
    /**
     * The engineering units for the present value
     *
     * This property specifies the units of measurement for the present value,
     * such as degrees Celsius, Pascal, etc.
     */
    readonly engineeringUnit: BDSingletProperty<ApplicationTag.ENUMERATED, EngineeringUnits>;
    readonly covIncrement: BDSingletProperty<ApplicationTag.REAL>;
    /**
     * Creates a new BACnet Analog Input object
     */
    constructor(instance: number, opts: BDAnalogInputOpts);
}
//# sourceMappingURL=analoginput.d.ts.map