import type { _NSView } from "../AppKit/NSView.js";
import type { _NSObject } from "../Foundation/NSObject.js";
import type { _SKNode } from "./SKNode.js";
import type { _SKScene } from "./SKScene.js";
import type { _SKTexture } from "./SKTexture.js";
import type { _SKTransition } from "./SKTransition.js";
import type { CGPoint } from "../structs/CGPoint.js";
import type { CGRect } from "../structs/CGRect.js";
export declare class _SKView extends _NSView {
    static alloc(): _SKView;
    static new(): _SKView;
    init(): _SKView;
    /**
     * Present an SKScene in the view, replacing the current scene. @param scene the scene to present.
     */
    presentScene$(scene: _SKScene | null): void;
    /**
     * Present an SKScene in the view, replacing the current scene. If there is currently a scene being presented in the view, the transition is used to swap between them. @param scene the scene to present. @param transition the transition to use when presenting the scene.
     */
    presentScene$transition$(scene: _SKScene, transition: _SKTransition): void;
    /**
     * Create an SKTexture containing a snapshot of how it would have been rendered in this view. The texture is tightly cropped to the size of the node. @param node the node subtree to render to the texture.
     */
    textureFromNode$(node: _SKNode): _SKTexture | null;
    /**
     * Create an SKTexture containing a snapshot of how it would have been rendered in this view. The texture is cropped to the specified rectangle @param node the node subtree to render to the texture. @param crop the crop
     */
    textureFromNode$crop$(node: _SKNode, crop: CGRect): _SKTexture | null;
    /**
     * Converts a point from view space to scene space. @param point the point to convert. @param scene the scene to convert the point into.
     */
    convertPoint$toScene$(point: CGPoint, scene: _SKScene): CGPoint;
    /**
     * Converts a point from scene space to view space. @param point the point to convert. @param scene the scene to convert the point into.
     */
    convertPoint$fromScene$(point: CGPoint, scene: _SKScene): CGPoint;
    /** Pause the entire view */
    paused(): boolean;
    setPaused$(value: boolean): void;
    /** Toggles display of performance stats in the view. All default to false. */
    showsFPS(): boolean;
    setShowsFPS$(value: boolean): void;
    showsDrawCount(): boolean;
    setShowsDrawCount$(value: boolean): void;
    showsNodeCount(): boolean;
    setShowsNodeCount$(value: boolean): void;
    showsQuadCount(): boolean;
    setShowsQuadCount$(value: boolean): void;
    showsPhysics(): boolean;
    setShowsPhysics$(value: boolean): void;
    showsFields(): boolean;
    setShowsFields$(value: boolean): void;
    /**
     * Toggles whether the view updates is rendered asynchronously or aligned with Core Animation updates. Defaults to YES.
     */
    asynchronous(): boolean;
    setAsynchronous$(value: boolean): void;
    /**
     * Toggles whether the view allows transparent rendering. This allows content under the view to show through if a non-opaque backgroundColor is set on the scene. Defaults to NO.
     */
    allowsTransparency(): boolean;
    setAllowsTransparency$(value: boolean): void;
    /**
     * Ignores sibling and traversal order to sort the rendered contents of a scene into the most efficient batching possible. This will require zPosition to be used in the scenes to properly guarantee elements are in front or behind each other. This defaults to NO, meaning that sibling order overrides efficiency heuristics in the rendering of the scenes in the view. Setting this to YES for a complex scene may substantially increase performance, but care must be taken as only zPosition determines render order before the efficiency heuristics are used.
     */
    ignoresSiblingOrder(): boolean;
    setIgnoresSiblingOrder$(value: boolean): void;
    shouldCullNonVisibleNodes(): boolean;
    setShouldCullNonVisibleNodes$(value: boolean): void;
    /**
     * Defines the desired rate for this SKView to it's content. Actual rate maybe be limited by hardware or other software.
     */
    preferredFramesPerSecond(): number;
    setPreferredFramesPerSecond$(value: number): void;
    /** If true SKView will not allocate a depth/stencil buffer */
    disableDepthStencilBuffer(): boolean;
    setDisableDepthStencilBuffer$(value: boolean): void;
    /** Optional view delegate, see SKViewDelegate. */
    delegate(): _NSObject | null;
    setDelegate$(value: _NSObject | null): void;
    /**
     * Deprecated, please use preferredFramesPerSecond. Number of frames to skip between renders, defaults to 1 (render every frame) Actual requested rate will be preferredFramesPerSecond / frameInterval.
     * @deprecated
     */
    frameInterval(): number;
    setFrameInterval$(value: number): void;
    /**
     * FIXME: remove from public headers once all clinets adopt preferredFramesPerSecond.
     * @deprecated
     */
    preferredFrameRate(): number;
    setPreferredFrameRate$(value: number): void;
    /**
     * The currently presented scene, otherwise nil. If in a transition, the 'incoming' scene is returned.
     */
    scene(): _SKScene | null;
}
