import type { NobjcObject } from "objc-js";
import type { _NSArray } from "../Foundation/NSArray.js";
import type { _NSCoder } from "../Foundation/NSCoder.js";
import type { _NSCopying } from "../Foundation/NSCopying.js";
import type { _NSData } from "../Foundation/NSData.js";
import type { _NSDictionary } from "../Foundation/NSDictionary.js";
import type { _NSObject } from "../Foundation/NSObject.js";
import type { _NSString } from "../Foundation/NSString.js";
import type { _NSURL } from "../Foundation/NSURL.js";
import type { _NSGraphicsContext } from "./NSGraphicsContext.js";
import type { _NSPasteboard } from "./NSPasteboard.js";
import type { CGPoint } from "../structs/CGPoint.js";
import type { CGRect } from "../structs/CGRect.js";
import type { CGSize } from "../structs/CGSize.js";
import type { NSColorSpaceName } from "./NSColorSpaceName.js";
import type { NSCompositingOperation } from "./NSCompositingOperation.js";
import type { NSImageLayoutDirection } from "./NSImageLayoutDirection.js";
export declare class _NSImageRep extends _NSObject {
    static alloc(): _NSImageRep;
    static new(): _NSImageRep;
    /**
     * Registry management: Subclasses which deal with file & pasteboard types should register themselves. These classes should also implement imageUnfilteredFileTypes, imageUnfilteredPasteboardTypes, initWithData:, canInitWithData:, imageRepWithData:, and, if they have the ability to read multiple images from a file, imageRepsWithData:. These last three should not do any filtering; all filtering is automatic.
     * @deprecated Use +imageRepClassForType: instead
     */
    static registerImageRepClass$(imageRepClass: NobjcObject): void;
    /** @deprecated Use +imageRepClassForType: instead */
    static unregisterImageRepClass$(imageRepClass: NobjcObject): void;
    /** @deprecated Use +imageRepClassForType: instead */
    static imageRepClassForFileType$(type: _NSString): NobjcObject | null;
    /** @deprecated Use +imageRepClassForType: instead */
    static imageRepClassForPasteboardType$(type: _NSString): NobjcObject | null;
    static imageRepClassForType$(type: _NSString): NobjcObject | null;
    static imageRepClassForData$(data: _NSData): NobjcObject | null;
    /**
     * Should be overridden by subclassers to load an unfiltered image.
     * @deprecated Use +imageUnfilteredTypes instead
     */
    static canInitWithData$(data: _NSData): boolean;
    /**
     * Implemented by subclassers to indicate what data types they can deal with.
     * @deprecated Use +imageUnfilteredTypes instead
     */
    static imageUnfilteredFileTypes(): _NSArray;
    /** @deprecated Use +imageUnfilteredTypes instead */
    static imageUnfilteredPasteboardTypes(): _NSArray;
    /**
     * These expand the unfiltered lists returned by imageUnfilteredFileTypes and imageUnfilteredPasteboardTypes.
     * @deprecated Use +imageTypes instead
     */
    static imageFileTypes(): _NSArray;
    /** @deprecated Use +imageTypes instead */
    static imagePasteboardTypes(): _NSArray;
    /**
     * Convenience method: Checks to see if any of the types on the pasteboard can be understood by a registered imagerep class after filtering or if the pasteboard contains a filename that can be understood by a registered imagerep class after filtering. If sent to a subclass, does this for just the types understood by the subclass.
     */
    static canInitWithPasteboard$(pasteboard: _NSPasteboard): boolean;
    /**
     * Convenience methods: Checks to see if the provided file or pasteboard types can be understood by a registered imagerep class after filtering; if so, calls imageRepsWithData: or imageRepWithData:. If sent to a subclass, does this just for the types understood by that subclass.
     */
    static imageRepsWithContentsOfFile$(filename: _NSString): _NSArray | null;
    static imageRepWithContentsOfFile$(filename: _NSString): _NSImageRep | null;
    static imageRepsWithContentsOfURL$(url: _NSURL): _NSArray | null;
    static imageRepWithContentsOfURL$(url: _NSURL): _NSImageRep | null;
    static imageRepsWithPasteboard$(pasteboard: _NSPasteboard): _NSArray | null;
    static imageRepWithPasteboard$(pasteboard: _NSPasteboard): _NSImageRep | null;
    /** @deprecated Use +imageRepClassForType: instead */
    static registeredImageRepClasses(): _NSArray;
    /**
     * Implemented by subclassers to indicate what UTI-identified data types they can deal with.
     */
    static imageUnfilteredTypes(): _NSArray;
    /** This expands the unfiltered list returned by imageUnfilteredTypes. */
    static imageTypes(): _NSArray;
    init(): _NSImageRep;
    initWithCoder$(coder: _NSCoder): _NSImageRep | null;
    /** Drawing methods. draw is the only primitive. */
    draw(): boolean;
    drawAtPoint$(point: CGPoint): boolean;
    drawInRect$(rect: CGRect): boolean;
    drawInRect$fromRect$operation$fraction$respectFlipped$hints$(dstSpacePortionRect: CGRect, srcSpacePortionRect: CGRect, op: NSCompositingOperation, requestedAlpha: number, respectContextIsFlipped: boolean, hints: _NSDictionary | null): boolean;
    /**
     * The parameters have the same meaning and behavior as in -[NSImage CGImageForProposedRect:context:hints:]. This method is intended to be overridden or called, though the primary caller is NSImage. At the NSImageRep level, it creates a CGImage by drawing the receiver into a new context. The passed context and hints are used as a model for the new context. If [self draw] returns NO, this method returns NULL. If your image rep subclass naturally uses a CGImage that it can return, override this method and return it. You should not need to take care to cache within an implementation of this method. This main caller of this method is typically NSImage, and NSImage will hold onto the resulting CGImage if appropriate. The CGImageRef returned is guaranteed to live as long as the current autorelease pool. The caller should not release the CGImage. This is the standard Cocoa convention, but people may not realize that it applies to CFTypes.
     */
    CGImageForProposedRect$context$hints$(proposedDestRect: NobjcObject | null, context: _NSGraphicsContext | null, hints: _NSDictionary | null): NobjcObject;
    /**
     * Methods to return info about the image. NSImageRep provides storage for all of these; however, it's illegal to set them in some subclasses.
     */
    size(): CGSize;
    setSize$(value: CGSize): void;
    alpha(): boolean;
    setAlpha$(value: boolean): void;
    opaque(): boolean;
    setOpaque$(value: boolean): void;
    colorSpaceName(): NSColorSpaceName;
    setColorSpaceName$(value: NSColorSpaceName): void;
    bitsPerSample(): number;
    setBitsPerSample$(value: number): void;
    pixelsWide(): number;
    setPixelsWide$(value: number): void;
    pixelsHigh(): number;
    setPixelsHigh$(value: number): void;
    /** Default: NSImageLayoutDirectionUnspecified */
    layoutDirection(): NSImageLayoutDirection;
    setLayoutDirection$(value: NSImageLayoutDirection): void;
}
export interface _NSImageRep extends _NSCopying {
}
