import type { Rect } from './screenshot-editor-model.js'; import type { ArkmeDesktopScreenshotResult } from '../desktop-screenshot-contract.js'; export interface ScreenshotAskRequest { requestId: string; operationId: string; contentBase64: string; fileName: string; } export interface NativeScreenshotBridge { askDsh?(png: string): Promise; askDshResult?(reply: { requestId: string; ok: boolean; error?: string; }): Promise; onAskDsh?(listener: (request: ScreenshotAskRequest) => void): () => void; onAskDshCancel?(listener: (request: { requestId: string; }) => void): () => void; onAskDshActivate?(listener: (request: { requestId: string; }) => void): () => void; version: 1; capture(requestId: string): Promise; cancel(requestId: string): Promise; context(): Promise<{ contentBase64: string; width: number; height: number; windows?: Rect[]; destination?: 'attachment' | 'clipboard'; } | null>; ready(): Promise; select(): Promise; close(): Promise; complete(png: string): Promise; save(png: string): Promise; } export declare function nativeScreenshotBridge(): NativeScreenshotBridge | undefined; export declare function screenshotWindowRequested(): boolean; export declare function captureNativeScreenshot(signal: AbortSignal): Promise; export declare function screenshotBlobBase64(blob: Blob): Promise; /** Use Chromium's native decoder; the iterable mapping path costs a JS call per PNG byte. */ export declare function decodeScreenshotBase64(value: string): Uint8Array; //# sourceMappingURL=native-screenshot.d.ts.map