/**
 * The next point in the one order commands and listing writes share.
 *
 * A sequence rather than a clock: two events in the same clock tick still
 * come out ordered, so "written after this command started" is exact.
 */
export declare function tick(): number;
/**
 * When the running command started, or null outside any command.
 *
 * On an isolating runtime that is the current task's stamp. On the
 * fallback storage another command's frame can sit on top, so this
 * answers the latest live stamp: a later stamp trusts fewer listings,
 * which fails toward a re-list rather than toward a stale one.
 */
export declare function commandStarted(): number | null;
/**
 * The running command's own stamp, for a check that it fetched a listing.
 *
 * On an isolating runtime that is `commandStarted`. On the fallback storage
 * the latest live stamp may be another command's, so with more than one
 * command live this answers null: no listing is proven the caller's own. A
 * replayed scope (a command's output drained later) repeats its own stamp,
 * so stamps are counted once each. Mirrors Python's `sole_command_started`.
 */
export declare function soleCommandStarted(): number | null;
/**
 * Mark one command's run, so a fresh listing it writes can be trusted.
 *
 * Entered before the command's words expand, so its own globs count. A
 * nested command (a `$(...)`, a function body) gets its own later stamp,
 * and the outer one comes back when it ends.
 */
export declare function runInCommandScope<T>(fn: () => Promise<T>): Promise<T>;
//# sourceMappingURL=scope.d.ts.map