import { type TerminalNotificationFormat, type TerminalNotificationQuietHoursConfig, type TerminalNotificationRuleConfig, type TerminalNotificationSeverity } from "./config.js";
import { type LocalEventType } from "./event-hooks.js";
export interface TerminalNotificationRuleInput {
    name: string;
    events: string[];
    enabled?: boolean;
    min_severity?: TerminalNotificationSeverity;
    format?: TerminalNotificationFormat;
    bell?: boolean;
    task_statuses?: string[];
    priorities?: string[];
    agent_ids?: string[];
    project_ids?: string[];
    contains?: string[];
    quiet_hours?: TerminalNotificationQuietHoursConfig;
}
export interface TerminalWatchEventInput {
    type: LocalEventType;
    payload?: Record<string, unknown>;
    timestamp?: string;
}
export interface TerminalNotification {
    rule: string;
    event_type: LocalEventType;
    severity: TerminalNotificationSeverity;
    title: string;
    message: string;
    timestamp: string;
    task_id?: string;
    project_id?: string;
    agent_id?: string;
    bell: boolean;
    payload: Record<string, unknown>;
}
export interface TerminalNotificationEvaluation {
    rule: string;
    matched: boolean;
    skipped_reasons: string[];
    notifications: TerminalNotification[];
}
export declare function parseQuietHours(value: string | undefined, timezone?: "utc" | "local"): TerminalNotificationQuietHoursConfig | undefined;
export declare function upsertTerminalNotificationRule(input: TerminalNotificationRuleInput): TerminalNotificationRuleConfig;
export declare function listTerminalNotificationRules(): TerminalNotificationRuleConfig[];
export declare function getTerminalNotificationRule(name: string): TerminalNotificationRuleConfig | null;
export declare function removeTerminalNotificationRule(name: string): boolean;
export declare function evaluateTerminalWatchRules(input: TerminalWatchEventInput, rules?: TerminalNotificationRuleConfig[]): TerminalNotificationEvaluation[];
export declare function testTerminalNotificationRule(name: string, input: TerminalWatchEventInput): TerminalNotificationEvaluation;
export declare function renderTerminalNotification(notification: TerminalNotification, format?: TerminalNotificationFormat): string;
export declare function describeTerminalNotificationRule(rule: TerminalNotificationRuleConfig): {
    rule: TerminalNotificationRuleConfig;
    warnings: string[];
};
//# sourceMappingURL=terminal-notifications.d.ts.map