/** * Renderer-facing OSC 52 clipboard adapter (V2-064). * * The native renderer performs OSC encoding and terminal writes. This adapter * only chooses a bounded, capability-checked path and otherwise delegates to * the supplied non-terminal clipboard port. */ import type { ClipboardPort } from "../../app/ports/clipboard-port.js"; export interface Osc52RendererPort { isOsc52Supported(): boolean; copyToClipboardOSC52(text: string): boolean; } export type Osc52FallbackReason = "disabled" | "unsupported" | "too-large" | "rejected" | "failed"; export interface Osc52CopyResult { readonly method: "osc52" | "fallback"; readonly reason?: Osc52FallbackReason; } export interface Osc52ClipboardPort extends ClipboardPort { readonly lastWrite: Osc52CopyResult | undefined; } export interface Osc52ClipboardOptions { readonly renderer: Osc52RendererPort; readonly fallback: ClipboardPort; readonly enabled: boolean; /** Bound terminal payload size; oversized text remains available via fallback. */ readonly maxBytes?: number; } export declare function createOsc52ClipboardPort(options: Osc52ClipboardOptions): Osc52ClipboardPort;