import type { RedirectResult } from '../../../../context/session_context.ts';
import type { ByteSource } from '../../../../io/types.ts';
import { CallStack } from '../../../../shell/call_stack.ts';
import type { JobConsole } from '../../../../shell/console/index.ts';
import type { SessionState } from '../../../session/session.ts';
import type { BuiltinCall, ExecuteStringFn } from '../types.ts';
/**
 * Run the words as a line of the caller's own: in its frame, so `$1`,
 * `local`, `shift` and `return` act on the function the caller is in, and
 * a `break`, `continue` or `exit` on its loops and shell. Mirrors Python's
 * handle_eval.
 */
export declare function handleEval(executeFn: ExecuteStringFn, args: string[], session: SessionState, stdin?: ByteSource | null, sink?: JobConsole, callStack?: CallStack): Promise<RedirectResult>;
/** The `eval` arm. */
export declare function evalBuiltin(call: BuiltinCall): Promise<RedirectResult>;
//# sourceMappingURL=eval.d.ts.map