import type { IDeviceModelRepository } from '@citrineos/data';
export declare class DeviceModelService {
    protected _deviceModelRepository: IDeviceModelRepository;
    constructor(deviceModelRepository: IDeviceModelRepository);
    /**
     * Fetches the ItemsPerMessage attribute from the device model.
     * Returns null if no such attribute exists.
     * @param stationId Charging station identifier.
     * @returns ItemsPerMessage as a number or null if no such attribute exists.
     */
    getItemsPerMessageByComponentAndVariableInstanceAndStationId(componentName: string, variableInstance: string, tenantId: number, stationId: string): Promise<number | null>;
    /**
     * Fetches the BytesPerMessage attribute from the device model.
     * Returns null if no such attribute exists.
     * It is possible for there to be multiple BytesPerMessage attributes if component instances or evses
     * are associated with alternate options. That structure is not supported by this logic, and that
     * structure is a violation of Part 2 - Specification of OCPP 2.0.1.
     * In that case, the first attribute will be returned.
     * @param stationId Charging station identifier.
     * @returns BytesPerMessage as a number or null if no such attribute exists.
     */
    getBytesPerMessageByComponentAndVariableInstanceAndStationId(componentName: string, variableInstance: string, tenantId: number, stationId: string): Promise<number | null>;
}
