@invisiblecities/sidequest-cqo
Version:
Configuration-agnostic TypeScript and ESLint orchestrator with real-time watch mode, SQLite persistence, and intelligent terminal detection
43 lines • 1.75 kB
TypeScript
/**
* Polling Service for Code Quality Orchestrator
* Handles rule execution scheduling and coordination
*/
import { EventEmitter } from "node:events";
import type { IPollingService, IStorageService, RuleCheckResult } from "./interfaces.js";
import type { RuleSchedule } from "../database/types.js";
export declare class PollingService extends EventEmitter implements IPollingService {
private storageService;
private isActive;
private isPaused;
private pollingInterval;
private activeChecks;
private defaultFrequencyMs;
private maxConcurrentChecks;
private pollingIntervalMs;
constructor(storageService: IStorageService);
start(): Promise<void>;
stop(): Promise<void>;
pause(): Promise<void>;
resume(): Promise<void>;
isRunning(): boolean;
scheduleRule(rule: string, engine: "typescript" | "eslint", frequencyMs?: number): Promise<void>;
unscheduleRule(rule: string, engine: "typescript" | "eslint"): Promise<void>;
getScheduledRules(): Promise<RuleSchedule[]>;
executeRule(rule: string, engine: "typescript" | "eslint"): Promise<RuleCheckResult>;
executeNextRules(maxConcurrent?: number): Promise<RuleCheckResult[]>;
setDefaultFrequency(frequencyMs: number): void;
setMaxConcurrentChecks(max: number): void;
enableAdaptivePolling(enabled: boolean): void;
private executePollCycle;
private performRuleCheck;
private simulateRuleExecution;
}
/**
* Get or create polling service instance
*/
export declare function getPollingService(storageService: IStorageService): PollingService;
/**
* Reset polling service instance (useful for testing)
*/
export declare function resetPollingService(): void;
//# sourceMappingURL=polling-service.d.ts.map