import { ResolverEndpointConfig, ResolverResponse, RetryConfig } from "./resolver.data.model";
import { User } from "./user.data.model";
export interface NotificationDataProvider {
    get?: (request: GetNotificationResolverRequest) => Promise<ResolverResponse<Record<string, PartialNotification>>>;
    delete?: (request: DeleteNotificationResolverRequest) => Promise<ResolverResponse<undefined>>;
    config?: NotificationResolverConfig;
}
export interface NotificationResolverConfig {
    resolveTimeout?: number;
    getRetryConfig?: RetryConfig;
    deleteRetryConfig?: RetryConfig;
    getConfig?: ResolverEndpointConfig;
    deleteConfig?: ResolverEndpointConfig;
}
export interface GetNotificationResolverRequest {
    organizationId: string;
    notificationIds: string[];
}
export interface DeleteNotificationResolverRequest {
    notificationId: string;
    organizationId: string;
}
export interface PartialNotification {
    notificationId: string;
    displayHeadlineMessageTemplate?: string;
    displayHeadlineMessageTemplateData?: {
        actionUser?: User;
        recipientUser?: User;
        actionMessage?: string;
        [key: string]: any;
    };
    displayBodyMessage?: string;
    displayBodyMessageTemplate?: string;
    displayBodyMessageTemplateData?: {
        [key: string]: any;
    };
    notificationSourceData?: any;
    [key: string]: any;
}
