/** * Status state machine for managing indexing status transitions */ import type { IndexingStatus } from '../types/models.js'; import type { StatusChangeEvent } from './types.js'; /** * Status state machine */ export declare class StatusStateMachine { private currentStatus; private history; private listeners; constructor(initialStatus?: IndexingStatus); /** * Get current status */ getStatus(): IndexingStatus; /** * Transition to a new status */ transition(newStatus: IndexingStatus, reason?: string): boolean; /** * Set to standby status */ setStandby(reason?: string): boolean; /** * Set to indexing status */ setIndexing(reason?: string): boolean; /** * Set to indexed status */ setIndexed(reason?: string): boolean; /** * Set to error status */ setError(reason?: string): boolean; /** * Check if in specific status */ is(status: IndexingStatus): boolean; /** * Check if indexing is active */ isActive(): boolean; /** * Check if has error */ hasError(): boolean; /** * Get status history */ getHistory(): StatusChangeEvent[]; /** * Get last status change */ getLastChange(): StatusChangeEvent | null; /** * Add status change listener */ addListener(listener: (event: StatusChangeEvent) => void): void; /** * Remove status change listener */ removeListener(listener: (event: StatusChangeEvent) => void): void; /** * Notify all listeners */ private notifyListeners; /** * Clear history */ clearHistory(): void; /** * Reset to initial state */ reset(): void; } //# sourceMappingURL=state-machine.d.ts.map