export interface NotificationRule {
    readonly id: string;
    readonly name: string;
    readonly enabled: boolean;
    readonly eventTypes: readonly string[];
    readonly conditions: {
        readonly deviceIds?: readonly number[];
        readonly classNames?: readonly string[];
        readonly zoneIds?: readonly string[];
        readonly minConfidence?: number;
        readonly source?: 'pipeline' | 'onboard' | 'any';
        readonly schedule?: {
            readonly days: readonly number[];
            readonly startHour: number;
            readonly endHour: number;
        };
        readonly cooldownSeconds?: number;
        readonly minDwellSeconds?: number;
    };
    readonly outputs: readonly string[];
    readonly template?: {
        readonly title: string;
        readonly body: string;
        readonly imageMode: 'crop' | 'annotated' | 'full' | 'none';
    };
    readonly priority: 'low' | 'normal' | 'high' | 'critical';
}
export interface NotificationTestResult {
    readonly ruleId: string;
    readonly eventId: string;
    readonly timestamp: number;
    readonly wouldFire: boolean;
    readonly reason?: string;
}
export interface NotificationHistoryFilter {
    readonly ruleId?: string;
    readonly deviceId?: number;
    readonly from?: number;
    readonly to?: number;
    readonly limit?: number;
}
export interface NotificationHistoryEntry {
    readonly id: string;
    readonly ruleId: string;
    readonly ruleName: string;
    readonly eventId: string;
    readonly timestamp: number;
    readonly outputs: readonly string[];
    readonly success: boolean;
    readonly error?: string;
    readonly deviceId?: number;
}
export interface IAdvancedNotifier {
    getRules(): readonly NotificationRule[];
    upsertRule(rule: NotificationRule): void;
    deleteRule(ruleId: string): void;
    testRule(ruleId: string, lookbackMinutes: number): Promise<NotificationTestResult[]>;
    getHistory(filter?: NotificationHistoryFilter): Promise<NotificationHistoryEntry[]>;
}
//# sourceMappingURL=advanced-notifier.d.ts.map