import type { SignalEventsRepository } from "../../storage/signalEventsRepository.js"; import type { SignalSubscriptionsRepository } from "../../storage/signalSubscriptionsRepository.js"; import type { EngineEventBus } from "../ipc/events.js"; import type { Signal, SignalGenerateInput, SignalSubscribeInput, SignalSubscription, SignalUnsubscribeInput } from "./signalTypes.js"; type SignalsRepositoryOptions = { signalEvents: Pick; signalSubscriptions: Pick; }; type SignalsLegacyOptions = { configDir: string; }; export type SignalsOptions = { eventBus: EngineEventBus; onDeliver?: (signal: Signal, subscriptions: SignalSubscription[]) => Promise | void; } & (SignalsRepositoryOptions | SignalsLegacyOptions); export declare class Signals { private readonly eventBus; private readonly signalEvents; private readonly signalSubscriptions; private readonly onDeliver; constructor(options: SignalsOptions); ensureDir(): Promise; /** * Generates a signal event and publishes it to the engine event bus. * Expects: input.type is non-empty after trim. */ generate(input: SignalGenerateInput): Promise; subscribe(input: SignalSubscribeInput): Promise; /** * Returns a subscription for an exact agent + pattern pair when present. * Returns: null when no subscription exists. */ subscriptionGet(input: SignalUnsubscribeInput): Promise; /** * Removes an existing signal subscription for agent + pattern. * Returns: true when a subscription existed and was removed. */ unsubscribe(input: SignalUnsubscribeInput): Promise; /** * Returns all active signal subscriptions as a snapshot array. */ listSubscriptions(): Promise; /** * Returns all persisted signal events in append order. */ listAll(): Promise; listRecent(limit?: number): Promise; private signalDeliver; } export {}; //# sourceMappingURL=signals.d.ts.map