import { BasePersistedConfig } from '../../../../utils/BasePersistedConfig';
import { SingleBodyFunctionData } from '../_Base';
import { SerializedVariable, SerializedVariableType } from '../_BaseJsPersistedConfigUtils';
import { NamedFunctionMap } from '../../../../../poly/registers/functions/All';
import { JsParamConfigJSON } from '../../utils/JsParamConfig';
import { ParamType } from '../../../../../poly/ParamType';
import { SingleBodyPersistedConfigBaseJsData } from '../_BaseJsPersistedConfig';
import { JsConnectionPointType } from '../../../../utils/io/connections/Js';
import type { InstanceBuilderSopNode } from '../../../../sop/InstanceBuilder';
import type { EntityBuilderSopNode } from '../../../../sop/EntityBuilder';
export interface EntityBuilderFunctionDataAttributeDataItem {
    attribName: string;
    attribType: JsConnectionPointType;
}
export interface EntityBuilderFunctionDataAttributeDataReadWrite {
    read: EntityBuilderFunctionDataAttributeDataItem[];
    write: EntityBuilderFunctionDataAttributeDataItem[];
}
export interface EntityBuilderFunctionData extends SingleBodyFunctionData {
    attributesData: EntityBuilderFunctionDataAttributeDataReadWrite;
}
export interface EntityBuilderPersistedConfigBaseJsData extends SingleBodyPersistedConfigBaseJsData {
    functionBody: string;
    variableNames: string[];
    variables: SerializedVariable<SerializedVariableType>[];
    functionNames: Array<keyof NamedFunctionMap>;
    serializedParamConfigs: JsParamConfigJSON<ParamType>[];
    attributesData: EntityBuilderFunctionDataAttributeDataReadWrite;
}
export declare class BaseEntityBuilderPersistedConfig extends BasePersistedConfig {
    protected node: EntityBuilderSopNode | InstanceBuilderSopNode;
    constructor(node: EntityBuilderSopNode | InstanceBuilderSopNode);
    toData(): Promise<EntityBuilderPersistedConfigBaseJsData | undefined>;
    load(data: EntityBuilderPersistedConfigBaseJsData): void;
}
