import type { IStateManager, PoltergeistDependencies } from './interfaces.js'; import { type Logger } from './logger.js'; import { type PoltergeistState } from './state.js'; import type { PoltergeistConfig } from './types.js'; import { type ConfigChanges } from './utils/config-diff.js'; export interface PoltergeistStartOptions { waitForInitialBuilds?: boolean; } export declare class Poltergeist { private config; private projectRoot; private configPath?; private deps; private logger; private stateManager; private processManager; private watchman?; private notifier?; private sharedNotifier?; private builderFactory; private watchmanConfigManager; private targetStates; private isRunning; private buildQueue?; private priorityEngine?; private buildSchedulingConfig; private buildQueueHooks; private watchService?; private buildCoordinator?; private statusPresenter; private debouncedScheduler; private lifecycle; private lifecycleHooks; private configReload; private paused; private pausePoll?; private lastPausedLog?; private lastChangedFiles; private readonly originalNotifier?; constructor(config: PoltergeistConfig, projectRoot: string, logger: Logger, deps: PoltergeistDependencies, configPath?: string); /** * Get the state manager instance */ getStateManager(): IStateManager; onReady(handler: () => void): void; start(targetName?: string, options?: PoltergeistStartOptions): Promise; private getTargetsToWatch; private initializeNotifierIfNeeded; private initializeBuildQueue; private logTargetsToWatch; private initializeTargetStates; private ensureWatchman; private refreshBuildCoordinator; /** * Setup Watchman configuration - no backwards compatibility */ private setupWatchmanConfig; private handleFileChanges; stop(targetName?: string): Promise; private cleanup; getStatus(targetName?: string): Promise>; /** * Handle configuration file changes for automatic reloading */ private handleConfigChange; private startPausePoll; private applyPausedState; setPauseFlag(paused: boolean): void; detectConfigChanges(current: PoltergeistConfig, next: PoltergeistConfig): ConfigChanges; private handleQueuedBuildResult; /** * Run initial builds for all known targets using the configured queue/coordinator. * Exposed for tests that inject target states without running the full start flow. */ performInitialBuilds(): Promise; /** * Apply detected configuration changes without a full restart. * Focuses on additions/removals and reconfiguring schedulers/notifiers. */ applyConfigChanges(newConfig: PoltergeistConfig, changes: ConfigChanges): Promise; /** * List all Poltergeist state files across all projects */ static listAllStates(): Promise; } //# sourceMappingURL=poltergeist.d.ts.map