"use strict";
/* Socket Lib - Built with rolldown */
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
const require_node_module = require('../node/module.js');

//#region src/smol/path.ts
/**
* @file Lazy-loader for socket-btm's `node:smol-path` — native fast paths for
*   the hot path-string primitives (`dirname`, `normalize`, …) and, per the
*   socket-btm `node-smol-path` Phase 4 plan, batched filesystem ops (`access`,
*   an in-C++ `findUp`). Returns `undefined` on stock Node, non-Node runtimes,
*   and on socket-btm binaries that haven't shipped the binding yet; callers
*   fall back to the JS implementation. Result is cached. The binding does not
*   exist yet (the plan is unbuilt) — this accessor is the seam so that when it
*   lands, only this file changes and `paths/walk`, `fs/access`, `fs/find-up`
*   light up natively. Today `getSmolPath()` is always `undefined` and the JS
*   paths run.
*/
let _smolPath;
let _smolPathProbed = false;
/**
* Returns the `node:smol-path` binding when running on a smol Node binary that
* ships it; otherwise `undefined`. Cached across calls.
*
* @returns The native binding, or `undefined` to signal "use the JS fallback".
*/
/*@__NO_SIDE_EFFECTS__*/
function getSmolPath() {
	if (!_smolPathProbed) {
		_smolPathProbed = true;
		/* c8 ignore start - smol Node binary only. */
		if (/* @__PURE__ */ require_node_module.isNodeBuiltin("node:smol-path")) _smolPath = require("node:smol-path");
	}
	return _smolPath;
}

//#endregion
exports.getSmolPath = getSmolPath;