import type { BuilderContextInterface, BuilderRenderState } from '../../context/types'; import { getUserAttributes } from '../track/helpers'; export type TrackingContext = { apiKey: string | null; canTrack?: boolean; contentId?: string; variationId?: string; }; export type EvaluatorArgs = Omit & { event?: Event; isExpression?: boolean; trackingContext?: TrackingContext; }; export type BuilderGlobals = { isEditing: boolean | undefined; isBrowser: boolean | undefined; isServer: boolean | undefined; getUserAttributes: typeof getUserAttributes; trackConversion: (amount?: number, customProperties?: Record) => void; }; export type ExecutorArgs = Pick & { code: string; builder: BuilderGlobals; event: Event | undefined; }; export type Executor = (args: ExecutorArgs) => any; export type FunctionArguments = ReturnType; export declare const getFunctionArguments: ({ builder, context, event, state }: Pick & { state: BuilderRenderState; }) => [string, Event | BuilderRenderState | import("../../context/types").BuilderRenderContext | BuilderGlobals][]; export declare const getBuilderGlobals: (trackingContext?: TrackingContext) => BuilderGlobals; export declare const parseCode: (code: string, { isExpression }: Pick) => string; export declare function flattenState({ rootState, localState, rootSetState }: { rootState: Record; localState: Record | undefined; rootSetState: ((rootState: BuilderRenderState) => void) | undefined; }): BuilderRenderState;