import type React from 'react';
export declare type DeviceKind = 'smart' | 'dumb' | 'integrated';
export declare type DeviceStatus = 'active' | 'inactive';
export declare type DeviceProfileScene = 'profile' | 'instance';
export declare type I18nText = string | {
    original?: string;
    'zh-CN'?: string;
    'zh-HK'?: string;
    en?: string;
    [key: string]: any;
};
export interface DeviceProfileTemplateItem {
    id: number;
    code: string;
    model_code?: string;
    name: I18nText;
    description?: I18nText;
    setting?: Record<string, unknown>;
    status: DeviceStatus;
    updated_at: string;
}
export interface DeviceModelItem {
    id: number;
    code: string;
    name: I18nText;
    active_profile_templates?: DeviceProfileTemplateItem[];
}
export interface DeviceTypeItem {
    id: number;
    kind: DeviceKind;
    code: string;
    icon: string | null;
    name: I18nText;
    description: I18nText;
    data: Record<string, unknown> | null;
    status: DeviceStatus;
    sort: number;
    created_at: string;
    updated_at: string;
    active_models?: DeviceModelItem[];
}
export interface SaasDeviceProfileProps {
    className?: string;
    style?: React.CSSProperties;
    scene?: DeviceProfileScene;
    showBackButton?: boolean;
}
/** 表格行（基于 DeviceProfileItem + 关联 model 信息打平） */
export interface ProfileRow {
    id: number;
    name: string;
    modelCode: string;
    modelName: string;
    status: DeviceStatus;
    updated_at: string;
    _deviceModel?: DeviceModelItem;
    _deviceType?: DeviceTypeItem;
    _raw?: DeviceProfileItem;
}
/** 设备配置（GET /tenant/device/profile 列表项） */
export interface DeviceProfileItem {
    id: number;
    tenant_id: number;
    model_code: string;
    template_code: string;
    name: I18nText;
    description: I18nText;
    setting: Record<string, unknown> | null;
    status: DeviceStatus;
    created_at: string;
    updated_at: string;
    deleted_at: string | null;
}
export interface ListProfileParams {
    page: number;
    size: number;
    search?: string;
    name?: string;
    order_by?: string;
    type_code?: string;
    model_code?: string;
    status?: DeviceStatus;
}
export interface ListProfileResponse {
    list: DeviceProfileItem[];
    count: number;
    page: number;
    size: number;
}
/** 工作区（GET /tenant/device with=workarea 的 workarea 关系字段） */
export interface WorkareaItem {
    id: number;
    name: I18nText;
}
/** 关联设备实例（精简到 UI 需要） */
export interface LinkedDeviceItem {
    id: number;
    workarea_id: number;
    type_kind: string;
    type_code: string;
    model_code: string;
    profile_id: number;
    number: string;
    name: I18nText;
    workarea?: WorkareaItem;
}
/** GET /tenant/device 关联设备查询参数 */
export interface ListLinkedDevicesParams {
    profile_id: number;
    type_kind: string;
    with?: string[];
}
/** 多语言字典（en/zh-CN/zh-HK/ja/pt） */
export declare type LangDict = {
    original?: string;
    en?: string;
    'zh-CN'?: string;
    'zh-HK'?: string;
    ja?: string;
    pt?: string;
};
/** POST /tenant/device/profile 入参 */
export interface CreateProfilePayload {
    model_code: string;
    template_code: string;
    name: LangDict;
    description: LangDict;
    setting: Record<string, unknown> | null;
    status: DeviceStatus;
}
export interface DeviceStatusMeta {
    value: DeviceStatus;
    /** i18n key,调用侧用 getText(labelKey) 取多语言文案 */
    labelKey: string;
    /** antd Tag 的 color 取值,缺省走 antd 默认灰色 */
    tagColor?: string;
}
export declare const DEVICE_STATUSES: DeviceStatusMeta[];
export interface ProfileTemplateItem {
    id: number;
    model_code: string;
    modelCode: string;
    code: string;
    name: I18nText;
    description: I18nText;
    status: DeviceStatus;
    setting?: Record<string, unknown>;
    created_at: string;
    updated_at: string;
    deleted_at?: string | null;
    _deviceModel?: DeviceModelItem;
    _deviceType?: DeviceTypeItem;
    _raw?: DeviceProfileItem;
}
export interface ProfileTemplateFormValues {
    name: I18nText;
    type_code: string;
    model_code: string;
    description?: I18nText;
    status: DeviceStatus;
}
export interface DeviceTypeItem {
    id: number;
    kind: DeviceKind;
    code: string;
    icon: string | null;
    name: I18nText;
    description: I18nText;
    data: Record<string, unknown> | null;
    status: DeviceStatus;
    sort: number;
    created_at: string;
    updated_at: string;
    active_models?: DeviceModelItem[];
}
export interface DeviceModelItem {
    id: number;
    brand_code: string;
    type_code: string;
    code: string;
    name: I18nText;
    description: I18nText;
    data: any;
    status: DeviceStatus;
    sort: number;
    brand?: any;
    created_at: string;
    updated_at: string;
}
export declare const validateI18nRequired: (message: string) => (_rule: unknown, value: I18nText | undefined) => Promise<void>;
