/** * Copyright (c) 2019-2025 mol* contributors, licensed under MIT, See LICENSE file for more info. * * @author David Sehnal * @author Alexander Rose */ import { Viewport } from '../../mol-canvas3d/camera/util.js'; import { ImagePass } from '../../mol-canvas3d/passes/image.js'; import { PluginComponent } from '../../mol-plugin-state/component.js'; import { RuntimeContext } from '../../mol-task/index.js'; import { Color } from '../../mol-util/color/index.js'; import { ParamDefinition as PD } from '../../mol-util/param-definition.js'; import { PluginContext } from '../context.js'; export declare namespace ViewportScreenshotHelper { type ResolutionSettings = PD.Values>['resolution']; type ResolutionTypes = ResolutionSettings['name']; } export type ViewportScreenshotHelperParams = PD.Values>; export declare class ViewportScreenshotHelper extends PluginComponent { private plugin; private createParams; private _params; get params(): { resolution: PD.Mapped, "viewport"> | PD.NamedParams, "custom"> | PD.NamedParams, "hd"> | PD.NamedParams, "full-hd"> | PD.NamedParams, "ultra-hd">>; format: PD.Mapped, "png"> | PD.NamedParams, "webp"> | PD.NamedParams, "jpeg">>; transparent: PD.BooleanParam; axes: PD.Mapped, "off"> | PD.NamedParams, "on">>; illumination: PD.Group>; }; readonly behaviors: { values: import("rxjs").BehaviorSubject, "viewport"> | PD.NamedParams, "hd"> | PD.NamedParams, "full-hd"> | PD.NamedParams, "ultra-hd"> | PD.NamedParams, "custom">>; format: PD.Mapped, "png"> | PD.NamedParams, "webp"> | PD.NamedParams, "jpeg">>; transparent: PD.BooleanParam; axes: PD.Mapped, "off"> | PD.NamedParams, "on">>; illumination: PD.Group>; }>>; cropParams: import("rxjs").BehaviorSubject<{ auto: boolean; relativePadding: number; }>; relativeCrop: import("rxjs").BehaviorSubject; }; readonly events: { previewed: import("rxjs").Subject; }; get values(): PD.Values<{ resolution: PD.Mapped, "viewport"> | PD.NamedParams, "hd"> | PD.NamedParams, "full-hd"> | PD.NamedParams, "ultra-hd"> | PD.NamedParams, "custom">>; format: PD.Mapped, "png"> | PD.NamedParams, "webp"> | PD.NamedParams, "jpeg">>; transparent: PD.BooleanParam; axes: PD.Mapped, "off"> | PD.NamedParams, "on">>; illumination: PD.Group>; }>; get cropParams(): { auto: boolean; relativePadding: number; }; get relativeCrop(): Viewport; private getCanvasSize; private getSize; private getPostprocessingProps; private getIlluminationProps; private createPass; private _previewPass; private get previewPass(); private _imagePass; get imagePass(): ImagePass; getFilename(extension?: string): string; private canvas; private previewCanvas; private previewData; resetCrop(): void; toggleAutocrop(): void; get isFullFrame(): boolean; autocrop(relativePadding?: number): void; getPreview(ctx: RuntimeContext, maxDim?: number): Promise<{ canvas: HTMLCanvasElement; width: number; height: number; } | undefined>; getSizeAndViewport(): { width: number; height: number; viewport: Viewport; }; private draw; private copyToClipboardTask; private get mimeType(); private get extension(); private get quality(); getImageDataUri(): Promise; copyToClipboard(): Promise | undefined; private downloadTask; download(filename?: string): Promise; constructor(plugin: PluginContext); }