import type { NobjcObject } from "objc-js";
import type { _CIFilter } from "./CIFilter.js";
import type { _CIImage } from "./CIImage.js";
import type { _NSArray } from "../Foundation/NSArray.js";
import type { _NSData } from "../Foundation/NSData.js";
import type { _NSDictionary } from "../Foundation/NSDictionary.js";
import type { _NSString } from "../Foundation/NSString.js";
import type { _NSURL } from "../Foundation/NSURL.js";
import type { CGPoint } from "../structs/CGPoint.js";
import type { CGSize } from "../structs/CGSize.js";
import type { CIRAWDecoderVersion } from "./CIRAWDecoderVersion.js";
export declare class _CIRAWFilter extends _CIFilter {
    static alloc(): _CIRAWFilter;
    static new(): _CIRAWFilter;
    init(): _CIRAWFilter;
    static filterWithImageURL$(url: _NSURL): _CIRAWFilter | null;
    static filterWithImageData$identifierHint$(data: _NSData, identifierHint: _NSString | null): _CIRAWFilter | null;
    static filterWithCVPixelBuffer$properties$(buffer: NobjcObject, properties: _NSDictionary): _CIRAWFilter | null;
    /** Returns a NSArray containing the names of all supported camera models. */
    static supportedCameraModels(): _NSArray;
    /**
     * Array of all supported decoder versions for the given image type, sorted in increasingly newer order. All entries would represent a valid version identifier set to 'decoderVersion'.
     */
    supportedDecoderVersions(): _NSArray;
    /**
     * The full native size of the unscaled image. This is not affected by changing orientation
     */
    nativeSize(): CGSize;
    /**
     * Metadata properties CIRAWFilter instance This is a dictionary with the same contents as CGImageSourceCopyProperties.
     */
    properties(): _NSDictionary;
    /**
     * Changing this value allows the user to change the orientation of the image. The valid values are in range 1...8 and follow the EXIF specification.
     */
    orientation(): NobjcObject;
    setOrientation$(value: NobjcObject): void;
    /**
     * Setting Draft Mode to true can improve image decoding speed with minimal loss of quality.
     */
    draftModeEnabled(): boolean;
    setDraftModeEnabled$(value: boolean): void;
    /**
     * Version string representing the decoder version to be used. A newly initialized object defaults to the newest available decoder version for the given image type. User can request an alternative, older version in order to maintain compatibility with older releases. Must be one of supportedDecoderVersions (above), otherwise a nil output image will be generated.
     */
    decoderVersion(): CIRAWDecoderVersion;
    setDecoderVersion$(value: CIRAWDecoderVersion): void;
    /**
     * The desired scale factor at which the image will be eventually drawn. Setting this value can greatly improve the drawing performance. A value of 1.0 results in a full size output image, values smaller than 1 will result in a smaller output image. The value should be the range of 0...1. Default value is 1
     */
    scaleFactor(): number;
    setScaleFactor$(value: number): void;
    /**
     * A value controlling the amount of exposure to apply to the image. Default value is 0.
     */
    exposure(): number;
    setExposure$(value: number): void;
    /**
     * A value for baseline exposure applied to the image. Default value can vary based on the image.
     */
    baselineExposure(): number;
    setBaselineExposure$(value: number): void;
    /**
     * A value controlling an amount to subtract from shadows the image. Default value can vary based on the image.
     */
    shadowBias(): number;
    setShadowBias$(value: number): void;
    /**
     * A value to control the amount of global tone curve to apply to the image. A value of 0 indicates no global tone curve, i.e. linear response. A value of 1 indicates full global tone curve. The value should be the range of 0...1. The default value is 1.
     */
    boostAmount(): number;
    setBoostAmount$(value: number): void;
    /**
     * The amount to boost the shadow areas of the image. Can be used to lighten details in shadows. This has no effect if the boostAmount is 0. A value less than 1 will darken the shadows. A value greater than 1 will lighten the shadows. The value should be the range of 0...2. The default value is 1.
     */
    boostShadowAmount(): number;
    setBoostShadowAmount$(value: number): void;
    /**
     * A boolean value to control if highlight recovery is enabled or not. The default value is true.
     */
    highlightRecoverySupported(): boolean;
    highlightRecoveryEnabled(): boolean;
    setHighlightRecoveryEnabled$(value: boolean): void;
    /**
     * A boolean value to control if gamut mapping is enabled or not. The default value is true.
     */
    gamutMappingEnabled(): boolean;
    setGamutMappingEnabled$(value: boolean): void;
    /**
     * A boolean value to control if gamut mapping is enabled or not. The default value can vary based on the image. The 'isLensCorrectionSupported' property is false if the current image doesn't support this setting.
     */
    lensCorrectionSupported(): boolean;
    lensCorrectionEnabled(): boolean;
    setLensCorrectionEnabled$(value: boolean): void;
    /**
     * A value to control the amount of luminance noise reduction to apply to the image. A value of 0 indicates no luminance noise reduction. A value of 1 indicates maximum luminance noise reduction. The value should be the range of 0...1. The default value will vary per image. The 'isLuminanceNoiseReductionSupported' property is false if the current image doesn't support this adjustment.
     */
    luminanceNoiseReductionSupported(): boolean;
    luminanceNoiseReductionAmount(): number;
    setLuminanceNoiseReductionAmount$(value: number): void;
    /**
     * A value to control the amount of chroma noise reduction to apply to the image. A value of 0 indicates no chroma noise reduction. A value of 1 indicates maximum chroma noise reduction. The value should be the range of 0...1. The default value will vary per image. The 'isColorNoiseReductionSupported' property is false if the current image doesn't support this adjustment.
     */
    colorNoiseReductionSupported(): boolean;
    colorNoiseReductionAmount(): number;
    setColorNoiseReductionAmount$(value: number): void;
    /**
     * A value to control the amount of sharpness to apply to the edges of the image. A value of 0 indicates no sharpness applied. A value of 1 indicates maximum sharpness applied. The value should be the range of 0...1. The default value will vary per image. The 'isSharpnessSupported' property is false if the current image doesn't support this adjustment.
     */
    sharpnessSupported(): boolean;
    sharpnessAmount(): number;
    setSharpnessAmount$(value: number): void;
    /**
     * A value to control the amount of local contrast to apply to the edges of the image. A value of 0 indicates no contrast applied. A value of 1 indicates maximum contrast applied. The value should be the range of 0...1. The default value will vary per image. The 'isContrastSupported' property is false if the current image doesn't support this adjustment.
     */
    contrastSupported(): boolean;
    contrastAmount(): number;
    setContrastAmount$(value: number): void;
    /**
     * A value to control the amount of detail enhancement to apply to the edges of the image. A value of 0 indicates no detail enhancement. A value of 3 indicates maximum detail enhancement. The value should be the range of 0...3. The default value will vary per image. The 'isDetailSupported' property is false if the current image doesn't support this adjustment.
     */
    detailSupported(): boolean;
    detailAmount(): number;
    setDetailAmount$(value: number): void;
    /**
     * A value to control the amount of moire artifact reduction to apply to high frequency areas of the image. A value of 0 indicates no moire reduction. A value of 3 indicates maximum moire reduction. The value should be the range of 0...1. The default value will vary per image. The 'isMoireReductionSupported' property is false if the current image doesn't support this adjustment.
     */
    moireReductionSupported(): boolean;
    moireReductionAmount(): number;
    setMoireReductionAmount$(value: number): void;
    /**
     * A value to control the amount of local tone curve to apply to the image. A value of 0 indicates no local tone curve, i.e. linear response. A value of 1 indicates full global tone curve. The value should be the range of 0...1. The default value will vary per image. The 'isLocalToneMapSupported' property is false if the current image doesn't support this adjustment.
     */
    localToneMapSupported(): boolean;
    localToneMapAmount(): number;
    setLocalToneMapAmount$(value: number): void;
    /**
     * Allows the output to have an Extended Dynamic Range with values greater than 1 possible. A value of 0 indicates no extended dynamic range output. A value of 1 indicates default extended dynamic range output. A value of 2 indicates maximum extended dynamic range output. The value should be the range of 0...2. The default value is 0.
     */
    extendedDynamicRangeAmount(): number;
    setExtendedDynamicRangeAmount$(value: number): void;
    /**
     * These properties provide differnet was to query or modify the image white balance Use 'neutralChromaticity' to query or change white balance based on x,y chromaticity values in the range (0..1) Use 'neutralTemperature' and 'neutralTemperature' to query or change white balance based temp/tint values in the ranges (2000K..50000K, -150..150) Use 'neutralLocation' to change the white balance based on an x,y pixel coordiniates in the image.
     */
    neutralChromaticity(): CGPoint;
    setNeutralChromaticity$(value: CGPoint): void;
    neutralLocation(): CGPoint;
    setNeutralLocation$(value: CGPoint): void;
    neutralTemperature(): number;
    setNeutralTemperature$(value: number): void;
    neutralTint(): number;
    setNeutralTint$(value: number): void;
    /**
     * An optional CIFilter to be applied to the RAW image while it is in linear space.
     */
    linearSpaceFilter(): _CIFilter | null;
    setLinearSpaceFilter$(value: _CIFilter | null): void;
    /** Properties for auxiliary images that may be present in the file */
    previewImage(): _CIImage | null;
    portraitEffectsMatte(): _CIImage | null;
    semanticSegmentationSkinMatte(): _CIImage | null;
    semanticSegmentationHairMatte(): _CIImage | null;
    semanticSegmentationGlassesMatte(): _CIImage | null;
    semanticSegmentationSkyMatte(): _CIImage | null;
    semanticSegmentationTeethMatte(): _CIImage | null;
}
