import type { ComponentDto, TenantDto } from '@citrineos/base';
import { OCPP2_0_1 } from '@citrineos/base';
import { Model } from 'sequelize-typescript';
import { EvseType } from './EvseType.js';
import { Variable } from './Variable.js';
export declare class Component extends Model implements OCPP2_0_1.ComponentType, ComponentDto {
    static readonly MODEL_NAME: string;
    /**
     * Fields
     */
    name: string;
    instance?: string | null;
    /**
     * Relations
     */
    evse?: EvseType;
    evseDatabaseId?: number | null;
    variables?: Variable[];
    customData?: OCPP2_0_1.CustomDataType | null;
    addVariable: (variable: Variable) => Promise<void>;
    getVariables: () => Promise<Variable[]>;
    tenantId: number;
    tenant?: TenantDto;
    static setDefaultTenant(instance: Component): void;
    constructor(...args: any[]);
}
