/**
 * This file is part of the NocoBase (R) project.
 * Copyright (c) 2020-2024 NocoBase Co., Ltd.
 * Authors: NocoBase Team.
 *
 * This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
 * For more information, please refer to: https://www.nocobase.com/agreement.
 */
import React from 'react';
import { FieldModel } from '../base/FieldModel';
/**
 * JS 字段（只读形态）：
 * - 通过 jsSettings.runJs 配置并执行 JS 代码；
 * - 支持在表格列/详情项中作为字段子模型使用；
 * - 在只读场景下可通过 ctx.value 读取当前值，ctx.record 读取当前行记录；
 * - 通过 ctx.element 直接操作渲染容器（经过 ElementProxy 包裹，带 XSS 保护）。
 */
export declare class JSFieldModel extends FieldModel {
    private _mountedOnce;
    private _lastRenderedElement?;
    private _pendingRenderedElement?;
    private _lastRunJs?;
    getInputArgs(): {
        collectionName: any;
        associationName: string;
        sourceId: any;
        filterByTk: any;
    } | {
        sourceId: any;
        filterByTk: any;
        collectionName?: undefined;
        associationName?: undefined;
    };
    /**
     * 在渲染前注入副作用：当 props.value 变化时，重新执行 jsSettings
     * 说明：fork 实例在表格逐行渲染时会复用该逻辑，确保按值更新。
     */
    useHooksBeforeRender(): void;
    /**
     * 渲染一个占位容器，供 JS 脚本写入内容
     */
    private getRunJsCode;
    private refreshRenderedElement;
    render(): React.JSX.Element;
    /**
     * 组件挂载后，如果容器引用已就绪，强制重跑一次 beforeRender flows 以把 HTML 写入当前 DOM。
     * 解决新增后因命中缓存或执行时机导致内容未写入的问题（与 JSBlock/JSItem 一致处理）。
     */
    protected onMount(): void;
}
