import { Asset } from './Asset.js'; import type { IAssetCache } from './AssetCache.js'; import type { AssetSettings } from './pipes/PipeSystem.js'; export interface AssetWatcherOptions { entryPath: string; assetCache?: IAssetCache; assetSettingsData?: AssetSettings[]; ignore?: string | string[]; onUpdate: (root: Asset) => Promise; onComplete: (root: Asset) => void; } export interface ChangeData { type: string; file: string; } export declare class AssetWatcher { private _watcher; private _assetHash; private _changes; private _entryPath; private _root; private _timeoutId; private _onUpdate; private _updatingPromise; private _onComplete; private _ignore; private _assetSettingsData; private _initialised; private _assetCache; constructor(options: AssetWatcherOptions); get root(): Asset; private _init; run(): Promise; watch(): Promise; stop(): Promise; private _runUpdate; private _updateAssets; private _applyChangeToAssets; private _cleanAssets; private _cleanAssetsRec; private _collectAssets; private _ensureDirectory; }