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 { EvaluatorEventData } from './ActorEvaluator';
import { ActorBuilderNode } from '../../../../../scene/utils/ActorsManager';
import { PersistedConfigBaseJsData } from '../_BaseJsPersistedConfig';
export interface ActorFunctionData extends SingleBodyFunctionData {
    eventDatas: EvaluatorEventData[];
}
export interface ActorPersistedConfigBaseJsData extends PersistedConfigBaseJsData {
    functionBody: string;
    variableNames: string[];
    variables: SerializedVariable<SerializedVariableType>[];
    functionNames: Array<keyof NamedFunctionMap>;
    serializedParamConfigs: JsParamConfigJSON<ParamType>[];
    eventDatas: EvaluatorEventData[];
}
export declare class ActorPersistedConfig extends BasePersistedConfig {
    protected node: ActorBuilderNode;
    constructor(node: ActorBuilderNode);
    toData(): Promise<ActorPersistedConfigBaseJsData | undefined>;
    load(data: ActorPersistedConfigBaseJsData): void;
}
