import type { Fn, Fn2, FnN, UIntArray } from "@thi.ng/api";
import type { BlitCanvasOpts, BlitOpts, IntFormat, IPixelBuffer, IToImageData } from "../api.js";
export declare const __luminanceABGR: FnN;
/** @internal */
export declare const __clampRegion: (sx: number, sy: number, w: number, h: number, maxw: number, maxh: number, dx?: number, dy?: number) => number[];
/** @internal */
export declare const __prepRegions: (src: {
    width: number;
    height: number;
}, dest: {
    width: number;
    height: number;
}, opts?: Partial<BlitOpts>) => {
    sx: number;
    sy: number;
    dx: number;
    dy: number;
    rw: number;
    rh: number;
};
/** @internal */
export declare const __setChannelUni: (dbuf: UIntArray, src: number, set: Fn2<number, number, number>) => void;
/** @internal */
export declare const __setChannelSame: (dbuf: UIntArray, sbuf: UIntArray, get: Fn<number, number>, set: Fn2<number, number, number>) => void;
/** @internal */
export declare const __setChannelConvert: (dbuf: UIntArray, sbuf: UIntArray, from: Fn<number, number>, sto: Fn<number, number>, mask: number) => void;
export declare const __transformABGR: (pix: UIntArray, format: IntFormat, fn: Fn<number, number>) => void;
/** @internal */
export declare const __asVec: (x: number | [number, number]) => number[];
/** @internal */
export declare const __asIntVec: (x: number | [number, number]) => number[];
/**
 * Swaps bytes lanes 1 & 3 (i.e. bits 16-23 with bits 0-7)
 *
 * @remarks
 * Extracted from thi.ng/binary to avoid dependency
 *
 * @param x -
 *
 * @internal
 */
export declare const __swapLane13: FnN;
/**
 * Shared implementation for {@link IBlit.blitCanvas}.
 *
 * @internal
 */
export declare const __blitCanvas: (buf: IPixelBuffer & IToImageData, canvas: HTMLCanvasElement | CanvasRenderingContext2D | OffscreenCanvas | OffscreenCanvasRenderingContext2D, opts?: Partial<BlitCanvasOpts>) => void;
//# sourceMappingURL=utils.d.ts.map