/** * Post-update extension sync — refresh lockfile-managed npm / store extensions. */ import type { Config } from '../config/schema.js'; import type { UpdateChannel } from '../infra/update-channels.js'; export type ExtensionUpdateLogger = { info?: (message: string) => void; warn?: (message: string) => void; error?: (message: string) => void; }; export type ExtensionUpdateStatus = 'updated' | 'unchanged' | 'skipped' | 'error'; export type ExtensionUpdateTask = { extensionId: string; status: ExtensionUpdateStatus; message: string; currentVersion?: string; nextVersion?: string; }; export type ExtensionChannelSyncSummary = { skippedBundled: string[]; warnings: string[]; }; export type ExtensionPostUpdateResult = { status: 'ok' | 'error' | 'skipped'; tasks: ExtensionUpdateTask[]; channelSync?: ExtensionChannelSyncSummary; }; export declare function syncExtensionsForUpdateChannel(params: { channel: UpdateChannel; config?: Config; logger?: ExtensionUpdateLogger; }): Promise<{ skipIds: Set; summary: ExtensionChannelSyncSummary; }>; export declare function updateNpmInstalledExtensions(params: { extensionIds?: string[]; skipIds?: Set; config?: Config; timeoutMs?: number; logger?: ExtensionUpdateLogger; }): Promise<{ tasks: ExtensionUpdateTask[]; status: 'ok' | 'error' | 'skipped'; }>; export declare function runPostUpdateExtensionSync(params: { channel: UpdateChannel; config?: Config; timeoutMs?: number; logger?: ExtensionUpdateLogger; }): Promise;