import type { NobjcObject } from "objc-js";
import type { _CAOpenGLLayer } from "../QuartzCore/CAOpenGLLayer.js";
import type { _NSOpenGLContext } from "./NSOpenGLContext.js";
import type { _NSOpenGLPixelFormat } from "./NSOpenGLPixelFormat.js";
import type { _NSView } from "./NSView.js";
export declare class _NSOpenGLLayer extends _CAOpenGLLayer {
    static alloc(): _NSOpenGLLayer;
    static new(): _NSOpenGLLayer;
    init(): _NSOpenGLLayer;
    /**
     * Invoked by AppKit to ask for the pixel format to use. Should return an autoreleased NSOpenGLPixelFormat suitable for the displays specified by "mask". (In practice, this means including an NSOpenGLPFAScreenMask specification in the pixel format attribute list that's used to instantiate the NSOpenGLPixelFormat.)
     */
    openGLPixelFormatForDisplayMask$(mask: number): _NSOpenGLPixelFormat;
    /**
     * Invoked by AppKit to ask for the OpenGL context to use. Should return an autoreleased NSOpenGLContext.
     */
    openGLContextForPixelFormat$(pixelFormat: _NSOpenGLPixelFormat): _NSOpenGLContext;
    /**
     * Invoked by AppKit to ask the layer whether it can draw. Normally one would return YES, but one can return NO to cause the current frame to be skipped.
     */
    canDrawInOpenGLContext$pixelFormat$forLayerTime$displayTime$(context: _NSOpenGLContext, pixelFormat: _NSOpenGLPixelFormat, t: number, ts: NobjcObject): boolean;
    /** Invoked by AppKit to ask the layer to draw. */
    drawInOpenGLContext$pixelFormat$forLayerTime$displayTime$(context: _NSOpenGLContext, pixelFormat: _NSOpenGLPixelFormat, t: number, ts: NobjcObject): void;
    /**
     * Provides access to the layer's associated view. Subclasses shouldn't invoke -setView:, but can override it if desired to intercept the layer's association to, or dissociation from, a view.
     */
    view(): _NSView | null;
    setView$(value: _NSView | null): void;
    /**
     * Provides access to the layer's associated NSOpenGLPixelFormat. Subclasses shouldn't invoke -setOpenGLPixelFormat:, but can override it if desired to intercept assignment of the layer's pixel format.
     */
    openGLPixelFormat(): _NSOpenGLPixelFormat | null;
    setOpenGLPixelFormat$(value: _NSOpenGLPixelFormat | null): void;
    /**
     * Provides access to the layer's associated NSOpenGLContext. Subclasses shouldn't invoke -setOpenGLContext:, but can override it if desired to intercept assignment of the layer's context.
     */
    openGLContext(): _NSOpenGLContext | null;
    setOpenGLContext$(value: _NSOpenGLContext | null): void;
}
