import type { FlatBinary, FlatNode, FlatUnary } from './types.ts';
/**
 * test's own reading of its words, by bash's arity rules: which words each
 * operator takes, and where a grammar error stands. `name` is the test's
 * name, for its diagnostics; `words` its words, brackets excluded.
 *
 * The evaluator runs this reading and the gate reads a test's file
 * operands off it (`fileOperands`), so both give each word the one role
 * test gives it: in `test -e -o yes` the `-o` joins two strings, and only
 * the word after a file operator it takes is a file.
 */
export declare function flatShape(name: string, words: readonly string[]): FlatNode;
/** The operator tests of a reading, in the order they are reached. */
export declare function flatLeaves(node: FlatNode): Generator<FlatUnary | FlatBinary>;
//# sourceMappingURL=shape.d.ts.map