import type { FrameBuffers } from './recon'; import type { FrameHeader } from './frame-header'; import type { SequenceHeader } from './sequence'; /** dav1d_calc_eih: E/I thresholds per filter level. */ export declare function calcFilterLut(sharpness: number): FilterLut; /** * Per-segment loop filter levels [seg][dir] where dir 0..3 = yV,yH,U,V. * Intra frames use ref delta 0 and no mode delta. */ export declare function computeLoopFilterLevels(hdr: FrameHeader): Uint8Array; /** Run the deblocking filter over the whole frame in place. */ export declare function applyLoopFilter(buf: FrameBuffers, data: LoopFilterData, seq: SequenceHeader, hdr: FrameHeader): void; export declare interface FilterLut { e: Int32Array i: Int32Array } /** * Per-4x4 loop-filter metadata for one frame, filled during reconstruction. * Level arrays hold the filter level per cell for each plane/direction; tx log * dimensions give the filter-width category; stepV/stepH mark transform edges. */ export declare class LoopFilterData { lvlYV: Uint8Array; lvlYH: Uint8Array; txlwY: Uint8Array; txlhY: Uint8Array; stepVY: Uint8Array; stepHY: Uint8Array; lvlU: Uint8Array; lvlV: Uint8Array; txlwUv: Uint8Array; txlhUv: Uint8Array; stepVUv: Uint8Array; stepHUv: Uint8Array; readonly cCols: number; readonly cRows: number; readonly miCols: number; readonly miRows: number; readonly ssHor: number; readonly ssVer: number; constructor(miCols: number, miRows: number, ssHor: number, ssVer: number); }