export interface IconSyncResult { /** Files created or refreshed, relative to `/icons`. */ written: string[]; /** Files left alone because the consumer had edited them. */ skipped: string[]; /** Files removed because they are no longer part of the packaged set. */ pruned: string[]; /** * True on the first sync into a site that predates the sidecar. See * the adoption note in `syncIconAssets` — callers should surface this * so the one-time overwrite is visible rather than silent. */ adopted: boolean; } export interface IconSyncOptions { /** Overwrite consumer edits and restore the packaged version. */ force?: boolean; /** * Also delete SVGs under `icons/{stacks,platforms}` that are not in * the packaged set. Off by default — a consumer's own icons live * there too. `grove icons sync --force` turns it on. */ prune?: boolean; /** Report what would change without touching the filesystem. */ dryRun?: boolean; } /** * Copy `sourceIconsDir` into `/icons`, leaving any file the * consumer has edited untouched. * * `sourceIconsDir` must contain the `.grove-icons.json` manifest that * `scripts/sync-icons.mjs` generates; without it this is a no-op. */ export declare function syncIconAssets(sourceIconsDir: string, publicDir: string, options?: IconSyncOptions): Promise; //# sourceMappingURL=sync-icons.d.ts.map