import type { AlertRule, AlertEvent } from '@/domain/entities/alert-rule';

export interface AlertRuleRepository {
  listRules(): Promise<AlertRule[]>;
  getRuleById(id: string): Promise<AlertRule>;
  createRule(rule: Omit<AlertRule, 'id' | 'createdAt' | 'updatedAt'>): Promise<AlertRule>;
  updateRule(id: string, data: Partial<AlertRule>): Promise<AlertRule>;
  removeRule(id: string): Promise<void>;
  toggleRule(id: string, enabled: boolean): Promise<void>;
  listEvents(params?: Record<string, string>): Promise<AlertEvent[]>;
  acknowledgeEvent(id: string): Promise<void>;
}
