export declare function extensionsList(projectRoot: string): Promise<void>;
export declare function extensionsStatus(projectRoot: string): Promise<void>;
export declare function extensionsEnable(projectRoot: string, names: string[]): Promise<void>;
export declare function extensionsDisable(projectRoot: string, names: string[]): Promise<void>;
export declare function extensionsAdd(projectRoot: string, name: string, from: string): Promise<void>;
export declare function extensionsRemove(projectRoot: string, names: string[]): Promise<void>;
export declare function extensionsUpdate(projectRoot: string, names?: string[]): Promise<void>;
export declare function extensionsSuggest(projectRoot: string): Promise<void>;
export declare function autoEnableExtensions(projectRoot: string): Promise<void>;
/**
 * Whether an extension's `.env` file is functionally consumed (vs
 * reference-only). Today the signal is "has auth-required MCP headers" —
 * extensions with auth populate `.mcp.json` from `.env`, so a missing
 * `.env` means the MCP server can't be wired. Extensions without that
 * (local-telemetry, whose MCP is wired dynamically by the daemon; any
 * no-MCP extension) treat `.env.example` as documentation.
 *
 * Exported so `update.ts` can gate its inline hint on the same rule.
 */
export declare function envIsFunctional(name: string): boolean;
