import { type ByteSource, IOResult } from '../../io/types.ts'; import type { CallStack } from '../../shell/call_stack.ts'; import { type TSNodeLike } from '../../shell/types.ts'; import { type ExecuteFn } from '../expand/node.ts'; import type { Namespace } from '../mount/namespace/namespace.ts'; import type { MountRegistry } from '../mount/registry.ts'; import type { Session } from '../session/session.ts'; import { ExecutionNode } from '../types.ts'; type Result = [ByteSource | null, IOResult, ExecutionNode]; /** * Execute one declaration statement (export/local/declare/readonly). * * The executor only reads the operands: it expands them, sorts them * into option letters, plain names and staged array literals, then * hands the result to the builtin handler that owns the keyword. The * attribute letters (`-x`, `-i`, `-l`) are stamped afterwards through * the same gated door, so `declare -rx X=1` keeps both marks. */ export declare function executeDeclaration(node: TSNodeLike, session: Session, executeFn: ExecuteFn, registry: MountRegistry, namespace: Namespace, callStack: CallStack | null): Promise; export {}; //# sourceMappingURL=declaration.d.ts.map