/**
 * Shell-layer extension UI contract.
 *
 * Extends the headless ExtensionUIContext with a `custom()` method that
 * renders arbitrary TUI components (overlays, approval prompts, etc.).
 * The `hasCustomExtensionUI` guard narrows an ExtensionContext to this
 * richer interface at runtime.
 */
export function hasCustomExtensionUI(ctx) {
    return Boolean(ctx?.hasUI && 'custom' in ctx.ui && typeof ctx.ui.custom === 'function');
}
//# sourceMappingURL=extension-ui.js.map