import type { Viewport, Protocol, PuppeteerLifeCycleEvent, ScreenshotOptions } from 'puppeteer-core'; import type { EnvInfo } from './env'; import type { UserAgentInfo } from './browser'; export interface TabsOptions { viewport: Viewport; envInfo: EnvInfo; userAgentInfo?: UserAgentInfo; } export interface TabOptions extends TabsOptions { tabId: string; injectVisibilityScript?: boolean; } export declare const enum TabEvents { TabLoadingStateChanged = "tabLoadingStateChanged", TabUrlChanged = "tabUrlChanged", TabVisibilityChanged = "TabVisibilityChanged", TabDialogChanged = "TabDialogChanged" } export interface TabEventsMap { [TabEvents.TabLoadingStateChanged]: { tabId: string; isLoading: boolean; }; [TabEvents.TabUrlChanged]: { tabId: string; oldUrl: string; newUrl: string; }; [TabEvents.TabVisibilityChanged]: { tabId: string; isVisible: boolean; }; [TabEvents.TabDialogChanged]: { tabId: string; isOpen: boolean; type?: Protocol.Page.DialogType; message?: string; defaultValue?: string; }; } export interface DialogMeta { type: Protocol.Page.DialogType; message: string; defaultValue: string; } export interface TabMeta { id: string; title: string; url: string; favicon: string | null; isLoading: boolean; isActive: boolean; canGoBack: boolean; canGoForward: boolean; dialog?: DialogMeta; } export interface TabsState { tabs: Map; activeTabId: string | null; } export interface TabsOperationTracker { creatingTargetIds: Set; switchingTargetIds: Set; closingTargetIds: Set; } export interface NavigationOptions { waitUntil?: PuppeteerLifeCycleEvent[]; timeout?: number; } export interface NavigationSuccessResult { success: true; url: string; } export interface NavigationErrorResult { success: false; url: string; message: string; } export type NavigationResult = NavigationSuccessResult | NavigationErrorResult; export type TabScreenshotOptions = Pick; export interface BaseScreenshotResult { type: string; width: number; height: number; } export interface ScreenshotResultWithPath extends BaseScreenshotResult { data: Uint8Array; } export interface ScreenshotResultWithoutPath extends BaseScreenshotResult { data: string; } export type TabScreenshotResult = T extends { path: string; } ? ScreenshotResultWithPath : ScreenshotResultWithoutPath; //# sourceMappingURL=tabs.d.ts.map