import type{AnchorTargetCapabilities,LyraAnchor,LyraHighlight}from'./anchors.js';import{type LyraAvCue,type LyraAvTrack}from'../../media/av-player/av-metadata.js'; /** A file supplied to a document renderer. */ export interface DocumentFile{readonly name:string;readonly mimeType:string;readonly src:string; /** A string is a highlight id in `highlights`. */ readonly anchor?:LyraAnchor|string;readonly highlights?:readonly LyraHighlight[]; /** Media alt text for image-like renderers. */ readonly alt?:string;} /** Immutable file data wrapped by a `LyraDocumentRendererPayload`. */ export interface LyraDocumentFile{readonly name:string;readonly mimeType:string;readonly src:string; /** A string is a highlight id in `highlights`. */ readonly anchor?:LyraAnchor|string;readonly highlights?:readonly LyraHighlight[]; /** Media alt text for image-like renderers. */ readonly alt?:string;} /** Generic payload used when no renderer-specific authoring data is supplied. */ export interface LyraGenericDocumentRendererPayload{readonly kind:'document';readonly file:LyraDocumentFile;} /** Audio/video payload carrying the metadata needed for transcript search and native tracks. */ export interface LyraAvDocumentRendererPayload{readonly kind:'av';readonly file:LyraDocumentFile;readonly cues:readonly LyraAvCue[];readonly tracks:readonly LyraAvTrack[];} /** Built-in renderer payloads. `kind` is the renderer-family discriminator. */ export type LyraDocumentRendererPayload=LyraGenericDocumentRendererPayload|LyraAvDocumentRendererPayload;export type LyraDocumentRendererPayloadKind=LyraDocumentRendererPayload['kind'];export type LyraDocumentRendererPayloadFor =Extract; /** Clones, validates, hard-bounds, and freezes a renderer payload at an assignment boundary. */ export declare function snapshotLyraDocumentRendererPayload(value:LyraDocumentRendererPayload):LyraDocumentRendererPayload;declare const DOCUMENT_RENDERER_ADAPTER:unique symbol; /** Type-erased adapter created by `createDocumentRendererAdapter()`. */ export interface LyraDocumentRendererAdapter{readonly kind:LyraDocumentRendererPayloadKind;readonly[DOCUMENT_RENDERER_ADAPTER]:true;adapt(file:DocumentFile,supplied?:LyraDocumentRendererPayload):LyraDocumentRendererPayload;capabilities(payload:LyraDocumentRendererPayload):AnchorTargetCapabilities|undefined;render(payload:LyraDocumentRendererPayload):unknown;} /** Strongly typed authoring contract for one discriminator-specific renderer adapter. */ export interface LyraDocumentRendererAdapterDefinition{readonly kind:K;readonly adapt:(file:DocumentFile,supplied?:LyraDocumentRendererPayload)=>LyraDocumentRendererPayloadFor;readonly capabilities:(payload:LyraDocumentRendererPayloadFor)=>AnchorTargetCapabilities|undefined;readonly render:(payload:LyraDocumentRendererPayloadFor)=>unknown;}interface DocumentRendererDefinitionBase{ /** Matches files that do not have an exact normalized MIME-type registration. */ readonly matches?:(file:DocumentFile)=>boolean;} /** A renderer whose implementation is already available. */ export interface DirectDocumentRendererDefinition extends DocumentRendererDefinitionBase{ /** Renders the file as Lit-compatible content, a DOM node, or plain text. */ readonly render:(file:DocumentFile)=>unknown; /** Static legacy capability declaration. Payload adapters derive capabilities instead. */ readonly capabilities?:AnchorTargetCapabilities;readonly adapter?:never;readonly load?:never;} /** A direct renderer driven by a typed, discriminator-specific payload adapter. */ export interface LyraAdaptedDocumentRendererDefinition extends DocumentRendererDefinitionBase{readonly adapter:LyraDocumentRendererAdapter;readonly render?:never;readonly capabilities?:never;readonly load?:never;} /** A resolved definition that can render immediately. */ export type LyraResolvedDocumentRendererDefinition=DirectDocumentRendererDefinition|LyraAdaptedDocumentRendererDefinition; /** A renderer whose implementation is loaded only after a matching file is opened. */ export interface LazyDocumentRendererDefinition extends DocumentRendererDefinitionBase{readonly render?:never;readonly adapter?:never; /** Capability declaration available before the legacy direct renderer is loaded. */ readonly capabilities?:AnchorTargetCapabilities;readonly load:()=>Promise;} /** A validated renderer definition. Exactly one of `render`, `adapter`, and `load` is present. */ export type DocumentRendererDefinition=DirectDocumentRendererDefinition|LyraAdaptedDocumentRendererDefinition|LazyDocumentRendererDefinition; /** Canonically prefixed alias for authored renderer definitions. */ export type LyraDocumentRendererDefinition=DocumentRendererDefinition; /** One payload-bound renderer invocation and its truthful, immutable capabilities. */ export interface LyraAdaptedDocumentRenderer{readonly payload:LyraDocumentRendererPayload;readonly capabilities?:AnchorTargetCapabilities;readonly render:()=>unknown;} /** Immutable MIME/key-to-renderer registry accepted by ``. */ export type DocumentRendererRegistry=ReadonlyMap; /** * Creates a type-safe payload adapter, then erases its discriminator-specific callback types behind * runtime kind checks. Legacy `render(file)` definitions remain a separate branch. */ export declare function createDocumentRendererAdapter(definition:LyraDocumentRendererAdapterDefinition):LyraDocumentRendererAdapter; /** * Binds one resolved definition to a legacy file plus optional immutable payload. The returned * invocation is the sole capability-derivation path and renders without widening legacy callbacks. */ export declare function adaptDocumentRenderer(candidate:LyraResolvedDocumentRendererDefinition,file:DocumentFile,supplied?:LyraDocumentRendererPayload):LyraAdaptedDocumentRenderer; /** * Creates an immutable registry snapshot from the built-ins registered so far plus optional * per-instance overrides. Later module registrations cannot mutate an existing snapshot. */ export declare function createDocumentRendererRegistry(overrides?:Iterable):DocumentRendererRegistry; /** * Adds or replaces a built-in definition for registries created after this call. Registration * modules use this during module evaluation; existing viewer instances remain isolated snapshots. */ export declare function registerDocumentRenderer(key:string,definition:DocumentRendererDefinition):void; /** Returns a fresh immutable snapshot of the built-ins registered so far. */ export declare function getDefaultDocumentRendererRegistry():DocumentRendererRegistry; /** Finds an exact normalized MIME essence, then the first matching shape-based renderer. */ export declare function findDocumentRenderer(file:DocumentFile,registry?:DocumentRendererRegistry):DocumentRendererDefinition|undefined; /** Resolves, validates and identity-caches a lazy renderer. Rejected loads are retried. */ export declare function loadDocumentRenderer(candidate:DirectDocumentRendererDefinition|LazyDocumentRendererDefinition):Promise;export declare function loadDocumentRenderer(candidate:LyraAdaptedDocumentRendererDefinition):Promise;export declare function loadDocumentRenderer(candidate:DocumentRendererDefinition):Promise; /** Clears built-in registrations and the lazy-load cache for isolated tests. */ export declare function clearDocumentRenderers():void;export{};