import { Effect } from "effect"; import { type AstNode, CodeModeFunction, CoercionFunction, ErrorConstructorReference, GlobalMethodReference, GlobalNamespace, IntrinsicReference, JsonMethodReference, PromiseCapabilityFunction, PromiseNamespace, UriFunction } from "./model.js"; import { CodeModePromise } from "../values.js"; import { type SyncIteratorRunner } from "./iterator.js"; export type CallbackRunner = { readonly invokeFunction: (fn: CodeModeFunction, args: Array) => Effect.Effect; readonly invokeCallable: (callable: unknown, args: Array, node: AstNode) => Effect.Effect; readonly settlePromise: (promise: CodeModePromise) => Effect.Effect; }; export type SupportedCallback = CodeModeFunction | CoercionFunction | UriFunction | PromiseCapabilityFunction | GlobalMethodReference | JsonMethodReference | IntrinsicReference | ErrorConstructorReference | GlobalNamespace | PromiseNamespace; export declare const isSupportedCallback: (value: unknown) => value is SupportedCallback; export declare const invokeIntrinsic: (runner: CallbackRunner, ref: IntrinsicReference, args: Array, node: AstNode) => Effect.Effect; export declare const invokeGlobalMethod: (ref: GlobalMethodReference, args: Array, node: AstNode) => unknown; export declare const arrayStatics: Set; export declare const invokeArrayFrom: (runner: CallbackRunner & SyncIteratorRunner, args: Array, node: AstNode) => Effect.Effect; export declare const invokeGroupBy: (runner: CallbackRunner & SyncIteratorRunner, namespace: "Map" | "Object", args: Array, node: AstNode) => Effect.Effect; export declare const applyCollectionCallback: (runner: CallbackRunner, callback: unknown, name: string, node: AstNode) => ((args: Array) => Effect.Effect);