import type { _CIImage } from "./CIImage.js";
import type { _CIKernel } from "./CIKernel.js";
import type { _NSArray } from "../Foundation/NSArray.js";
import type { _NSString } from "../Foundation/NSString.js";
import type { CGRect } from "../structs/CGRect.js";
export declare class _CIWarpKernel extends _CIKernel {
    static alloc(): _CIWarpKernel;
    static new(): _CIWarpKernel;
    init(): _CIWarpKernel;
    /**
     * The string argument should contain a program with one warp kernel. On iOS8 [CIWarpKernel kernelWithString:] can return a CIKernel, CIColorKernel, or CIWarpKernel object. On iOS9 [CIWarpKernel kernelWithString:] will return a CIWarpKernel object or nil. On OS X [CIWarpKernel kernelWithString:] will return a CIWarpKernel object or nil.
     */
    static kernelWithString$(string_: _NSString): _CIWarpKernel | null;
    /**
     * Apply the receiver CIWarpKernel to produce a new CIImage object. The 'extent' is the bounding box of all pixel coordinates that are warped by the kernel to fall within the extent of 'image'. The 'image' is the input image that will be warped into a new image. The 'callback' is a block that should return the rectangle of the input image that is needed to produce a given rectangle in the coordinate space of the new image. The 'args' is an array of parameters needed to describe the warping function. The object types of the items in the array correspond to the argument types of the kernel function. For example, if the first argument in the kernel is a vec3, then the first object in the array must be a CIVector of count 3.
     */
    applyWithExtent$roiCallback$inputImage$arguments$(extent: CGRect, callback: (arg0: number, arg1: CGRect) => CGRect, image: _CIImage, args: _NSArray | null): _CIImage | null;
}
