import { EventEmitter } from 'events'; import { type KnapsackPattern } from '@knapsack/types'; import type { KnapsackConfig } from '../types/knapsack-config'; declare const EVENTS: { CONFIG_READY: string; PATTERNS_DATA_READY: string; PATTERN_TEMPLATE_ADDED: string; PATTERN_TEMPLATE_CHANGED: string; PATTERN_TEMPLATE_REMOVED: string; PATTERN_ASSET_CHANGED: string; PATTERN_CONFIG_CHANGED: string; DESIGN_TOKENS_CHANGED: string; SHUTDOWN: string; REQUEST_RENDERER_CLIENT_RELOAD: string; APP_CLIENT_DATA_CHANGED: string; }; export interface Event { type: string; data: Record; } export interface PatternAssetChangedEvent extends Event { type: typeof EVENTS.PATTERN_ASSET_CHANGED; data: { /** File path */ path: string; }; } export interface PatternsDataReadyEvent extends Event { type: typeof EVENTS.PATTERNS_DATA_READY; data: { patterns: KnapsackPattern[]; }; } export interface PatternTemplateChangedEvent extends Event { type: typeof EVENTS.PATTERN_TEMPLATE_CHANGED; data: { path: string; renderer?: string; }; } export interface DesignTokensChangedEvent extends Event { type: typeof EVENTS.DESIGN_TOKENS_CHANGED; data: Record; } export interface ConfigReadyEvent extends Event { type: typeof EVENTS.CONFIG_READY; data: KnapsackConfig; } export interface RequestRendererClientReloadEvent extends Event { type: typeof EVENTS.REQUEST_RENDERER_CLIENT_RELOAD; data: { patternId?: string; templateId?: string; assetSetId?: string; }; } export interface AppClientDataChangedEvent extends Event { type: typeof EVENTS.APP_CLIENT_DATA_CHANGED; } declare class KnapsackEventEmitter extends EventEmitter { debouncedEmit: ((eventName: string, eventData: any) => void) & { clear(): void; } & { flush(): void; }; onPatternAssetChange(handle: (data: PatternAssetChangedEvent['data']) => void): void; emitPatternAssetChanged(data: PatternAssetChangedEvent['data']): void; onAppClientDataChange(handle: () => void): void; emitAppClientDataChanged(): void; onPatternsDataReady(handle: (event: PatternsDataReadyEvent['data']) => void): void; emitPatternsDataReady(data: PatternsDataReadyEvent['data']): void; onPatternTemplateChanged(handle: (data: PatternTemplateChangedEvent['data']) => void): void; emitPatternTemplateChanged(data: PatternTemplateChangedEvent['data']): void; onShutdown(handle: () => void): void; emitShutdown(): void; onDesignTokensChanged(handle: (data: DesignTokensChangedEvent['data']) => void): void; emitDesignTokensChanged(data?: DesignTokensChangedEvent['data']): void; onConfigReady(handle: (data: ConfigReadyEvent['data']) => void): void; emitConfigReady(data: ConfigReadyEvent['data']): void; onRequestRendererClientReload(handle: (data: RequestRendererClientReloadEvent['data']) => void): void; emitRequestRendererClientReload(data?: RequestRendererClientReloadEvent['data']): void; } export declare const knapsackEvents: KnapsackEventEmitter; export {}; //# sourceMappingURL=events.d.ts.map