import { CanvasAnnouncement } from "../../types/canvas-announcements";
export declare class HomeAnnouncementContainer {
  /**
   * courseNumber - What course number are we getting announcements for
   * @type {string}
   */
  courseNumber?: string;
  /**
   * showAnnouncements - This can be overridden by a canvas setting
   * @type {boolean}
   */
  showAnnouncements: boolean;
  /**
   * numberOfAnnouncementsToSho - This can be overridden by a canvas setting
   * @type {number}
   */
  numberOfAnnouncementsToShow: number;
  /**
   * baseUrl - Base Url from the canvas environment
   * @type {string}
   */
  baseUrl?: string;
  /**
   * announcements
   * @type {CanvasAnnouncement[]}
   */
  announcements?: CanvasAnnouncement[];
  /**
   * Get the needed data from the Canvas Environment.
   * Get the date range needed to make the request.
   * Fetch the announcements
   */
  connectedCallback(): void;
  /**
   * Right now the "not graphql" API doesn't require the cross site protection
   * @param {string} url
   * @returns {Promise<void>}
   */
  fetchAnnouncements(url: string): Promise<void>;
  generateAnnouncements: (announcement: CanvasAnnouncement) => any;
  /**
   * It's concerning that some canvas announcemnts do not have posted or published at dates
   * @param {CanvasAnnouncement} a
   * @param {CanvasAnnouncement} b
   * @returns {number}
   */
  sortByPostedAtDate(a: CanvasAnnouncement, b: CanvasAnnouncement): number;
  render(): any;
}
