export type WorkerTriggerType = 'file-change' | 'event' | 'schedule';
export interface WorkerTrigger {
    type: WorkerTriggerType;
    /** Glob patterns for file-change triggers */
    patterns?: string[];
    /** Event names for event triggers */
    events?: string[];
    /** Interval in ms for schedule triggers */
    intervalMs?: number;
}
export type WorkerTier = 'free' | 'pro';
export interface WorkerDefinition {
    name: string;
    description: string;
    trigger: WorkerTrigger;
    handler: string;
    /** Priority 1-10, higher = runs first when multiple pending */
    priority: number;
    /** Minimum ms between executions */
    cooldownMs: number;
    enabled: boolean;
    tier: WorkerTier;
}
export type WorkerFindingSeverity = 'critical' | 'high' | 'medium' | 'low' | 'warning' | 'info';
export interface WorkerFinding {
    severity: WorkerFindingSeverity;
    file: string;
    line?: number;
    message: string;
    suggestion?: string;
    category: string;
}
export type WorkerRunStatus = 'success' | 'error' | 'skipped';
export interface WorkerRunResult {
    workerName: string;
    startedAt: string;
    completedAt: string;
    durationMs: number;
    status: WorkerRunStatus;
    findings: WorkerFinding[];
    error?: string;
    analyzedFiles: number;
}
export interface WorkerStatus {
    name: string;
    enabled: boolean;
    running: boolean;
    lastRun?: WorkerRunResult;
    consecutiveFailures: number;
    effectiveCooldownMs: number;
}
export interface WorkerEngineStatus {
    active: boolean;
    workers: WorkerStatus[];
    queueLength: number;
    totalRunsCompleted: number;
}
export interface WorkerConfigOverride {
    enabled?: boolean;
    cooldownMs?: number;
    priority?: number;
    triggerPatterns?: string[];
}
export interface WorkerProjectConfig {
    overrides: Record<string, WorkerConfigOverride>;
    lastUpdated: string;
}
export interface WorkerHistoryEntry {
    workerName: string;
    runAt: string;
    durationMs: number;
    status: WorkerRunStatus;
    findingsCount: number;
    findings: WorkerFinding[];
}
export interface WorkerSummary {
    workers: {
        name: string;
        enabled: boolean;
        lastRun?: {
            runAt: string;
            durationMs: number;
            status: WorkerRunStatus;
            findingsCount: number;
        };
    }[];
    lastUpdated: string;
}
export type WorkerHandlerFn = (projectDir: string, changedFiles?: string[]) => Promise<WorkerRunResult>;
export interface TestConvention {
    extensions: string[];
    findTestPaths: (srcFile: string, projectDir: string) => string[];
}
export interface SecurityPattern {
    regex: RegExp;
    severity: 'critical' | 'high' | 'medium' | 'low';
    message: string;
    suggestion: string;
    category: string;
    languages?: string[];
}
export interface ManifestConfig {
    file: string;
    lockfiles: string[];
    analyze: (content: string, relPath: string) => WorkerFinding[];
}
export interface CodeMapExportInfo {
    name: string;
    kind: string;
}
export interface CodeMapExportPattern {
    regex: RegExp;
    kind: string;
    filter?: (name: string) => boolean;
}
export interface CodeMapImportPattern {
    regex: RegExp;
    transform?: (match: string) => string;
    filter?: (match: string) => boolean;
}
export interface WorkerStatusInput {
    projectId: string;
    workerName?: string;
}
export type ConfigureWorkersAction = 'enable' | 'disable' | 'set-cooldown' | 'set-priority' | 'add-pattern' | 'remove-pattern';
export interface ConfigureWorkersInput {
    projectId: string;
    workerName: string;
    action: ConfigureWorkersAction;
    value?: string | number;
}
//# sourceMappingURL=workers.d.ts.map