export declare class HomeAnnouncement {
  messageContainerDiv: HTMLDivElement;
  mutationO: MutationObserver;
  showAllButton: boolean;
  showPlainText: boolean;
  plainText?: string;
  sanitizedHTML?: string;
  showAsInnerHTML: boolean;
  showAll: boolean;
  plainTextRerenderedCount: number;
  htmlRerenderedCount: number;
  takeFirstRerendered: boolean;
  isVideo: boolean;
  collapsedIsHtml: boolean;
  announcementTitle: string;
  avatar: string;
  read: boolean;
  announcementDate: string;
  announcerName: string;
  announcerBio: string;
  announcementUrl: string;
  message: string;
  markAsReadUrl: string;
  announcementId: number;
  connectedCallback(): void;
  disconnectedCallback(): void;
  messageDivLoaded(): void;
  /**
   * This is here because we needed to respond to the nodes being added to the component and respond in order to get things rendering correctly
   * The "clamping" was very fragile
   * @param {MutationRecord[]} mutationList
   * @param {MutationObserver} _observer
   */
  mutationCallback: (mutationList: MutationRecord[], _observer: MutationObserver) => void;
  /**
   * This uses a modified third party tool that we have just copied, pasted and modified. We are just clamping at a certain height... not using the native method.
   * @param el
   */
  clampIt(el: Element): void;
  /**
   * This is a callback initiated by the show more/read more being clicked.
   * If either is clicked we are using the canvas API to mark the announcement as read.
   * Lastly lets hide initiating button.
   * @param _ev
   */
  handleShowMoreClicked: (_ev: any) => void;
  /**
   * This is the magic of the component. It decides the way the preview shows up.
   */
  getText(): void;
  /**
   * The collapsing process is CPU intensive... so limiting the number of characters that need to be parsed helps
   * @returns {string}
   */
  generatePlainText(): string;
  navigateToAnnouncement: (_ev: any) => void;
  /**
   * show less is callback from an event listener that fires when show less is clicked
   * It forces things to be rerendered also by changing the keys on the divs
   * @param _ev
   */
  showLess: (_ev: any) => void;
  render(): any;
}
