import type { VariableDto, TenantDto } from '@citrineos/base';
import { OCPP2_0_1 } from '@citrineos/base';
import { Model } from 'sequelize-typescript';
import { Component } from './Component.js';
import { VariableAttribute } from './VariableAttribute.js';
import { VariableCharacteristics } from './VariableCharacteristics.js';
export declare class Variable extends Model implements OCPP2_0_1.VariableType, VariableDto {
    static readonly MODEL_NAME: string;
    /**
     * Fields
     */
    name: string;
    instance?: string | null;
    /**
     * Relations
     */
    components?: Component[];
    variableAttributes?: VariableAttribute[];
    variableCharacteristics?: VariableCharacteristics;
    customData?: OCPP2_0_1.CustomDataType | null;
    addComponent: (variable: Component) => Promise<void>;
    getComponents: () => Promise<Component[]>;
    tenantId: number;
    tenant?: TenantDto;
    static setDefaultTenant(instance: Variable): void;
    constructor(...args: any[]);
}
