import { BaseAlertDefinition, BaseAlertDestinations, BaseAlertInstance, BaseAlertScope, CreateAlertDefinitionInput, UpdateAlertDefinitionInput } from './baseAlert.js'; import type { CostAlertDefinition, CostAlertInstance } from './cost.js'; export declare const QUICK_ALERT_TYPES: readonly ["credentialExpiry", "benefitExpiry", "serviceRetirement", "backupFailure"]; export type QuickAlertType = (typeof QUICK_ALERT_TYPES)[number]; export type QuickAlertCategory = 'other'; export type QuickAlertTemplateId = 'credential-expiry-30d' | 'benefit-expiry-30d' | 'benefit-expiry-7d' | 'service-retirement-30d' | 'backup-failure'; export type QuickAlertSource = 'serviceRetirement' | 'commitmentsPlanning' | 'dataProtection'; export type QuickAlertBenefitType = 'reservation' | 'savingsPlan'; interface QuickAlertCriteriaBase { kind: TKind; source: TSource; templateId?: TTemplateId; } export interface CredentialExpiryAlertCriteria extends QuickAlertCriteriaBase<'credentialExpiry', 'serviceRetirement', 'credential-expiry-30d'> { lookaheadDays: number; } export interface BenefitExpiryAlertCriteria extends QuickAlertCriteriaBase<'benefitExpiry', 'commitmentsPlanning', 'benefit-expiry-30d' | 'benefit-expiry-7d'> { lookaheadDays: number; benefitTypes?: QuickAlertBenefitType[]; } export interface ServiceRetirementAlertCriteria extends QuickAlertCriteriaBase<'serviceRetirement', 'serviceRetirement', 'service-retirement-30d'> { lookaheadDays: number; } export interface BackupFailureAlertCriteria extends QuickAlertCriteriaBase<'backupFailure', 'dataProtection', 'backup-failure'> { minimumConsecutiveFailures: number; workloadTypes?: string[]; } export type QuickAlertCriteria = CredentialExpiryAlertCriteria | BenefitExpiryAlertCriteria | ServiceRetirementAlertCriteria | BackupFailureAlertCriteria; export type QuickAlertCriteriaFor = Extract; export interface QuickAlertSummary { summaryText?: string; matchedItemCount?: number; source?: QuickAlertSource; templateId?: QuickAlertTemplateId; objectId?: string; objectName?: string; subscriptionId?: string; expiresAt?: string; workloadType?: string; } export type QuickAlertDefinitionFor = BaseAlertDefinition, BaseAlertDestinations, BaseAlertScope, TType> & { category: QuickAlertCategory; type: TType; }; export type QuickAlertDefinition = { [TType in QuickAlertType]: QuickAlertDefinitionFor; }[QuickAlertType]; type EditableQuickAlertCriteria = Omit, 'kind' | 'source' | 'templateId'>; export type QuickAlertDefinitionUpdateInput = { [TType in QuickAlertType]: UpdateAlertDefinitionInput, EditableQuickAlertCriteria>; }[QuickAlertType]; export type QuickAlertInstanceFor = BaseAlertInstance & { category: QuickAlertCategory; type: TType; }; export type QuickAlertInstance = { [TType in QuickAlertType]: QuickAlertInstanceFor; }[QuickAlertType]; export type AlertDefinitionRecord = CostAlertDefinition | QuickAlertDefinition; export type AlertInstanceRecord = CostAlertInstance | QuickAlertInstance; export type AlertDefinitionCreateInput = CreateAlertDefinitionInput; export type AlertDefinitionUpdateInput = UpdateAlertDefinitionInput | QuickAlertDefinitionUpdateInput; export declare const isQuickAlertType: (value: string) => value is QuickAlertType; export {}; //# sourceMappingURL=quickAlerts.d.ts.map