/**
 * Native extension manifests — single source of truth for built-in extensions.
 *
 * Native extensions are loaded by default on all machines unless explicitly
 * disabled via `Settings.disabledNativeExtensions`. Each extension has a
 * stable `id` used in settings, a human-readable label for the landing UI,
 * and an optional file path for extensions that live as separate files.
 *
 * Extensions with empty `entryPath` are "core" features implemented directly
 * in the agent runtime (e.g., memory). They don't need a file to load, but
 * they still appear in the settings panel so users can see and toggle them.
 */
export interface NativeExtensionManifest {
    /** Stable identifier used in settings (e.g. "memory", "browser"). */
    id: string;
    /** Human-readable name shown in the landing settings UI. */
    label: string;
    /** One-line description for tooltips. */
    description: string;
    /** Category for grouping in the settings panel. */
    category: "core" | "automation" | "integration";
    /**
     * Path to the extension entry file, relative to the CLI's extensions directory.
     * Empty string means the extension is built into the runtime (no file to load).
     */
    entryPath: string;
    /** Whether this extension is enabled by default on all machines. */
    defaultEnabled: boolean;
    /** Optional tags for filtering. */
    tags?: string[];
}
/**
 * Canonical list of native extensions.
 *
 * To add a new native extension, add its manifest here. The extension will
 * automatically appear in the landing settings panel and be loaded by default
 * unless `defaultEnabled: false`.
 */
export declare const NATIVE_EXTENSIONS: NativeExtensionManifest[];
/**
 * Look up a native extension by id. Returns undefined for unknown ids.
 */
export declare function getNativeExtension(id: string): NativeExtensionManifest | undefined;
/**
 * Get the list of native extension entry paths that should be loaded,
 * respecting a set of disabled extension ids.
 */
export declare function getEnabledNativeExtensionPaths(disabledIds: Set<string>): string[];
/**
 * Build the payload for the `native_extensions_info` relay frame.
 */
export declare function buildNativeExtensionsInfo(disabledIds: Set<string>): Array<{
    id: string;
    label: string;
    description: string;
    category: string;
    enabled: boolean;
    tags?: string[];
}>;
//# sourceMappingURL=native-extensions.d.ts.map