import type { _SKAttributeValue } from "./SKAttributeValue.js";
import type { _SKNode } from "./SKNode.js";
import type { _SKShader } from "./SKShader.js";
import type { _SKWarpable } from "./SKWarpable.js";
import type { _NSDictionary } from "../Foundation/NSDictionary.js";
import type { _NSString } from "../Foundation/NSString.js";
import type { _CIFilter } from "../CoreImage/CIFilter.js";
import type { SKBlendMode } from "./SKBlendMode.js";
export declare class _SKEffectNode extends _SKNode {
    static alloc(): _SKEffectNode;
    static new(): _SKEffectNode;
    init(): _SKEffectNode;
    valueForAttributeNamed$(key: _NSString): _SKAttributeValue | null;
    setValue$forAttributeNamed$(value: _SKAttributeValue, key: _NSString): void;
    /**
     * A CIFilter to be used as an effect Any CIFilter that requires only a single "inputImage" and produces an "outputImage" is allowed. The filter is applied to all children of the SKEffectNode. If the filter is nil, the children of this node is flattened before being drawn as long as the SKEffectNode is enabled.
     */
    filter(): _CIFilter | null;
    setFilter$(value: _CIFilter | null): void;
    /**
     * Controls whether the filter's "inputCenter" (if it exists) should automatically be set to the center of the effect area. Defaults to YES.
     */
    shouldCenterFilter(): boolean;
    setShouldCenterFilter$(value: boolean): void;
    /**
     * Enable the SKEffectNode. The SKEffectNode has no effect when appliesEffects is not enabled, this is useful for setting up an effect to use later on. Defaults to YES.
     */
    shouldEnableEffects(): boolean;
    setShouldEnableEffects$(value: boolean): void;
    /**
     * Enable the rasterization on the SKEffectNode. The SKEffectNode's output is rasterized and cached internally. This cache is reused when rendering. When the SKEffectNode's children change, the cache is updated, but changing properties on the CIFilter does *not* cause an update (you must disable rasterization and then re-enable it for the changes to apply). This is more expensive than not rasterizing if the node's children change frequently, only enable this option if you know the children is largely static.
     */
    shouldRasterize(): boolean;
    setShouldRasterize$(value: boolean): void;
    /**
     * Sets the blend mode to use when composing the effect with the final framebuffer. @see SKNode.SKBlendMode
     */
    blendMode(): SKBlendMode;
    setBlendMode$(value: SKBlendMode): void;
    shader(): _SKShader | null;
    setShader$(value: _SKShader | null): void;
    /**
     * Optional dictionary of SKAttributeValues Attributes can be used with custom SKShaders.
     */
    attributeValues(): _NSDictionary;
    setAttributeValues$(value: _NSDictionary): void;
}
export interface _SKEffectNode extends _SKWarpable {
}
