

// Original file: screenshare_info.types.d.ts

/**
 * Information about the add-on that should be used when a user transitions
 * from screen sharing to an in-meeting add-on experience.
 */
export interface AddonScreenshareInfo {
  /**
   * The Google Cloud project number of the add-on that Meet should start when
   * transitioning from screen sharing to the Meet Add-on.
   */
  cloudProjectNumber: string;
  /**
   * Whether to start an activity when the add-on is opened. If a
   * mainstage URL is provided, must be true.
   */
  startActivityOnOpen: boolean;
  /**
   * Data supplied by the third-party that the add-on can use to initialize
   * itself
   */
  additionalData?: string;
  /**
   * The URL that the side panel opens after the add-on starts. Must
   * belong to the same domain as the URLs specified in the add-on manifest.
   */
  sidePanelUrl?: string;
  /**
   * The URL that the main stage opens after the add-on starts. Must
   * belong to the same domain as the URLs specified in the add-on manifest.
   */
  mainStageUrl?: string;
}


// Original file: index.types.d.ts


/**
 * The main entry point for accessing Meet add-on screenshare functionality.
 * Available globally under `window.meet.addon.screensharing`, or by importing
 * `meet.addon.screensharing`.
 */
export interface MeetAddonScreenshare {
  /**
   * Enables a third-party site to set content and its corresponding add-on when
   * transitioning from screen sharing to the Meet add-on.
   */
  exposeToMeetWhenScreensharing(
    clientScreenshareInfo: AddonScreenshareInfo,
  ): void;
}

/** The structure of the top-level Add-on screenshare export. */
interface MeetAddonScreenshareExport {
  addon: {screensharing: MeetAddonScreenshare};
}

/**
 * The main entry point for accessing Meet add-on screenshare functionality.
 */
export const meet: MeetAddonScreenshareExport;

declare global {
  export interface Window {
    meet: MeetAddonScreenshareExport;
  }
}
