export type Shape = "flat" | "geojson" | "columnar"; export interface CompileOptions { shape: Shape; /** The bound datum parameter name. Default "d" (attribute mode). */ paramName?: string; /** `$field` sugar is attribute-only per spec; script-block mode disables it. */ allowDollarSugar?: boolean; /** Used only for the dev-mode `//# sourceURL` and error messages. */ debugName?: string; /** e.g. "getFillColor" — enables a best-effort static output-shape check. */ accessorName?: string; } export interface CompiledExpression { /** The validated, rewritten JS expression text (what `new Function` receives). */ jsBody: string; /** * The ready-to-use accessor — `(d) => value` for row shapes. Columnar * accessors never read `d`; they read `info.data.columns.[info.index]` * from deck.gl's second accessor argument (its non-iterable-data calling * convention), which is why `info` is part of the signature. */ fn: (d: unknown, info?: { index: number; data: unknown; }) => unknown; } export declare function compileExpression(source: string, opts: CompileOptions): CompiledExpression;