import type { ChargingStationCapabilityEnumType, ChargingStationDto, ChargingStationParkingRestrictionEnumType, ConnectorDto, EvseDto, LocationDto, Point, TenantDto, TransactionDto } from '@citrineos/base';
import { OCPPVersion } from '@citrineos/base';
import { Model } from 'sequelize-typescript';
import { SetNetworkProfile } from './SetNetworkProfile.js';
import { StatusNotification } from './StatusNotification.js';
import { InstalledCertificate } from '../Certificate/index.js';
/**
 * Represents a charging station.
 * Currently, this data model is internal to CitrineOS. In the future, it will be analogous to an OCPI ChargingStation.
 */
export declare class ChargingStation extends Model implements ChargingStationDto {
    static readonly MODEL_NAME: string;
    id: string;
    isOnline: boolean;
    protocol?: OCPPVersion | null;
    latestOcppMessageTimestamp?: string | null;
    chargePointVendor?: string | null;
    chargePointModel?: string | null;
    chargePointSerialNumber?: string | null;
    chargeBoxSerialNumber?: string | null;
    firmwareVersion?: string | null;
    iccid?: string | null;
    imsi?: string | null;
    meterType?: string | null;
    meterSerialNumber?: string | null;
    /**
     * [longitude, latitude]
     */
    coordinates?: Point | null;
    floorLevel?: string | null;
    parkingRestrictions?: ChargingStationParkingRestrictionEnumType[] | null;
    capabilities?: ChargingStationCapabilityEnumType[] | null;
    /**
     * In OCPP 1.6, StatusNotifications can be sent with a connectorId of 0 to report the status of the whole charging station.
     * Some charging stations instead use it in ways that cannot be applied to all connectors
     * (such as sending Available when at least one connector is available, while others are charging).
     * When true, this flag indicates that StatusNotifications with connectorId 0 should be used to update all connector statuses.
     * When false, StatusNotifications with connectorId 0 should be ignored.
     */
    use16StatusNotification0: boolean;
    locationId?: number | null;
    statusNotifications?: StatusNotification[] | null;
    installedCertificates?: InstalledCertificate[];
    transactions?: TransactionDto[] | null;
    /**
     * The business Location of the charging station. Optional in case a charging station is not yet in the field, or retired.
     */
    location?: LocationDto;
    networkProfiles?: SetNetworkProfile[] | null;
    evses?: EvseDto[] | null;
    connectors?: ConnectorDto[] | null;
    tenantId: number;
    tenant?: TenantDto;
    static setDefaultTenant(instance: ChargingStation): void;
    constructor(...args: any[]);
}
