import type { Banner } from '@ewizardjs/banner-structure-api'; import type { SettingsJson } from '@ewizardjs/settings'; import type { LaunchOptions, Page } from 'puppeteer'; export interface Action { name?: string; execute(slideId: string, page: Page, destPath?: string): Promise; } export type ScreenType = 'png' | 'jpeg'; export interface AsImage { buffer: Buffer | null; id: string; type: ScreenType; tempPath?: string; } export interface INav { chapter: string; slide: string; subslide?: string; } export interface NavigationOptions extends INav { animation?: boolean; } export interface INavigator { getCurrentSlide(): NavigationOptions; goTo(options: NavigationOptions | string, force?: boolean): void; onenter(handler: () => void | Promise, options?: { global?: boolean; }): void; currentBanner: Banner; getCurrentPage(): { id: string; }; } interface Vue { $navigator: INavigator; $editor: { mode: string; }; } export interface VueHTMLElement extends HTMLElement { __vue__: Vue; } export interface BeforeScreenshotOption { callback(arg0: string): void; params: string[]; } export interface BaseWalkerOptions { root: string; settings: SettingsJson; rendererOptions: LaunchOptions; port?: number; delay?: number; disableLogs?: boolean; browserUrl?: string; requiredIds?: string[]; currentTheme?: string; themesList?: string[]; } export {};