import { QueryKey, InfiniteQueryObserverOptions, InfiniteData, MutationObserver } from '@tanstack/query-core';
import { WeavyType } from '../client/weavy';
import { NotificationType, NotificationTypes, NotificationsResultType } from '../types/notifications.types';
export type MutateMarkNotificationVariables = {
    markAsRead: boolean;
    notificationId: number;
};
export type MutateMarkNotificationsVariables = {
    notificationId?: number;
};
export type MutateMarkNotificationContext = {
    changedNotifications: Partial<NotificationType>[];
};
export declare function getNotificationsOptions(weavy: WeavyType, type?: NotificationTypes, appIdOrUid?: string | number, options?: object): InfiniteQueryObserverOptions<NotificationsResultType, Error, InfiniteData<NotificationsResultType>>;
export declare function getLastNotification(weavy: WeavyType, type?: NotificationTypes, appIdOrUid?: string | number): NotificationType | undefined;
export declare function getMarkNotificationsMutationOptions(weavy: WeavyType, appIdOrUid?: string | number): {
    mutationFn: ({ notificationId }: MutateMarkNotificationsVariables) => Promise<void>;
    onMutate: (_variables: MutateMarkNotificationsVariables) => Promise<MutateMarkNotificationContext>;
    onSuccess: () => void;
    onSettled: () => void;
    onError: (error: Error, _variables: MutateMarkNotificationsVariables, _context?: MutateMarkNotificationContext) => void;
};
export declare function getMarkNotificationsMutation(weavy: WeavyType, appIdOrUid?: string | number): MutationObserver<void, Error, MutateMarkNotificationsVariables, MutateMarkNotificationContext>;
export declare function getMarkNotificationMutationOptions(weavy: WeavyType): {
    mutationFn: ({ markAsRead, notificationId }: MutateMarkNotificationVariables) => Promise<void>;
    onMutate: (variables: MutateMarkNotificationVariables) => Promise<void>;
    onError: (error: Error, variables: MutateMarkNotificationVariables) => void;
};
export declare function getMarkNotificationMutation(weavy: WeavyType): MutationObserver<void, Error, MutateMarkNotificationVariables, void>;
export declare function getBadgeOptions(weavy: WeavyType, type?: NotificationTypes, appIdOrUid?: string | number, options?: object): import('@tanstack/query-core').QueryObserverOptions<NotificationsResultType, Error, NotificationsResultType, NotificationsResultType, QueryKey, never>;
//# sourceMappingURL=notifications.d.ts.map