import { StorageDomain } from '../storage/domains/base.js';
import type { CreateNotificationInput, ListDueNotificationsInput, ListNotificationsInput, NotificationRecord, UpdateNotificationInput } from './types.js';
export declare abstract class NotificationsStorage extends StorageDomain {
    constructor();
    abstract createNotification(input: CreateNotificationInput): Promise<NotificationRecord>;
    abstract listNotifications(input: ListNotificationsInput): Promise<NotificationRecord[]>;
    abstract listDueNotifications(input: ListDueNotificationsInput): Promise<NotificationRecord[]>;
    abstract getNotification(input: {
        threadId: string;
        id: string;
    }): Promise<NotificationRecord | null>;
    abstract updateNotification(input: UpdateNotificationInput): Promise<NotificationRecord>;
}
export declare class InMemoryNotificationsStorage extends NotificationsStorage {
    #private;
    createNotification(input: CreateNotificationInput): Promise<NotificationRecord>;
    listNotifications(input: ListNotificationsInput): Promise<NotificationRecord[]>;
    listDueNotifications(input: ListDueNotificationsInput): Promise<NotificationRecord[]>;
    getNotification(input: {
        threadId: string;
        id: string;
    }): Promise<NotificationRecord | null>;
    updateNotification(input: UpdateNotificationInput): Promise<NotificationRecord>;
    dangerouslyClearAll(): Promise<void>;
    private findCoalescable;
}
//# sourceMappingURL=storage.d.ts.map