import type { RedirectResult } from '../../../../context/session_context.ts';
import type { ByteSource } from '../../../../io/types.ts';
import type { CallStack } from '../../../../shell/call_stack.ts';
import type { ParseScope } from '../../../../shell/parse/scope.ts';
import type { MountRegistry } from '../../../mount/registry.ts';
import type { SessionState } from '../../../session/session.ts';
import type { BuiltinCall, ExecuteStringFn } from '../types.ts';
/**
 * Run the `command` builtin (`command [-pVv] name [arg ...]`).
 *
 * Without `-v`/`-V` it runs the target ignoring any shell function of the
 * same name (bash's function bypass): the name is masked in the session
 * function table for the inner run so a shadowing function is skipped
 * while builtins and mount commands still resolve. Already expanded
 * operands are re-joined with shellJoin so they survive re-parsing as one
 * token each; the pipe stdin flows to the inner command. `-p` is accepted
 * but inert (the default PATH is the one PATH there is) and the last of
 * `-v`/`-V` wins.
 */
export declare function handleCommandBuiltin(executeFn: ExecuteStringFn, args: readonly string[], session: SessionState, registry: MountRegistry, stdin?: ByteSource | null, callStack?: CallStack | null, parser?: ParseScope): Promise<RedirectResult>;
/** The `command` arm. */
export declare function commandBuiltin(call: BuiltinCall): Promise<RedirectResult>;
//# sourceMappingURL=command.d.ts.map