import type { PixelPlane } from './pixels'; /** * Direction search over an 8x8 block. Returns the best direction (0..7) and * writes the variance into `varOut[0]`. */ export declare function cdefFindDir(img: PixelPlane, off: number, stride: number, varOut: Int32Array, bitDepth?: number): number; /** * CDEF filter one w×h block in place. `left` holds the 2 pre-filter samples to * the left of each row; `top`/`bottom` point at the pre-filter neighbor rows. */ export declare function cdefFilterBlock(dst: PixelPlane, dstOff: number, dstStride: number, left: Int32Array, top: PixelPlane, topOff: number, bottom: PixelPlane, botOff: number, priStrength: number, secStrength: number, dir: number, damping: number, w: number, h: number, edges: number, src?: PixelPlane, srcOff?: number, srcStride?: number, bitDepth?: number): void; /** * Apply CDEF across the whole frame. Reads pre-CDEF neighbor samples from a * copy of each plane and writes filtered pixels back. 64x64-superblock, * single-tile, non-superres path. */ export declare function applyCdef(buf: CdefPlanes, data: CdefData, opts: { enableCdef: boolean damping: number bits: number yPri: number[] ySec: number[] uvPri: number[] uvSec: number[] monochrome: boolean ssHor: number ssVer: number layout: number bitDepth?: number }): void; export declare const CDEF_HAVE_LEFT: 1; export declare const CDEF_HAVE_RIGHT: 2; export declare const CDEF_HAVE_TOP: 4; export declare const CDEF_HAVE_BOTTOM: 8; declare interface CdefPlanes { y: PixelPlane u: PixelPlane v: PixelPlane yStride: number uvStride: number } /** * Per-frame CDEF metadata recorded during decode: the cdef index per 64x64 * superblock, and per-4x4 non-skip flags (CDEF only filters 8x8 blocks that * carry coded coefficients). */ export declare class CdefData { idx: Int8Array; noskip: Uint8Array; readonly sb64w: number; readonly miCols: number; readonly miRows: number; constructor(miCols: number, miRows: number); }