UNPKG

@invisiblecities/sidequest-cqo

Version:

Configuration-agnostic TypeScript and ESLint orchestrator with real-time watch mode, SQLite persistence, and intelligent terminal detection

105 lines 4.14 kB
/** * Shared TypeScript types for Code Quality Orchestrator * Provides type safety for color schemes, configurations, and interfaces */ export interface ColorScheme { readonly reset: string; readonly bold: string; readonly dim: string; readonly primary: string; readonly secondary: string; readonly success: string; readonly warning: string; readonly error: string; readonly info: string; readonly muted: string; readonly accent: string; readonly header: string; } export type TerminalMode = "light" | "dark"; export interface WatchState { isInitialized: boolean; sessionStart: number; lastUpdate: number; baseline: ViolationSummary | undefined; current: ViolationSummary; viewMode: "dashboard" | "tidy" | "burndown"; currentViolations: import("../utils/violation-types.js").Violation[]; } export interface ViolationSummary { readonly total: number; readonly bySource: Readonly<Record<string, number>>; readonly byCategory: Readonly<Record<string, number>>; readonly bySeverity?: Readonly<Record<string, Record<string, number>>>; readonly byCategoryBySource?: Readonly<Record<string, Record<string, number>>>; } export interface TodayProgressData { readonly total: number; readonly filesAffected: number; readonly avgPerFile: number; } export interface ConsoleBackup { readonly log: typeof console.log; readonly error: typeof console.error; readonly warn: typeof console.warn; readonly stderrWrite: typeof process.stderr.write; } export interface TerminalCapabilities { readonly supportsOSC: boolean; readonly supportsTrueColor: boolean; readonly supports256Color: boolean; readonly supportsBasicColor: boolean; } export interface ColorDetectionResult { readonly mode: TerminalMode; readonly confidence: "high" | "medium" | "low"; readonly method: "osc" | "heuristic" | "fallback"; readonly backgroundColor?: string; readonly luminance?: number; } export interface DisplayConfiguration { readonly maxCategories: number; readonly updateDebounceMs: number; readonly showTodayProgress: boolean; readonly colorMode: TerminalMode | "auto"; } export interface ValidationConfiguration { readonly strictMode: boolean; readonly maxMessageLength: number; readonly allowedFileExtensions: readonly string[]; readonly requiredFields: readonly string[]; } export declare class DisplayError extends Error { readonly code: string; readonly context?: Record<string, unknown> | undefined; constructor(message: string, code: string, // eslint-disable-line no-unused-vars context?: Record<string, unknown> | undefined); } export declare class TerminalDetectionError extends Error { readonly method: string; readonly originalError?: Error | undefined; constructor(message: string, method: string, // eslint-disable-line no-unused-vars originalError?: Error | undefined); } export interface WatchDisplayEvents { initialized: []; updated: [violations: number, checksCount: number]; baselineSet: [baseline: ViolationSummary]; error: [error: DisplayError]; shutdown: []; } export type EventListener<T extends readonly unknown[]> = (..._arguments: T) => void; export interface TypedEventEmitter<TEvents extends Record<string, readonly unknown[]>> { on<K extends keyof TEvents>(_event: K, _listener: EventListener<TEvents[K]>): void; off<K extends keyof TEvents>(_event: K, _listener: EventListener<TEvents[K]>): void; emit<K extends keyof TEvents>(_event: K, ..._arguments: TEvents[K]): void; } export type DeepReadonly<T> = { readonly [P in keyof T]: T[P] extends object ? DeepReadonly<T[P]> : T[P]; }; export type NonEmptyArray<T> = [T, ...T[]]; export type RequireField<T, K extends keyof T> = T & Required<Pick<T, K>>; export declare function isColorScheme(object: unknown): object is ColorScheme; export declare function isTerminalMode(value: string): value is TerminalMode; export declare function isViolationSummary(object: unknown): object is ViolationSummary; //# sourceMappingURL=types.d.ts.map