declare type CloseWarningEvent = { type: "inactive" | "absolute"; deadline: Deadline | undefined; }; declare type ConnectionStateEvent = { state: "connecting" | "playing" | "reconnecting" | "failed"; }; declare type Deadline = { delay: number; closeDate: string; }; declare type DisconnectEvent = { type: DisconnectReason; }; declare type DisconnectReason = "request" | "inactive" | "absolute" | "kicked" | "unauthorized" | "unknown"; /** * Error thrown when request to load the Hyperbeam session fails * * @category error */ export declare class FailedToLoadError extends Error { constructor(message: string); } export declare function getRegionInfo(): Promise; /** * Hyperbeam web client constructor * * ```ts * import Hyperbeam from "@hyperbeam/web" * * const hb = await Hyperbeam( * document.getElementById("container"), * "https://asdfghjkl.hyperbeam.com/foo?token=bar", * { * adminToken: "baz", * delegateKeyboard: true, * }, * ) * console.log(hb.userId) * // get tabs * const tabs = await hb.tabs.query({}) * // update first tab * await hb.tabs.update(tabs[0].id, {url: "https://hyperbeam.dev/"}) * ``` * * @param container - container element to set up * @param url - Hyperbeam embed URL * @param opts - Additional options * @returns Promise that resolves to a Hyperbeam web client instance * * @category GG */ declare function Hyperbeam(container: HTMLDivElement, url: string, opts?: { adminToken?: string; delegateKeyboard?: boolean; disableInput?: boolean; persistScreen?: boolean; playoutDelay?: boolean; timeout?: number; videoPaused?: boolean; volume?: number; webhookUserdata?: JSONValue; audioTrackCb?: (track: MediaStreamTrack) => void; frameCb?: (frame: ImageBitmap | HTMLVideoElement) => void; onCloseWarning?: (e: CloseWarningEvent) => void; onConnectionStateChange?: (e: ConnectionStateEvent) => void; onCursor?: (e: PeerMouseEvent) => void; onDisconnect?: (e: DisconnectEvent) => void; videoTrackCb?: (track: MediaStreamTrack) => void; }): Promise; export default Hyperbeam; export declare type HyperbeamEmbed = { readonly height: number; readonly maxArea: number; readonly rtt: number | undefined; readonly userId: string; readonly width: number; adminToken: string | undefined; delegateKeyboard: boolean; disableInput: boolean; playoutDelay: boolean; tabs: Tabs; videoPaused: boolean; volume: number; addRoles(userIds: string[], roles: string[], exclusive: boolean | undefined): Promise; destroy(): void; disablePrivacyMode(): Promise; enablePrivacyMode(targetId: string | undefined): Promise; ping(): void; reconnect(): void; removeRoles(userIds: string[], roles: string[], exclusive: boolean | undefined): Promise; resize(width: number, height: number): Promise; sendEvent(e: KeyEvent | MouseEvent_2 | WheelEvent_2): void; setPermissions(userId: string, data: PermissionData): Promise; }; export declare type HyperbeamRegionInfo = { region: string; country?: string; }; declare type JSONValue = string | number | boolean | { [x: string]: JSONValue; } | Array; export declare type KeyEvent = { type: "keydown" | "keyup"; key: KeyboardEvent["key"]; ctrlKey?: KeyboardEvent["ctrlKey"]; metaKey?: KeyboardEvent["metaKey"]; }; declare type MouseEvent_2 = { type: "mousedown" | "mousemove" | "mouseup"; x: number; y: number; button?: number; }; export { MouseEvent_2 as MouseEvent } /** * Error thrown when attempting to load while offline * * @category error */ export declare class OfflineError extends FailedToLoadError { constructor(message: string); } declare type PeerMouseEvent = { x: number; y: number; clientX: number; clientY: number; userId: string; }; /** * Permissions data * * @category hb */ export declare type PermissionData = { priority: number; idle_timeout: number; control_disabled: boolean; }; /** * Error thrown when attempting to load a session that is already terminated * * @category error */ export declare class SessionTerminatedError extends FailedToLoadError { constructor(message: string); } /** * Chrome extension tabs API * * See also https://developer.chrome.come/docs/extensions/reference/tabs/ * * @category hb.tabs */ export declare type Tabs = { create: Tabs_create; detectLanguage: Tabs_detectLanguage; discard: Tabs_discard; duplicate: Tabs_duplicate; get: Tabs_get; getZoom: Tabs_getZoom; getZoomSettings: Tabs_getZoomSettings; goBack: Tabs_goBack; goForward: Tabs_goForward; group: Tabs_group; highlight: Tabs_highlight; move: Tabs_move; query: Tabs_query; reload: Tabs_reload; remove: Tabs_remove; setZoom: Tabs_setZoom; setZoomSettings: Tabs_setZoomSettings; ungroup: Tabs_ungroup; update: Tabs_update; onActivated: Tabs_onActivated; onCreated: Tabs_onCreated; onHighlighted: Tabs_onHighlighted; onMoved: Tabs_onMoved; onRemoved: Tabs_onRemoved; onReplaced: Tabs_onReplaced; onUpdated: Tabs_onUpdated; onZoomChange: Tabs_onZoomChange; }; /** * Create a Chrome tab * * See also https://developer.chrome.come/docs/extensions/reference/tabs/#method-create * * @category hb.tabs method */ export declare type Tabs_create = { (createProperties: chrome.tabs.CreateProperties): Promise; }; /** * DetectLanguage a Chrome tab * * See also https://developer.chrome.come/docs/extensions/reference/tabs/#method-detectLanguage * * @category hb.tabs method */ export declare type Tabs_detectLanguage = { (): Promise; (tabId: number): Promise; }; /** * Discard a Chrome tab * * See also https://developer.chrome.come/docs/extensions/reference/tabs/#method-discard * * @category hb.tabs method */ export declare type Tabs_discard = { (tabId?: number | undefined): Promise; }; /** * Duplicate a Chrome tab * * See also https://developer.chrome.come/docs/extensions/reference/tabs/#method-duplicate * * @category hb.tabs method */ export declare type Tabs_duplicate = { (tabId: number): Promise; }; /** * Get a Chrome tab * * See also https://developer.chrome.come/docs/extensions/reference/tabs/#method-get * * @category hb.tabs method */ export declare type Tabs_get = { (tabId: number): Promise; }; /** * GetZoom a Chrome tab * * See also https://developer.chrome.come/docs/extensions/reference/tabs/#method-getZoom * * @category hb.tabs method */ export declare type Tabs_getZoom = { (): Promise; (tabId: number): Promise; }; /** * GetZoomSettings a Chrome tab * * See also https://developer.chrome.come/docs/extensions/reference/tabs/#method-getZoomSettings * * @category hb.tabs method */ export declare type Tabs_getZoomSettings = { (): Promise; (tabId: number): Promise; }; /** * GoBack a Chrome tab * * See also https://developer.chrome.come/docs/extensions/reference/tabs/#method-goBack * * @category hb.tabs method */ export declare type Tabs_goBack = { (): Promise; (tabId: number): Promise; }; /** * GoForward a Chrome tab * * See also https://developer.chrome.come/docs/extensions/reference/tabs/#method-goForward * * @category hb.tabs method */ export declare type Tabs_goForward = { (): Promise; (tabId: number): Promise; }; /** * Group a Chrome tab * * See also https://developer.chrome.come/docs/extensions/reference/tabs/#method-group * * @category hb.tabs method */ export declare type Tabs_group = { (options: chrome.tabs.GroupOptions): Promise; }; /** * Highlight a Chrome tab * * See also https://developer.chrome.come/docs/extensions/reference/tabs/#method-highlight * * @category hb.tabs method */ export declare type Tabs_highlight = { (highlightInfo: chrome.tabs.HighlightInfo): Promise; }; /** * Move a Chrome tab * * See also https://developer.chrome.come/docs/extensions/reference/tabs/#method-move * * @category hb.tabs method */ export declare type Tabs_move = { (tabId: number, moveProperties: chrome.tabs.MoveProperties): Promise; (tabIds: number[], moveProperties: chrome.tabs.MoveProperties): Promise; }; /** * Listen to Chrome tab activated event * * See also https://developer.chrome.com/docs/extensions/reference/tabs/#event-onActivated * * @category hb.tabs event */ export declare type Tabs_onActivated = { addListener: (callback: (activeInfo: chrome.tabs.OnActivatedInfo) => void) => Promise; removeListener: (callback: (activeInfo: chrome.tabs.OnActivatedInfo) => void) => Promise; }; /** * Listen to Chrome tab created event * * See also https://developer.chrome.com/docs/extensions/reference/tabs/#event-onCreated * * @category hb.tabs event */ export declare type Tabs_onCreated = { addListener: (callback: (tab: chrome.tabs.Tab) => void) => Promise; removeListener: (callback: (tab: chrome.tabs.Tab) => void) => Promise; }; /** * Listen to Chrome tab highlighted event * * See also https://developer.chrome.com/docs/extensions/reference/tabs/#event-onHighlighted * * @category hb.tabs event */ export declare type Tabs_onHighlighted = { addListener: (callback: (highlightInfo: chrome.tabs.OnHighlightedInfo) => void) => Promise; removeListener: (callback: (highlightInfo: chrome.tabs.OnHighlightedInfo) => void) => Promise; }; /** * Listen to Chrome tab moved event * * See also https://developer.chrome.com/docs/extensions/reference/tabs/#event-onMoved * * @category hb.tabs event */ export declare type Tabs_onMoved = { addListener: (callback: (tabId: number, moveInfo: chrome.tabs.OnMovedInfo) => void) => Promise; removeListener: (callback: (tabId: number, moveInfo: chrome.tabs.OnMovedInfo) => void) => Promise; }; /** * Listen to Chrome tab removed event * * See also https://developer.chrome.com/docs/extensions/reference/tabs/#event-onRemoved * * @category hb.tabs event */ export declare type Tabs_onRemoved = { addListener: (callback: (tabId: number, removeInfo: chrome.tabs.OnRemovedInfo) => void) => Promise; removeListener: (callback: (tabId: number, removeInfo: chrome.tabs.OnRemovedInfo) => void) => Promise; }; /** * Listen to Chrome tab replaced event * * See also https://developer.chrome.com/docs/extensions/reference/tabs/#event-onReplaced * * @category hb.tabs event */ export declare type Tabs_onReplaced = { addListener: (callback: (addedTabId: number, removedTabId: number) => void) => Promise; removeListener: (callback: (addedTabId: number, removedTabId: number) => void) => Promise; }; /** * Listen to Chrome tab updated event * * See also https://developer.chrome.com/docs/extensions/reference/tabs/#event-onUpdated * * @category hb.tabs event */ export declare type Tabs_onUpdated = { addListener: (callback: (tabId: number, changeInfo: chrome.tabs.OnUpdatedInfo, tab: chrome.tabs.Tab) => void) => Promise; removeListener: (callback: (tabId: number, changeInfo: chrome.tabs.OnUpdatedInfo, tab: chrome.tabs.Tab) => void) => Promise; }; /** * Listen to Chrome tab zoomChange event * * See also https://developer.chrome.com/docs/extensions/reference/tabs/#event-onZoomChange * * @category hb.tabs event */ export declare type Tabs_onZoomChange = { addListener: (callback: (ZoomChangeInfo: chrome.tabs.OnZoomChangeInfo) => void) => Promise; removeListener: (callback: (ZoomChangeInfo: chrome.tabs.OnZoomChangeInfo) => void) => Promise; }; /** * Query a Chrome tab * * See also https://developer.chrome.come/docs/extensions/reference/tabs/#method-query * * ```ts * const tabs = await hb.tabs.query({}) * ``` * @category hb.tabs method */ export declare type Tabs_query = { (queryInfo: chrome.tabs.QueryInfo): Promise; }; /** * Reload a Chrome tab * * See also https://developer.chrome.come/docs/extensions/reference/tabs/#method-reload * * @category hb.tabs method */ export declare type Tabs_reload = { (tabId: number, reloadProperties?: chrome.tabs.ReloadProperties | undefined): Promise; (reloadProperties: chrome.tabs.ReloadProperties): Promise; (): Promise; }; /** * Remove a Chrome tab * * See also https://developer.chrome.come/docs/extensions/reference/tabs/#method-remove * * @category hb.tabs method */ export declare type Tabs_remove = { (tabId: number): Promise; (tabIds: number[]): Promise; }; /** * SetZoom a Chrome tab * * See also https://developer.chrome.come/docs/extensions/reference/tabs/#method-setZoom * * @category hb.tabs method */ export declare type Tabs_setZoom = { (zoomFactor: number): Promise; (tabId: number, zoomFactor: number): Promise; }; /** * SetZoomSettings a Chrome tab * * See also https://developer.chrome.come/docs/extensions/reference/tabs/#method-setZoomSettings * * @category hb.tabs method */ export declare type Tabs_setZoomSettings = { (zoomSettings: chrome.tabs.ZoomSettings): Promise; (tabId: number, zoomSettings: chrome.tabs.ZoomSettings): Promise; }; /** * Ungroup Chrome tabs * * See also https://developer.chrome.com/docs/extensions/reference/tabs/#method-ungroup * * @category hb.tabs method */ export declare type Tabs_ungroup = { (tabIds: number | number[]): Promise; }; /** * Update a Chrome tab * * See also https://developer.chrome.com/docs/extensions/reference/tabs/#method-update * * @category hb.tabs method */ export declare type Tabs_update = { /** * ```ts * const updatedTab = await hb.tabs.update({url: "https://hyperbeam.dev/"}) * ``` */ (updateProperties: chrome.tabs.UpdateProperties): Promise; /** * ```ts * const updatedTab = await hb.tabs.update(2, {url: "https://hyperbeam.dev/"}) * ``` */ (tabId: number, updateProperties: chrome.tabs.UpdateProperties): Promise; }; /** * Error thrown when request to load the Hyperbeam session times out * * @category error */ export declare class TimedOutError extends Error { constructor(); } declare type WheelEvent_2 = { type: "wheel"; deltaY: number; }; export { WheelEvent_2 as WheelEvent } export { }