/**
 * Represents a BrightSign ticker widget (BSTicker).
 * Allows adding strings or images, configuring appearance, speed, separators,
 * and supports multiscreen setups and string removal notifications.
 */
export class BSTicker {
  /**
   * Constructs a new BSTicker.
   * @param x - Position on the X axis (top-left corner of widget)
   * @param y - Position on the Y axis (top-left corner of widget)
   * @param w - Width of the ticker widget
   * @param h - Height of the ticker widget
   * @param rotation - Text rotation, in degrees (0, 90, 180, 270)
   */
  constructor(x: number, y: number, w: number, h: number, rotation: 0 | 90 | 180 | 270);

  SetRectangle(x: number, y: number, w: number, h: number): boolean;
  AddString(str: string): number;
  AddSurface(image: ImageData): number;
  PopStrings(count: number): boolean;
  SetAutoPop(enabled: boolean): void;
  SetForegroundColor(argb: number): boolean;
  SetForegroundColor(a: number, r: number, g: number, b: number): boolean;
  SetBackgroundColor(argb: number): boolean;
  SetBackgroundColor(a: number, r: number, g: number, b: number): boolean;
  SetSeparatorString(str: string): boolean;
  SetSeparatorCircle(): boolean;
  SetSeparatorDiamond(): boolean;
  SetSeparatorSquare(): boolean;
  SetPixelsPerSecond(pps: number): number;
  SetFont(font: string): boolean;
  SetSyncManager(domain: string): boolean;
  SetMultiscreen(offset: number, size: number, ipAddress: string, port: number): boolean;

  /**
   * Event that fires when a string (or surface) is removed from the ticker.
   * The handler receives an object containing the stringId.
   */
  ontickerstringremoved?: (event: { stringId: number }) => void;
}

export {};