/**
 * 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