import { AuthManager } from '../auth/AuthManager';
import { Announcement, AnnouncementListResponse, AnnouncementCreateRequest, AnnouncementUpdateRequest, AnnouncementDeleteRequest, AnnouncementGroupsResponse, AnnouncementGroupsRequest, AnnouncementDevicesResponse, AnnouncementDevicesRequest } from './types';
export declare class AnnouncementsAPI {
    private readonly baseUrl;
    private readonly authManager;
    private readonly accountsServer;
    constructor(baseUrl: string, authManager: AuthManager, accountsServer: string);
    private getHeaders;
    /**
     * Get a list of all announcements
     */
    listAnnouncements(): Promise<AnnouncementListResponse>;
    /**
     * Create a new announcement
     */
    createAnnouncement(request: AnnouncementCreateRequest): Promise<void>;
    /**
     * Delete multiple announcements
     */
    deleteAnnouncements(request: AnnouncementDeleteRequest): Promise<void>;
    /**
     * Get details of a specific announcement
     */
    getAnnouncement(announcementId: number): Promise<Announcement>;
    /**
     * Update an existing announcement
     */
    updateAnnouncement(announcementId: number, request: AnnouncementUpdateRequest): Promise<void>;
    /**
     * Delete a specific announcement
     */
    deleteAnnouncement(announcementId: number): Promise<void>;
    /**
     * Get groups that an announcement is distributed to
     */
    getAnnouncementGroups(announcementId: number): Promise<AnnouncementGroupsResponse>;
    /**
     * Distribute announcement to groups
     */
    distributeToGroups(announcementId: number, request: AnnouncementGroupsRequest): Promise<void>;
    /**
     * Remove announcement from groups
     */
    removeFromGroups(announcementId: number, request: AnnouncementGroupsRequest): Promise<void>;
    /**
     * Distribute announcement to devices
     */
    distributeToDevices(announcementId: number, request: AnnouncementDevicesRequest): Promise<void>;
    /**
     * Remove announcement from devices
     */
    removeFromDevices(announcementId: number, request: AnnouncementDevicesRequest): Promise<void>;
    /**
     * Get devices that an announcement is distributed to
     */
    getAnnouncementDevices(announcementId: number): Promise<AnnouncementDevicesResponse>;
}
