import React, { ReactElement } from "react";
import type { Announcement, AnnouncementsUserSettings, State, AnnouncementsApi } from "./types";
type Props = {
    children: React.ReactNode;
    handleLoad: () => Promise<{
        announcements: Announcement[];
        seenIds: string[];
        lastUpdateTime: number;
    }>;
    handleSave: (arg0: {
        announcements: Announcement[];
        seenIds: string[];
        lastUpdateTime: number;
    }) => Promise<void>;
    context: AnnouncementsUserSettings;
    autoUpdateDelay: number;
    onNewAnnouncement?: (arg0: Announcement) => void;
    onAnnouncementRead?: (arg0: Announcement) => void;
    fetchApi?: AnnouncementsApi;
};
type API = {
    updateCache: () => Promise<void>;
    setAsSeen: (seenId: string) => void;
};
export type AnnouncementContextType = State & API;
export declare function useAnnouncements(): AnnouncementContextType;
export declare const AnnouncementProvider: ({ children, context, handleLoad, handleSave, autoUpdateDelay, onNewAnnouncement, onAnnouncementRead, fetchApi, }: Props) => ReactElement;
export {};
//# sourceMappingURL=index.d.ts.map